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.
The values of Agile methodology include:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
The Agile values are followed by the 12 principles of Agile.
These principles guide the user to make the right decisions during the software development process. These principles include:
- Satisfying customers by providing early and continuous delivery of valuable software.
- Embracing changing requirements, even when those changes are made at a later stage in development. Agile processes harness change for the customer’s competitive advantage.
- Delivering working software frequently, ranging from a couple of weeks to a couple of months. The shorter the timescale, the better.
- Daily collaboration between business employees and developers.
- Building projects around motivated individuals. Give clients the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity–the art of maximizing the amount of work not done–is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams.
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.
Agile vs Waterfall
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.
How is Agile different?
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.
Agile project management examples
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.
Extreme Programming (XP)
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.
Dynamic Systems Development Method (DSDM)
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:
- Focus on the business need
- Deliver on time
- Never compromise quality
- Build incrementally from firm foundations
- Develop iteratively
- Communicate continuously and clearly
- Demonstrate control
Is Agile project management the right choice for you?
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.
Some of the Agile pros and cons
- Continual involvement: the customer is involved in the development process. It allows the product/project to grow in the right direction. There are lesser chances that the product will not meet the expectations.
- Listing to the customer and building based on that: focused on building the product that will fulfil the persona’s needs and who will use it at the end – the end user. Empathy is critical in applying the Agile methodology.
- Iterative approach: The Waterfall methodology is focused on the delivery of the project as a whole. But there is a danger that the outcome product is not expected, and does not meet the requirements and needs. The Agile methodology provides the product piece by piece. It allows us to check the product in the early phase and check if there is something missed. It allows us to change it and do it better. It is a way to achieve the product our customer wants.
- Continual involvement: it can also be a challenge because the business operations may not allow frequently participating in the Agile development team’s work.
- Focused on the details too early: The design phase is vital to meet the product expectation and design the solution as the whole. Using Agile, we might jump too early to the specific requirements and miss a big picture.
- Not all customers know Agile: there may take some time for your team and your customer to get familiar with Agile and learn its flow and rules.
- Many tools: on the market, there are many tools for Agile management processes (In Headchannel we use Jira) The issue is there are vast numbers of different tools, and if your customer is familiar or uses other than you, it may cause a problem and create some obstacles.
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.