Agile is a project management method, developed to meet the needs of self-organizing and cross-functional teams working in close collaboration with their clients. Agile uses an adaptive and iterative approach that helps the development team produce better results, meet project objectives and, most importantly, provide value.
The entire philosophy and mindset of Agile project management is contained in the Agile Manifesto. This was prepared in 2001 by a group of 17 practitioners who wanted to find and describe a better way (better than the Waterfall methodology) to produce software. All the ideas were presented and stated in terms of Agile key-values and principles.
These principles guide the user to make the right decisions during the software development process. These principles include:
One of the reasons why the Agile methodology was created is that the old way (Waterfall methodology) was not sufficient to deliver the product that meets the customers' expectations for software development.
The Waterfall is a methodology based on the linear approach. The software is developed in linear phases, where each phase represents one stage of the project. The important thing is that the team cannot switch to the next phase unless the previous one was finished, or which is exceptionally vital, cannot go back if the changes are needed.
This makes the Waterfall methodology inflexible and prevents the team from being responsive to changes. Another element of the Waterfall methodology is a fixed scope, forcing the team to work only on the already established requirements. Even if there are some new features or areas that should be considered, the team is due to work with the current scope. Compared to the Agile, there is a lack of communication with the business during the development process in the Waterfall. The client sees the outcome at the end. There is no review stage when the customer can see the product earlier.
All these limitations are dangerous for the project and its goal. It may happen that the product will not meet the client expectations, and needed changes can be too costly.
In the opposite of the Waterfall, Agile is based on iterations, collaboration and everyday communication. The development team is working closely with business stakeholders and delivering small pieces of the software after each iteration. It allows the team and the business to check the results on every stage of the process and if needed, to implement changes and refine the project's scope.
One of the critical changes applied in The Agile project management is the structure of the development team. These teams are built not to be specialized in one particular thing, but to be interdisciplinary. These cross-functional teams and their close collaboration are critical in Agile.
The Agile methodology has several frameworks, used based on the outcome we wish to achieve. All share the same Agile principles, and their processes are based on them. Still, there are some differences between them regarding their characteristics, elements they are using, and terminology.
To show you the difference, we have described some of them:
This is the most popular Agile framework used in the software industry. Its core process is focused on providing, using iterations ( called Sprints), small parts of the project (MVP - Minimum Viable Product) to be presented to the customer. It allows the team to confirm the project's scope and easily apply changes if needed. The customer is closely involved in the development process. In the process, the Product Owner is a Subject Matter Expert and a voice of the customer. The Scrum Master is responsible for the Scrum flow process, and to remove any blocker on the team's way.
Focuses on delivering small parts of work items (Kanban cards) rather than waiting for the full product to be done. Its main goal is to visualize the workflow (Kanban Board) and remove any blocks on the road. Limiting the amount of work (Work-In-Progress limits) allows the team to be focused on the main task and finish it as fast as possible (Lead time), and what is extremely vital to maintain the quality at the same time.
It is a software development methodology focused on iterations and frequent releases. It was created to work in an environment where requirements are changed rapidly, and results are needed very quickly.
It's focused on individuals and their interactions rather than on tools and processes. Most important is teamwork and communication. The team is the most crucial element of Crystal methodology. The team handles the project, and it is the team that should decide how to deal with it and which workflow is most suitable.
It is a variation of another Agile methodology (Rapid Application Development (RAD)) which allows gaining more control over the iterative process. One of its goals is to deliver value to the business as soon as possible.
The whole mindset of the DSDM methodology was gathered in its eight principles:
Since the Agile was introduced to the world, many companies have applied it and used it daily. The companies like Apple, IBM, Microsoft and Procter & Gamble, use Agile, not only in software development but also in other departments (for example, in HR).
The question is Agile the right choice for you? As always, it depends on several factors. The Agile is the right choice if you face the continually changing environment and need to be flexible and capable of changing rapidly. It is also a perfect choice if your customer wishes to participate in the development process. One of the key principles of Agile is a close collaboration with the client.
It is easy to use the Agile approach when it comes to large systems, for which we are unable to estimate all requirements right away. It is too complicated, and since the processes are complicated to trace, there is a high possibility and danger that the fixed requirement will be insufficient. It may be a straightforward way to the project downfall.
However, if you are mostly working with products with fixed requirements and scope, and if your client doesn't want to participate in your team's work and gets involved in frequent meetings, Agile may not be the best way for you to manage your projects.
In Headchannel, we are using the Scrum and Kanban methodology daily. Our Project Management team vast experience allows us to bring the best practices and use them in our projects. However, we stay open-minded. The Agile methodology brings many benefits and improvements, but our client's needs are most important to us as always. We chose the method, which is the best to achieve our customer business goals. This is our main target.