Agile development approaches were founded on real-world experiences of software developers who called for reform due to the problems and shortfalls that can be encountered when following more conventional development models. The basis of the agile model is to tackle these challenges that are related to the origin of and the processes involved in the more established models (for example, the Waterfall Model).
To summarize, in the System Development Life Cycle following the agile model would enable a development team to produce software in small versions, efficiently. This in turn allows the client to consistently see if they are satisfied with results throughout a project’s timeline.
The agile method can be likened to a combination of the iterative and incremental models. Generally, agile uses an adaptive approach whereby there might be a lack of clarity on the requirements and usually a lack of planning for the entire project too. The development process is based on the features needed at the time, and the team would adapt to any changes dynamically as they materialize. Constant feedback and communication with the client and end users is an imperative aspect of the agile model.
The agile model would typically be applied by adopting Extreme Programming. Extreme programming (XP) is an agile technique with the purpose of producing high quality software in the most efficient and productive way. This technique is very forgiving of the varying requirements in an agile environment.
The following illustration outlines the dynamic, iterative nature of the agile development model.
The Advantages of the Agile Development Model
- What could be a larger, more daunting project, could be segmented into more manageable iterations by following the agile approach.
- The agile model allows for a quick release of the initial version of a system.
- There is less risk associated with projects that take an agile approach, as the requirements are typically defined in a flexible way.
- In some cases, project costs and timelines can be accurately estimated as each iteration in an agile environment has a fixed duration.
- There is room for change. The project team can refine the system requirements and include changes to be included in future iterations.
The Disadvantages of the Agile Development Model
- When an agile approach is adopted, the development team could have to spend a lot of their time onsite with the client. This mightn’t always be possible.
- The development team would have to be made up of highly experienced individuals.
- It is almost impossible to quote what the final cost of a project would be, if the requirements are constantly altered.
- For similar reasons, it can be particularly difficult to accurately predict the timeline of an agile project.
- Newly added features can have the potential to interfere and disrupt any existing ones.