Evolution of Software Development Life Cycle (SDLC) Models
Abhay Reddy
Demand and Growth Marketing Executive | Ranked Top 100 Global Influencers in Marketing and Sales by Thinkers360 | Startup Mentor | Proven expertise in aggressive sales growth
Software Development Life Cycle (SDLC) is the process of planning, developing, testing, deploying, and maintenance of software systems. The goal is to create and deploy high-quality software that meets customers’ needs and is completed within cost and time estimates.
IT spending in 2022 touched $4.4 Trillion [Source] and is only expected to increase
Key factors driving SDLC model evolution
Below is a brief history of how SDLC models have evolved over the years to meet industry needs.
Waterfall Model (1970)?provided a linear sequential approach to managing software projects. Each phase depends on deliverables from the previous one. The sequence includes Requirement, Design, Development, Test, Deploy, and Maintenance. This model dominated for more than 2 decades
V-model (1980)?was an evolution of the classic waterfall methodology. The phases were executed in a sequential V-shape. A testing phase was associated with each corresponding development stage.
The waterfall and related models while easy to manage and control did not allow for any flexibility with customer change requests, and in most cases had a long time-to-market.
Iterative (1975)?and?Incremental (1978)?models attempted to establish an agile and adaptive framework. It involved starting with the implementation of a subset (of the software requirements) and iteratively enhancing the evolving versions until the full system was implemented. It allowed teams to start an iteration with the learnings from the previous phases. The scope of each increment was generally fixed
领英推荐
Spiral Model (1986),?Rapid System Development (1987),?and Rapid Application Development (1991)?gained traction by focusing on agility to be customer-centric, address demand, build a minimum viable product (MVP) and reduce time to market. It promoted interactions, working software, and customer collaboration over following a plan or processes.
Scrum (1993)?includes sprint planning, daily meet-ups, reviews and demos, and a retrospective at the end of each sprint. The cycle lasts 2–4 weeks. While Scrum is oriented towards the organization of the process,?Extreme Programming XP (1999)?targets the technical side. It includes tactics such as continuous integration, pair programming, and test-driven development. These methods improve software quality and responsiveness to customer needs.
Agile?manifesto was created in?2001?and is now the most popular software development methodology. It is a highly dynamic and iterative approach where you do not need the complete set of requirements to start with. You can develop some features and check customer response before taking the next step. Large Scale Scrum (LeSS) and Scaled Agile Framework (SAFe) are some additional evolutions of agile methodology.
DevOps (2009)?is an Agile methodology encompassing Development (Dev) and Operations (Ops). It enables end-to-end lifecycle delivery of features, fixes, and updates at frequent intervals. Agile adoption inherently left the Operations department behind with deployments piling up faster than they could be released. This trend ultimately pushed the rise of DevOps
Continuous Integration and Continuous Delivery (CI/CD)?falls under DevOps. It automates much of the traditional human intervention needed to get new code tested and pushed out for delivery and deployment. One of the key goals is to place code right into a production environment without stopping any functions from running.
DevSecOps?adds security to a familiar DevOps practice. It allows organizations to innovate, build and release solutions while integrating security testing and validations into the product lifecycle (vs at the end as an add-on).