Development models define the way projects are structured, the various phases of the project delivery and the roles associated. In this whitepaper, we discuss various development models along with their key characteristics and relevance. By understanding the relevance of the development models, we can adopt the most suitable model for the program.
Assembly Line Development Model
Assembly line development is classic method and is used commonly across the globe. The model uses waterfall execution methodology wherein each project phase flows in a sequential order, with strict dependency on the previous phase. This model consists of different designated roles for each responsibility. Most of the project activities such as code review and testing is done manually in this model. This model has strict quality gates to ensure the excellence of the software, and relies on heavy integration testing driven manually.
Assembly Line Development Model Design
In order to implement this model, we need to assign a designated role for each of the team members. The roles include comprising front-end and back-end developers, and manual, integration and automation test engineers etc. Each team member is only responsible for his/ her role. The following are the execution steps to implement the assembly model:
- Requirement understanding and analysis
- Architecture and design
- Development
- Unit and functional testing
- Deployment
Lean Supervisory Development Model
Lean supervisory development is an agile model where each team member has a clearly-defined responsibility. In this model, each team member has end-to-end ownership toward sprint goals. Automated tools are used for quality control, testing and release management. A continuous integration/continuous delivery (CI/ CD) pipeline improves the process of development during integration/ testing, delivery and deployment phases. The DevOps pipeline includes all stages like build, test, release, deploy, validation and compliance. We deploy static code analysis tools like SonarQube to scan the code and report quality issues. QA automation for UI and functional testing also gives instant feedback during build. Given below are the main features of the lean supervisory model
- End-to-end ownership with developers
- CI/CD-based automation
- Code scanner for instant feedback
- QA automation
Lean Supervisory Development Model Design
The implementation of a lean supervisory development model is effective only with the right resources and tools. These resources consists of full stack development and this model is best suited with Agile OR Scaled Agile frameworks. All the tools have to be properly investigated as per project need and then executed. Following are the key success factors:
- Groom the features into detailed user stories with enough technical and user/ test scenarios
- Ensure code quality by multiple levels of code review like peer review on task level, architect review on user story level, PO review on feature/ release level.
- Unit, system, integration and automation tests
- Static/ dynamic code analysis by automatic tooling
- Secure code analysis/ audit, pen test