As information systems have evolved, so has the process of developing software. Recall that the software development life cycle (SDLC) provides general phases for what to do. Software methodologies contain those same phases but include processes, roles, and structure for how teams make it happen.
A software development methodology is the process for how a team completes the software development phases. Due to the complexity of developing software, developers and engineers apply various methodologies to the development process. When you hear methodology, think of it as a “method” for how they do their job. The appropriate methodology depends on the focus, scope, complexity, time, and team.
|SDLC Methodology||Focus||Situations for Use|
This isn’t an exhaustive list of methodologies; there are many additional methodologies and more details if you’re interested. For this course, we’ll touch on the big three to give you a general idea of how different teams work.
The waterfall methodology is a linear method where development happens sequentially. In this method, the project is broken down to ensure consistency. The steps at the beginning of the method flow down into subsequent steps, similar to a waterfall.
In waterfall development, all progress must move in one direction with the emphasis placed on planning and delivery dates. All details about what to build are created during the requirements phase with a statement of work or a scope document.
Changes to the requirements are managed very closely with change requests because redesign can be costly in this process.
Agile development includes a group of methodologies based on a 2001 Agile Manifesto written by 17 developers who wanted to find a better way to create software. They created a set of values and principles that have inspired several methodologies including Scrum, The Scaled Agile Framework (SAFe), and Kanban.
The goal of the agile methodologies is to provide a flexible and iterative approach while ensuring a quality product. Agile is great for flexibility and products that need a high level of transparency or collaboration with users.
A key to agile development is an autonomous team who is empowered to make decisions.
This concept has taken the business world by storm as an alternative to command and control management. So even if you don’t work in IT, you may hear about the agile principals.
The lean development methodology comes from lean manufacturing and focuses on sustainable development through continuous improvement. The three main steps are build, measure, and learn.
In lean development, the team takes an idea and builds a minimum viable product (MVP). The MVP has just enough functionality to provide the team with feedback on how to improve the product. Once the MVP is developed, it is given to potential users to test the functionality and get feedback on how well they liked it.
After reviewing the feedback, the team determines whether it should continue in the same direction or rethink the concept. Several iterations of the MVP are developed with new functions added each time based on the feedback until a final product is completed.