A Short tale of a Software Product Development
- Teams:
- Application Architecture:
- Delivery Time: 1 year
- Approach:
- Plan:
- Since we are not geographically nearby, and we know requirements, lets work in isolation
- Timeline: lets combine our work after 3 months and all of us lets follow the specifications,
- Collaboration:
- Lets use Git, and Create 4 branches
- Mobile_REL_1
- Web_REL_1
- API_REL_1
- DB_REL_1
- Lets use Git, and Create 4 branches
- Chances of this approach to work is very much less, because we are doing big bang integration
- 3 teams are working on their own for 3 months
- After 3 months when they merge the code to common branch to build the complete application,it will be error prone.
- There will be lot of bugs and we will make fixes (mostly workarounds) to make application work. This lead to non Quality Product.
- Better Plan:
- Problem in earlier approach: Integrating the work of multiple teams after 3 months and we see surprises
- Solution: Do this integration daily and let things fail in the begining itself and let our leads be aware about it
- This is basically referred as Continuous Integration
- Our plan is to execute the tests by Richards team automatically every day to give a quality report (Selenium, RPA, Postman)
- Get the Quality Report Everyday
- Problem with above approach:
- What will happen if some one from RAM’s team has submitted a wrong commit which caused all of the failures, In these cases, we have to 1 more day
- Let Developers run the tests locally and ensure they are doing the right commit or enforce.
- We use day builds and night builds
- So which Software to be used to Do this CI/CD Activity
- OPtion-1: Jenkins
- Option-2: Azure DevOps (VSTS)
- Plan: