ALM methodologies

Completed

Application lifecycle management (ALM) has a broad perspective that continues until the application is no longer used. Methodologies for ALM can vary, so choosing the correct methodology for your needs is crucial for development. The goal of this module and ALM is to help increase developer productivity, improve collaboration between teams, and provide transparency for work items.

This unit explores the methodologies for ALM and helps you determine which methodology should be used based on software development needs.

There are several approaches to ALM. Each methodology has advantages and disadvantages, depending on the type of project and software being used.

The three common methodologies are Waterfall, Agile, and Spiral.

Waterfall methodology

Diagram showing the five stages of the Waterfall methodology: requirements, system design, implementation, integration and testing, and maintenance.

The Waterfall methodology is a sequential approach. The project is divided into different phases that flow from the previous phase to the next phase until the project is finished. Each phase is thoroughly documented with clear deliverables, reviews, and approvals. Usually, the next phase in the Waterfall methodology does not start until the previous phase is finished. For example, if you were to implement finance and operations apps, all the requirements for every integration would need to be defined before developers could begin development.

The Waterfall methodology should be considered when the project is simple, the requirements are known and well-defined, the full scope of the project is not intended to change, and the project is implemented all at once.

Agile methodology

Cyclical diagram showing the six steps in the Agile methodology: Plan, design, develop, test, release, and feedback.

The Agile methodology is iterative and focuses on continuous feedback to alter and add deliverables to the project. Unlike the Waterfall methodology, the Agile phases can loop back into each other. This means that different phases can be worked simultaneously. For example, if requirements are defined for one integration, the developers can begin working on that integration even if other integrations are still in a requirements-gathering phase. Usually, Agile projects are separated into sprints, which have a defined duration (usually one or two weeks). These sprints have a list of deliverables to be finished during the sprint.

The Agile approach is useful when the requirements are unclear when the project starts, additional requirements or deliverables are expected over the lifecycle of the application, or if the project does not need to be released all at once. Agile is also great for user-driven projects, especially if the project team is fully devoted to the project. Because the Agile approach involves many players who are working on different pieces of the project at the same time, communication and coordination of the project can be difficult. Therefore, it is beneficial to have the project team in the same location.

Because of the iterative nature of Agile, this method can be complex to track. Work is frequently reprioritized when deliverables go past the original sprint or if new sprints need to be added later.

Spiral methodology

Spiral methodology combines aspects of the Waterfall and Agile methodologies. Spiral focuses on risk assessment by breaking up the project into smaller segments or cycles. At the beginning of each cycle, requirements and objectives are identified to create a prototype. Each cycle goes through the same steps to create a prototype. At the end of a cycle, the prototype is reviewed and the next cycle is planned.

Diagram of the four areas of the spiral: Determine objectives, identify and resolve risks, development and test, and plan next iteration.

The Spiral methodology works well for large-scale, complex systems. Proper risk assessment is required to identify risk areas for issues. Without risk assessment, issues can appear in the software that might increase costs.