Software Development at Relinns
Software Development process at Relinns
Last updated
Software Development process at Relinns
Last updated
Version 1.0.4 | Last updated at 24/12/2024
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.
The generic process of development at Relinns is as follows.
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.
A product roadmap is used to give the team an overall understanding of coming features and expected timelines.
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.
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
Risk management planning includes assessing and controlling risks in an optimized manner.
an Here is example of issues that can cause system failures
1
Nginx Failure
NginX failure due to un-responsive APIs
1. Add scripts to auto-reload the NginX 2. Trigger email to relevant stakeholders
2
Analytics
Sudden spike in server resource consumption
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
the Once we have the requirement in place, We will assess high-level effort required and will propose a timeline based on the same.
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 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
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.
This activity covers how a user travels in the application for primary use cases. An example of the same is as follows
At this stage, We will build a clickable prototype of the application which allows users to see how the app will look and Feel.
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.
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
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
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
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
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:
In this activity, we will list down all the things which are required from the client end.
This activity primarily deals with providing possible timelines.
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.
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.
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
TC_001
-
-
-
Fail
MV1-0234
TC_002
-
-
-
Pass
-
TC_003
-
-
-
Pass
-
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
This is where we bring our product to customers. Some of the major activities of this stage are as follows.
Product Road Map
Requirement Collection
Statement of Work
Risk Management Plan
Effort Estimation
Business Changes Management
Product Changes Management
User Journey Flows
App Architecture
Tech Stack
DB Diagram
Code Versioning and Management - Managed on GitHub