Advantages of Agile
According to statistics: projects that use agile approaches are 4 times more successful than those that use the traditional approach. These figures are based on data from 10,000 projects over 5 years.
To fully compare methodologies and take advantage of their benefits, it is necessary to consider the conditions in which they are applied. The best methodology is the one that fits a particular situation: company – business model – customers – team.
In what circumstances is optimal to use Agile:
Uncertainty of the outcome and the solution method.
Agile is best suited to projects where the final result is not sufficiently defined, and the project is largely a search for a solution. Examples of such projects are almost all startups, the creation of new products and services, and design projects. Each iteration represents an approximation of the current product vision. The feedback received from the market or a specific customer makes adjustments to the vision, and they are incorporated into the product in the next iteration. The final solution is gained by trial and error. But each trial spends only a part of the project budget, not the whole budget.
Payment by time&material
In an environment of high uncertainty, it is much easier to work when project financing is based on actual costs. However, it is much more common for customers or investors to want to allocate a certain fixed budget even when the final decision is uncertain. Fortunately, there are ways to work on Agile and in a fixed-price model.
Agile involves close interaction with the customer to get regular feedback. So, the customer should be willing to spend time to get regular (once every few weeks) intermediate results, to give his opinion, ideas, and corrections. He should also be open to constant interaction with the team, discussing issues related to the product vision.
Low level of formalization
The level of formalization is the company’s requirements to describe the results, solutions, process, customer requirements, etc. The more things need to be described, agreed upon, and reported on, the harder it is to implement Agile in such an environment. But do not think that agile methodologies imply mess and a complete absence of formalization. Simply more formalized processes are heavier, less flexible, and not designed to quickly account for changes.
Short production cycle
Since Agile must have short release cycles, there should be no barriers to this. For example, at one of the companies where I worked, a software product had millions of lines of code. The testing and stabilization cycle took several months. These are not the best conditions for Agile.
Getting intermediate results
At the core of the iterative approach is having an intermediate result after each iteration. Therefore, it is optimal when a project involves a gradual buildup of capabilities that can be evaluated from the first cycles. For example, if a house is being decorated, each stage brings improvement for the residents. Replace the windows with plastic – it became warmer, changed the wallpaper – it became more beautiful, and so on. Now imagine the construction of a non-standard building outside the city. First, you may need a soil survey, then a long design work, alignment of the site, etc. If the customer can’t see and appreciate these changes, he can’t give regular feedback, which violates the principles of Agile. But even in these cases, you can often find a way out. It is all a matter of what to consider as intermediate results and how to show their value to the customer.
In the next article, we will study Scrum as one of the options for implementing Agile.