A guidebook for software development life cycle (SDLC) methodologies written by a software delivery expert.
What are SDLC Methodologies?
SDLC Methodologies are processes and practices used by software development teams in order to successfully navigate the Software Development Life Cycle (SDLC).
We’re not just here to provide you with an exhaustive list of obscure SDLC methodologies. Instead, we’re going to set the record straight on SDLC Methodologies. On the web, you’ll find articles that will define and explain a long list of SDLC Methodologies and give a brief summary of each so you can “choose” which is best for your project. It seems simple and harmless enough, but this is not how SDLC methodologies are used in the professional software development world.
Most legacy SDLC methodologies aren’t even taught in University or bootcamp classrooms. Instead, today’s classes teach Agile frameworks like Scrum and Kanban. Despite this, SDLC methodologies have indeed evolved greatly over time, to the point where once-ubiquitous methodologies like Waterfall have become obsolete and irrelevant other than serving as the history that helps us understand the birth of Agile.
Today, the dominant SDLC methodology used by professional software organizations is Agile along with the many Agile frameworks like Scrum and Kanban that extend its principles beyond software development.
To understand the story of SDLC Methodologies, it is best to look at them chronologically. And while there are a number of methodologies that have been tried, all of them except the Agile family has fallen out of use today. You could even say we live in a Post-Agile world.
The First SDLC Methodology - The Waterfall Method - 1970s to 90s
The first SDLC methodology to take hold in software development was the Waterfall method. Associated with Winston W. Royce, It was first introduced in a paper he wrote and used it as an example of what a bad methodology looks like: "I believe in this concept, but the implementation described above is risky and invites failure." Despite his warnings and guidance, the Waterfall methodology quickly became the standard and stayed that way for over 20 years.
Waterfall is broken down into phases, and other modern methodologies can even pull from these phases and utilize them, these phases are:
- Requirement Analysis
- Architectural Design
- Software Development
According to the Waterfall method, the software development process goes through all the SDLC phases with no overlapping and consists of a single development cycle. According to the fact that it is a linear-sequential life cycle model, any phase in the development process can begin only if the previous one is complete. Teams are large and everyone on the team (business analysts, architects, developers, tests, operations, etc.) all work within their own silos.
After the entire architecture, data structures, and functional designs are ready, the development team starts coding the software. Only after all code is written can integration and validation start. This means that the code is not tested before the Testing phase and only unit tests are executed during development.
Finally, the software finishes testing and is deployed to production and for the first time, where users are able to take it for a test drive. The Waterfall method can take several months or even years to complete, which means that if it doesn’t meet user expectations, changes are extremely slow and expensive. In many cases, defects never get fixed at all.
Likewise, due to the lack of feedback from customers or other stakeholders during the design and development process, it was quite common for Waterfall teams to build unnecessary or under-used features, leading to wasted time, effort, and money.
As technology leaders of the 1990s began realizing that the Waterfall method had a tendency to produce lengthy and costly business outcomes, they started seeking more flexible alternatives.
Alternative Methodologies Come and Golean
Waterfall was showing its age, and it never really worked well, to begin with. As a result, pioneers in software developed novel methodologies aiming to either improve or replace Waterfall.
Methodologies like Prototyping, Iterative, Spiral, V-Shape, came and went, and more modern frameworks like Scrum, XP (Extreme Programming), and Kanban were developed around the same time as the standard we use today, Agile. In fact, a lot of folks that signed the Agile Manifesto were XP creators and users.
Understanding some of these now-outdated models helps us better understand how Waterfall transitioned into Agile:
The Prototyping Model
An outdated methodology that is no longer in active use, it served its purpose as one of the earliest alternatives to Waterfall, dating back to the mid 1970s. The Prototype method revolves around the creation of a low fidelity prototype for the purposes of collecting early feedback from prospective users. From there, prototypes are evolved into final software requirements.
The Iterative Model
The Iterative methodology was an early precursor to Agile. It emphasized iterative and incremental action. Its earliest reported use was as part of NASA’s Project Mercury in the early 1960s.
With the Iterative Model, only the major requirements are known from the beginning. Based on these, the development team creates a quick and cheap first version of the software. Then, as additional requirements are identified, additional iterations of the software are designed and built. Each iteration goes through all the phases of the SDLC and these cycles are repeated until completion. It was common for the team to work on several SDLC phases at the same time.
The Spiral Method is described by Barry Boehm in his 1986 paper “A Spiral Model of Software Development and Enhancement.” The Spiral Model boils down to a meta-model, which evaluates the specific risk profile of the project before recommending an approach that blends aspects of the other popular methodologies of the day, including Iterative and Waterfall. As such, it rejects a one size fits all approach to process model adoption.
The V-Shape model is named after its two key concepts: Validation and Verification. In the Verification Phases, requirements and designs are created. Each Validation Phase has a corresponding Verification Phase, where testing and user acceptance occurs. These two phases are linked together by the Implementation (or coding) phase.
The New Millenium: Agile Takes Over
With no single methodology presenting a suitable alternative to Waterfall, which was woefully too slow and risky, 17 pioneers in software engineering gathered to create the Agile “Software Development” Manifesto on February 11th, 2001.
Agile is the mainstream methodology used in modern software development, and expands its influence beyond coding into many aspects of product development, from ideation to customer experience.
The Agile methodology breaks a project down into multiple cycles, each passing through some or all of the SDLC phases. The focus is on people and how they work together to get the project done. Agile calls for continuous collaboration between team members and stakeholders with regular cycles of feedback and iteration.
The Agile Manifesto’s 4 Core Values
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
Agile Roles assign responsibilities to members of the team. They are different than positions as a single person can take on multiple Agile roles depending on the scope of the project. Conversely, multiple people can share the same role.
Here are some of the roles you could see in an Agile project:
- Product Owner - The Product Owner, also known as the “voice of the customer”, defines the product vision based on all insights, feedback, and ideas gathered. He or she is the owner of the product requirements and works closely with the development team to communicate the vision by documenting it in short narratives called User Stories. User Stories typically include a name, description, reference to any external documents, and an explanation of how to test the implementation. Product Owners often maintain a backlog of User Stories if there are too many to be executed concurrently.
- Scrum Master - Similar to a project manager, this role is all about making sure the team is following Agile principles, values, and processes.
- Team Member - All members of the development team have different skills and collaborate together to build functional software. Teams can include QA engineers, business analysts, designers, database engineers, and more depending on the project scope.
Advantages of Agile Methodology
- Deliver software well-tailored to an ever-growing understanding of customer demands
- Software is deployed more quickly and improved more regularly
- Better code hygiene including style, readability, and structuring
- Flexible and adaptable process enables pivots or changes mid-project
- Doesn’t require a complete list of requirements upfront
- Makes room to act on organizational learning as the project progresses
- Transparency and continuous communication with involved stakeholders
Organizations can choose to adopt a single Agile framework or they can combine elements of multiple frameworks to suit the needs of the project and characteristics of the team. The most popular Agile frameworks are:
Scrum is a very popular Agile framework characterized by continuous collaboration, frequent deliveries, and special development cycles called ‘Sprints’. Scrum revolves around the following checkpoints:
- Planning meetings, in which the team identifies and discusses the Sprint priorities.
- Commitment meetings, in which the team reviews the backlog of user stories to determine how much effort it involves and how much work can be done during the upcoming Sprint.
- Daily standup meetings, which are notably short meetings that ensure everyone is aligned. In this regard, each team member communicates updates on story status, blockers, or concerns.
- Demo meetings, which the team attends at the end of each Sprint to show the functionalities implemented during the current sprint to the Product Owner.
- Retrospective meetings, which are also hosted at the end of each Sprint to discuss lessons learned, what went well, and what needs improvement.
Scrum introduces the Scrum Master role to the Agile method. The Scrum Master’s job is to manage and improve processes, help the team stay authentic to Agile values, and focus on maximizing productivity. A good Scrum Master ensures that the process and progress are transparent to all stakeholders.
Kanban is a scheduling system framework for the Agile-eque Lean methodology. It doesn’t have its roots in software development, but synergizes very well with Agile and has become a staple of Agile teams.
Kanban got its start in lean manufacturing, where Toyota applied the same “just in time” principles that supermarkets use to manage inventory stock levels based on customer demand. Kanban, meaning signboard in Japanese, uses cards to track and support the production system by visually showing the steps within the process and how long each step is taking using cards.
Kanban has a host of benefits when applied to Agile. You can limit WIP, focus on cycle time, and utilize just-in-time practices.
Kanban is sometimes compared to Scrum, which are similar in some ways, but are distinct frameworks:
- Scrum utilizes fixed length Sprints cycles while Kanban is about continuous flow
- Scrum is role focused, while Kanban doesn’t utilize roles
- Scrum measures velocity, while Kanban focuses on cycle time
In the Kanban framework, the team creates a visual representation of their tasks and statuses by using sticky notes on a physical whiteboard or by using a dedicated software application. Tasks are moved through predefined stages such as To-Do, In Progress, In Review, or Complete.
A few examples of popular Kanban productivity apps:
Extreme Programming (XP) is an Agile framework focused on project flexibility and writing high quality, well-tested code. The official Extreme Programming website states that XP improves a software project in 5 key ways:
Extreme Programming is best known for the following:
- Pair programming is a technique where two programmers share the same workstation and create software together. One acts as the driver and the other one as the navigator, then they switch roles. When paired, code review can take place instantly, and defects are more likely to be identified and corrected immediately. Pair programming encourages mentorship, knowledge sharing, and learning. And while it may take more time to produce new code when two developers work on the same task, the resulting code is higher quality with less defects.
- Unit and functional testing are emphasized in XP. Tests are to be comprehensive and automated, reducing technical debt and ensuring code can confidently be validated and re-used.
- Continuous communication between programmers and stakeholders to gather and act upon their input, feedback, and change requests. XP requires an “extended development team” that may include business managers, customers, and other key stakeholders.
Lean isn’t a software development methodology. Lean’s origins go back to a manufacturing production method invented in the 1930s, officially given a name in the 80s, and more-formally defined in the 90s. Lean is a system that focuses on making more with less. Many have more-recently discovered that Lean works extremely well with software development, especially Agile.
While Agile focuses on delivering continuous value, the goal of Lean is to increase the speed and decrease the cost of product development. With Lean, the highest risks are wasted time and effort. Lean discourages multitasking and encourages team members to focus on what’s important in the present moment. By doing this, the waste associated with unnecessary documentation, meetings, or planning are eliminated.
Lean focuses on the following “just in time” principles:
- Eliminating waste in cost, scope, and scheduling
- Amplifying learning
- Taking decisions as late as possible
- Fast delivery
- Empowering the team
- Building integrity
- Optimizing the entire project
DevOps is not technically an SDLC methodology but it does share the goal of maximizing software project success and includes Agile-inspired concepts.
On Wikipedia, DevOps is defined as “a set of practices that combines software development and IT operations. It aims to shorten the systems development life cycle and provide continuous delivery with high software quality. DevOps is complementary with Agile software development; several DevOps aspects came from Agile methodology.”
DevOps, just like Lean, can work alongside Agile to create an infrastructure that eliminates the barriers slowing development and delivery of the final software product. DevOps brings deployment and operation of the software fully into the Agile development process in the same way Agile brought testing and business analysis into software development. Ultimately, the team is empowered to be self-sufficient and take ownership of software development, shipping, and support. They use Continuous Delivery (CD) for frequent releases and to maintain a well-tested and high-quality codebase.
History of DevOps
The DevOps movement started around 2008. The constant pressure to make rapid changes plus the emergence of a new wave of infrastructure automation allowed non-specialists to enter the space and highlighted the need for cross-functional collaboration.
New expectations around delivering more-regular software changes were a big motivation for creating DevOps. Desktop applications were being replaced by web and mobile applications, and instead of delivering physical media (CDs or DVDs), companies began providing Software as a Service (SaaS) over the web. As the industry’s challenges evolved, DevOps offered a solution.
Advantages of DevOps
- Software development teams are self-sufficient; shipping and maintaining software without depending on the IT or technical operations teams.
- The deployment process is automated and optimized. A junior developer can learn to safely deploy, with less effort.
- Teams implement Continuous Integration / Continuous Delivery (CI/CD).
- Using the right tools, engineers save time on deployment so they can focus on coding.
- Feedback loops integrated throughout the entire process.
SDLC methodologies have changed dramatically since the decades of Waterfall method dominance. These changes began intensifying in the 1990s as developers scrambled to find a method that would eliminate the shortcomings of Waterfall, exploring options like Spiral, V-Shape, Iterative, and Prototype. But as the new millennium arrived, software developers began to realize that Agile provided the flexibility and scalability that software organizations required. Agile has since been enhanced by frameworks that extend its principles into every aspect of product and software development, from ideation to deployment.
Agile and Waterfall are both Software Development Lifecycle (SDLC) methodologies that have been widely adopted in the IT industry. The Waterfall framework was designed to enable a structured and deliberate process for developing high quality information systems within project scope.What are the SDLC models methodologies? ›
The SDLC process involves several distinct stages, including planning, analysis, design, building, testing, deployment and maintenance.What are the six 6 phases of waterfall SDLC? ›
The waterfall model has six stages: requirements, analysis, design, coding, testing, and deployment.Which SDLC is the most Agile? ›
The answer to the question “which SDLC model is the best?” is Agile. The Agile model is a combination of an incremental and iterative approach and is focussed on fitting in well with flexible requirements.
SDLC provides a systematic approach to building software towards successful product deliverables within the timelines, whereas Agile has faster development approach and speeds up the development process in an effective and efficient manner.What is the most common SDLC methodology? ›
Agile is one of the most common methodologies out there today but it's technically more of a framework than a distinct model. Within Agile, there are sub-models in place such as extreme programming (XP), Rapid Application Development (RAD), Kanban and Scrum methodology.What are the 2 types of SDLC models? ›
Predictive SDLC Models
Top 5 SDLC(Software Development Life Cycle ) Methodologies.Does SDLC have 6 or 7 phases? ›
What Are the 7 Phases of SDLC? The new seven phases of SDLC include planning, analysis, design, development, testing, implementation, and maintenance.Which is the six step of SDLC model? ›
Software Development Life Cycle is the application of standard business practices to building software applications. It's typically divided into six to eight steps: Planning, Requirements, Design, Build, Document, Test, Deploy, Maintain.
The Software Development Life Cycle (SDLC) is a structured process that enables the production of high-quality, low-cost software, in the shortest possible production time. The goal of the SDLC is to produce superior software that meets and exceeds all customer expectations and demands.What are the 5 stages of waterfall model? ›
But generally, you can group the activities of the waterfall approach into five stages: planning, design, implementation, verification, and maintenance.What is the fifth core process of SDLC? ›
Stage 5: Testing
Once the developers build the software, then it is deployed in the testing environment. Then the testing team tests the functionality of the entire system. In this fifth phase of SDLC, the testing is done to ensure that the entire application works according to the customer requirements.
Scrum is the most common Agile framework. Others include the Dynamic Systems Development Method (DSDM), Crystal, and Feature-Driven Development (FDD).What are the 4 pillars of Agile? ›
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.
There are 5 main Agile methodologies: Scrum, Kanban, Extreme Programming (XP), Lean Development e Crystal.Which phase of SDLC is most difficult? ›
Development in accordance with SRS
Developing the software and implementing the requirements is obviously the longest and hardest stage of SDLC.
The Spiral model is mainly used for large projects. It allows development teams to include user feedback early on and create a highly customized product. Another advantage of this SDLC model is how it handles risk management.Which SDLC model is best suited for large projects? ›
SDLC Model: Spiral
It is best used in large projects and systems that contain small phases or identifiable segments.
DevOps is one of the newest SDLC methodologies and is being adopted by many software companies and IT organizations. As its name suggests, the premise of DevOps is to bring development teams together with operational teams in order to streamline delivery and support.
A software development life cycle (SDLC) is a methodology followed to create high-quality software. By adhering to a standard set of tools, processes, and duties, a software development team can build, design, and develop products that meet or exceed their clients' expectations.What are the 8 stages of SDLC? ›
Systems development life cycle phases include planning, system analysis, system design, development, implementation, integration and testing, and operations and maintenance.What are the 10 phases of SDLC? ›
This SDLC methodology establishes procedures, practices, and guidelines governing the initiation, concept development, planning, requirements analysis, design, development, integration and test, implementation, and operations, maintenance and disposition of information systems (IS) within the DOJ.What is the longest stage in SDLC? ›
Phase 4: Coding
It is the longest phase of the Software Development Life Cycle process. In this phase, Developer needs to follow certain predefined coding guidelines. They also need to use programming tools like compiler, interpreters, debugger to generate and implement the code.
What are the 3 types of fashion models? Editorial, Catalog and Runway are three kinds of models in the high fashion industry.What are the 5 types of system? ›
Peter Checkland (Checkland 1999, 111) divides systems into five classes: natural systems , designed physical systems, designed abstract systems, human activity systems and transcendental systems.What are the phases of Agile? ›
It contains six phases: concept, inception, iteration, release, maintenance, and retirement. The Agile life cycle will vary slightly depending on the project management methodology chosen by a team. For example, Scrum teams work in short time periods known as sprints, which are similar to iterations.What are the first 3 phases of waterfall model? ›
In Royce's original waterfall model, the following phases are followed in order: System and software requirements: captured in a product requirements document. Analysis: resulting in models, schema, and business rules. Design: resulting in the software architecture.Why is waterfall better than Agile? ›
Waterfall is a better method when a project must meet strict regulations as it requires deliverables for each phase before proceeding to the next one. Alternatively, Agile is better suited for teams that plan on moving fast, experimenting with direction and don't know how the final project will look before they start.What are the first 3 phases in the SDLC? ›
SDLC has defined its phases as, Requirement gathering, Designing, Coding, Testing, and Maintenance. It is important to adhere to the phases to provide the Product in a systematic manner.
- The product life cycle is the progression of a product through 5 distinct stages—development, introduction, growth, maturity, and decline. ...
- Market research plays an integral role in each stage of the product life cycle. ...
- The first stage in the product life cycle is development.
The testing phase of the SDLC is one of the most important. It is impossible to deliver quality software without testing. There is a wide variety of testing necessary to measure quality: Code quality.Is SDLC part of Agile? ›
Agile SDLC methodology is based on collaborative decision making between requirements and solutions teams, and a cyclical, iterative progression of producing working software. Work is done in regularly iterated cycles, known as sprints, that usually last two to four weeks.Is SDLC used in Agile? ›
The Agile SDLC development method focuses on collaborative decision-making, customer satisfaction, and development over multiple short cycles or sprints, rather than a top-down process with a single series of stages. Your teams work in multiple cycles, which typically last between two and four weeks.Does SDLC mean waterfall? ›
The waterfall model is a linear, sequential approach to the software development lifecycle (SDLC) that is popular in software engineering and product development. The waterfall model uses a logical progression of SDLC steps for a project, similar to the direction water flows over the edge of a cliff.What is SDLC also known as? ›
In systems engineering, information systems and software engineering, the systems development life cycle (SDLC), also referred to as the application development life-cycle, is a process for planning, creating, testing, and deploying an information system.Which SDLC model is best? ›
The Spiral model is considered to be one of the most flexible SDLC methodologies. It takes its cue from the repetitions inherent for the Iterative model. There are four stages for the project to go through: planning.Is SDLC a scrum? ›
Scrum is not an SDLC because it does not cover all of the generally accepted things that are part of an SDLC. There are no mention of common initiation or inception activities such as forming a team or identifying an initial scope or how the work will be funded.Is SDLC part of ITIL? ›
Simply put... SDLC is a Lifecycle approach to produce the software or the "product". ITIL is a Lifecycle approach that focuses on the "service".How many types of SDLC are there? ›
5 main types of software development life cycle methodologies. Advantages and disadvantages of different SDLC models.