☑️Software Development at Relinns

Software Development process at Relinns

Document Details

Version 1.0.4 | Last updated at 24/12/2024

Aspects
Details

Objective

To ensure the whole team, internal and external, have a proper understanding of the development process at Relinns.

Scope

All developers who are working on Relinns Internal projects

Purpose

Keep all developers, project managers, and clients in sync regarding the project development process.

🛣️ Generic Development Flow

The generic process of development at Relinns is as follows.

Drawing
Generic process of development at Relinns

⚙️ Development Stages

1. Project Discovery & Planning

Project discovery aims to identify all the requirements (both functional and non-functional) along with initial timelines, product roadmap and other activities such as risk management planning. Some of the major activities of this stage are as follows.

Product Road Map

A product roadmap is used to give the team an overall understanding of coming features and expected timelines.

Drawing
Genric Product Roadmap
[Sample] Product Roadmap

Requirement Collection

Requirement collection is the activity where BA try to find out all the requirement, both functional and non-functional. It majorly comes under four buckets.

Drawing
Requirement Collection

Statement of Work

Once we have all the information collected in the above activity, we will document the same, and this document will work as the base in the project envisioning stage.

here is the sample scope of work document looks like

📄[Sample] Scope of Work

Risk Management Plan

Risk management planning includes assessing and controlling risks in an optimized manner.

Drawing
Risk Management Planning

an Here is example of issues that can cause system failures

SN
Failure Point
Description
severity
Mitigation Plan

1

Nginx Failure

NginX failure due to un-responsive APIs

Critical

1. Add scripts to auto-reload the NginX 2. Trigger email to relevant stakeholders

2

Analytics

Sudden spike in server resource consumption

Critical

1. Count and Analytics API to be managed on the Database Read Replica 2. Analytics should not be on real-time data 3. Static Counter should be managed

Effort Estimation

the Once we have the requirement in place, We will assess high-level effort required and will propose a timeline based on the same.

Drawing
Generic Effort Estimation process

Business Changes Management

Business change management is the process of documenting all the business changes done by the team. e.g. Direct Database patch.

Here is an example of the same

1

New Plan Creation for WebHopers

1. A new plan has been created for XYZ. It will be a king Plan with 100000 messages/month

Requested by: ABC Approved by: Rohit Garg

Date: 28/12/2021

Product Changes Management

Product change management is the process of documenting all the product changes done by the team and ensuring the compatibility of the application with all previous versions. e.g. Market feedback, new features, etc.

Here is an example of the same

[Example] Product Change 1.1

Change Summary

Type: New Feature

Name: Telegram Bot

Change Summary: Client should be able to connect the bot with their Telegram Channel and Manage the flow and other tools from BotPenguin

Change Description

CP: Bot Creation

The Client will follow the same pattern as for the Facebook bot.

  1. The user clicks on the ‘Create Bot’ and Navigates to the bot creation flow

  2. The client selects for the Telegram bot under the platform

  3. In the next steps, the User will be asked to enter the Bot Token which has been generated from the BotFather

  4. On successful registration, a bot will be created. The name and Profile pic will be fetched from the telegram itself.

  5. This bot will be treated as one bot and will be similar to the Facebook Bot

2. Project Envisioning

Project envisioning aims to give visual understanding to the product using user journey flows and XD design prototypes. Some of the major activities of this stage are as follows.

User Journey Flows

This activity covers how a user travels in the application for primary use cases. An example of the same is as follows

Drawing
Sample appointment booking user journey

XD Design Prototype

At this stage, We will build a clickable prototype of the application which allows users to see how the app will look and Feel.

3. Development Planning

It’s time for the developer to work and start building the blueprint of the product. The developer aims to define the architecture, code standard, and other development planning.

Some of the major activities of this stage are as follows.

App Architecture

The development team will create a high-level diagram of the system based on the current and future requirements which will allow seeing how requests & responses to user requests will flow in the system. An example of the same is as follows

Sample Architecture Diagram

Tech Stack

The development team will also do the research and list down the best-suited tech stack for the product. It will be something similar to the below example.

Development Tech stack

Component
Technology
Version

Android App

Kotlin

2.0.0

iOS App

Swift

6.0.3

Website and Admin panel front-end

Angular/React js

17.0.0/18.0.0

Backend

Node.js(express)

22.12.0

Backend

Python

3.13.1

Backend

Spring Boot

3.1.12

Hosting Server

AWS

-

Database

MongoDB

8.0

Domain

Godaddy

-

Security

SSL/TLS 1.2 and AWS Shield

-

Deployment Tech Stack

Component
Technology

Virtual Machine

AWS EC2

Database

MongoDB hosted on one EC2 instance/MongoDB Atlas(Self Hosted)

Web Server

NGINX (Reverse Proxy)

API Gateway

NGINX (Reverse Proxy)/AWS API Gateway

Application Firewall (Layer 7)

AWS Shield

CDN

AWS CloudFront

Storage

AWS S3 Bucket

DNS

AWS Route 53

Monitoring & Alerting

Native Developed

CI/CD

Gitlab/Github

DB Diagram

The development team will also create the database diagram to make it scalable and extendable from day 1. A sample of the same as follows:

Sample Databse Design Diagram

Client Check List

In this activity, we will list down all the things which are required from the client end.

Delivery Timeline

This activity primarily deals with providing possible timelines.

4. Development

Let’s code and build what we planned. The developer aims to create and integrate the functionalities in the product and make it testable for QA and UAT team. Some of the major activities of this stage are as follows.

API Documentation

Code Guidelines

Code Review

Code Versioning and Management - Managed on GitHub

5. Testing

Don’t call it a feature, It’s a bug. QA team aims to ensure that none of the bugs are remaining for UAT and Go live in this phase. Some of the major activities of this stage are as follows.

Test Scripts

Under this activity, The QA team will create the test scripts for all the possible scenarios and then execute them once an app is in testing. Any test script has below structure on high level

Test Case ID
Test Case Description
Expected Result
Actual Result
Result (Pass/Fail)
Defect ID (if failed)

TC_001

-

-

-

Fail

MV1-0234

TC_002

-

-

-

Pass

-

TC_003

-

-

-

Pass

-

UAT Acceptability Criteria

This activity is to identify when you can make the product changes live for users. It depends on multiple factors such as experimentation rate, stage of product, etc

6. Deployment

This is where we bring our product to customers. Some of the major activities of this stage are as follows.

Software Deployment Plan

Security Review

Release Update

Last updated