Methodologies and the SDLC
But that is how we did it at my last company!
The methodology that you use is what determines how and when you do things. It is the foundation and framework for all your SDLC activities. Generally, methodologies are classified as plan-driven or change-driven. Plan-driven methodologies are used when you know the requirements before you start developing your product. Often called the “Traditional” way to do things. Change-driven methodologies often called “Agile” are often used when not all the requirements are known upfront or are expected to change during development. In many organizations, you will find a combination of plan-driven and change-driven methodologies used for software development.
Below are seven common methodologies used today.
The Waterfall model
The Waterfall model is the most common methodology to use (especially in large organizations), but it is not always the best. This methodology divides the project into phases, allowing for control of time, cost, and scope. The waterfall model works best for small projects that are straightforward, predictable outcomes, independent and low risk. Each phase is completed in a linear sequential development. Typical phases include Requirements, Design, Construction, Test, Deliver, Operations, Maintenance, and Retire.
Agile development model
Agile is a Change Driven methodology that uses quick execution, daily meetings, dedicated developers, and adaptability to changes. This model uses small increments of planning and execution of the requirements. Changes to the project will determine the amount of work required to complete the development and deliverables. Risk is contained through the use of short development cycles and co-located teams. Used when requirements are difficult to define and expected to change.
Rapid Application Development (RAD) Model
The Rapid Application Development (RAD) Model builds system components concurrently and integrates the components at the end of the project. This model is used if you are on a compressed schedule. RAD generally allows the software to be written much faster and makes it easier to change requirements.
Evolutionary development model
I have used the Evolutionary development model with many IT projects. The BA will get the initial requirements and hand them over to the developers; they will build something based on the initial requirements; learn from the first cycle and try again. The product will evolve with each round of requirements, development, and testing until the desired product has been created and approved by the sponsor or stakeholders.
Prototyping model
Prototyping builds nonworking mockups of the system or components of the system for proof of concepts (POC) for high-risk areas or for requirements understanding. Anything that can be used to demonstrate the idea can be considered a prototype including diagrams, and physical or digital models.
VEE model
The VEE model (V-model) is a systems development model designed to simplify the understanding of the complexity associated with developing systems. The VEE model (V-model) includes the relationship between decomposition and integration, and the concept of incremental delivery. It is used to define a uniform procedure for product or project development. The VEE model diagram looks like a V.
Spiral development model
The Spiral development model is risk-driven. The requirements and system concept are developed concurrently. Essentially it is an iterative waterfall model. Spiral uses a series of planning, objective determination, alternative identification, and development for the life cycle and is ideal for projects that are sensitive to risk avoidance.
Remember not all methodologies will work for every project. Experiment with different methodologies to see how each one works. You may combine parts of different methodologies to create a custom methodology that works for you.