More flexible and agile, agile methodology is increasingly taking precedence over traditional V-cycle project management. But what exactly is agile? Let's have a look at it!
V-cycle or Agility?
The V-cycle, which appeared in the 1980s, is the "traditional" project management method. It is based on the fact that a project is divided into a succession of stages: needs analysis, writing of functional specifications, implementation, unit tests, integration tests, validation tests and acceptance tests. Each step is associated with a validation phase. Its main advantages lie in its ease of implementation and its tunnel effect that avoids going backwards. But this tunnel effect is also what is criticized because it leaves no room for modifications during development and therefore for adaptability and responsiveness. And the problem today is that it is complex to foresee all situations and therefore to put requirements in front of them.
V-cycle
It is this lack of flexibility that has allowed the Agile method to develop and stand out. This method advocates communication and collaboration between self-organized and multidisciplinary teams while placing the client at the heart of the project. It follows the observation of a high failure rate of projects in the 1990s. In 2001, 17 software development experts met in the United States and pooled their respective methods, creating the "Agile Manifesto".
The Agile Manifesto
Considered as the canonical definition of agile development, the Agile Manifesto consists of four values and twelve founding principles.
"We discover better approaches to software development by practicing it and helping others practice it. This work has led us to value :
people and their interactions rather than processes and tools;
to functional software rather than exhaustive documentation;
to collaboration with clients rather than contractual negotiation;
to adapting to change rather than executing a plan.
This means that, although there is value in the elements at the end, our preference is for the elements that are in the first part of the sentence. "
The twelve principles of the Agile methodology
1. Our highest priority is to satisfy the customer delivering high value-added features quickly and consistently.
2. Welcome changes in requirements, even late in the project. Agile processes leverage change to give the customer a competitive advantage.
3. Deliver working software frequently, in cycles of weeks to months, with a preference for shorter cycles.
4. Users or their representatives and developers should work together daily throughout the project.
5. Run projects with motivated people. Provide them with the environment and support they need and trust them to achieve the goals.
6. The easiest and most effective way to convey information to and within the development team is through face-to-face dialogue.
7. Functional software is the primary measure of project progress.
8. Agile processes encourage a sustainable pace of development. Together, sponsors, developers, and users should be able to maintain a constant pace indefinitely.
9. Continued attention to technical excellence and good design.
10. Simplicity - that is, the art of minimizing the amount of unnecessary work - is essential.
11. The best architectures, specifications, and designs emerge from self-organizing teams.
12. At regular intervals, the team thinks about how it can become more efficient. Then it adapts and changes its operations accordingly.
What does this mean in concrete terms?
Rather than setting long-term goals, the agile methodology relies on short-term goals. Everything is done as it happens. And since customer satisfaction is the priority, each step is validated by the customer. This allows us to adapt more easily and quickly in case of modifications or unforeseen events and to meet their expectations. There is a real relationship and collaboration between the team and the client that allows everyone to move forward efficiently and to be on the same page.
The agile approach is a very flexible project management method. Everything is adaptable, or almost. Quality is perhaps a little less so, but everything concerning the scope, the budget and the completion time can easily be modified, depending on the method used (Scrum, Kanban). This allows to be more reactive in case of problems, to increase the team's performance, but also to gain control over the final product and therefore to improve its quality. And a quality final product means happy users, who are more likely to spend money!
Beware, agility is not a magic solution that can be applied to all organizations and all projects. For it to work, certain conditions must be met: an organizational culture that favors collaboration and that does not rely on overly rigid structures, a multidisciplinary team, and a client who is available and ready to get involved in the project.
Also, there are some limitations to agile. For example, while the absence of a well-defined process encourages team independence, it can also distract them. It is therefore important to put in place means to coordinate each actor and also means to measure progress, notably by defining key performance indicators, so as not to get too lost. On the other hand, due to the unpredictability of the agile methodology, it is difficult to determine the cost, the necessary resources and the time of the project and this must be taken into account before launching.
And if the Agile method seems the "best" solution, it is not actually in opposition with the V-cycle which remains very adapted according to the project. It's all about context and it is therefore necessary to study both methods to determine which one is the most suitable for your project.
As for the question: "how to register the agile methodology in the field of testing ", that will be the subject of a future article! We have to make you want to come back 😉