Scrum, Kanban, waterfall, Agile.
There's a wide array of project management frameworks you can use. Some methods though, like waterfall, aren't as effective for software teams. With priorities and customer needs constantly changing, the Agile methodology breaks projects up into several phases to drive continuous improvement.
Agile project management isn’t just useful for software project management—all types of teams have been successful with this dynamic methodology. If you’re looking to get started with Agile, you’ve come to the right place.
Agile methodology is a project management framework that breaks projects down into several dynamic phases, commonly known as sprints.
The Agile framework is an iterative methodology. After every sprint, teams reflect and look back to see if there was anything that could be improved so they can adjust their strategy for the next sprint.
The Agile Manifesto is a document that focuses on four values and 12 principles for Agile software development. It was published in February 2001 by 17 software developers who needed an alternative to the more linear product development process.
As outlined in the Agile Manifesto, there are four main values of Agile project management:
Individuals over processes and tools: Agile teams value team collaboration and teamwork over working independently and doing things "by the book.”
Working software over comprehensive documentation: The software that Agile teams develop should work. Additional work, like documentation, is not as important as developing good software.
Customer collaboration over contract negotiation: Customers are extremely important within the Agile methodology. Agile teams allow customers to guide where the software should go. Therefore, customer collaboration is more important than the finer details of contract negotiation.
Responding to change over following a plan: One of the major benefits of Agile project management is that it allows teams to be flexible. This framework allows for teams to quickly shift strategies and workflows without derailing an entire project.
The four values of Agile are the pillars of Agile methodology. From those values, the team developed 12 principles.
If the four values of Agile are the weight-bearing pillars of a house, then these 12 principles are the rooms you can build within that house. These principles can be easily adapted to fit the needs of your team.
The 12 principles used in Agile methodology are:
Satisfy customers through early, continuous improvement and delivery.When customers receive new updates regularly, they're more likely to see the changes they want within the product. This leads to happier, more satisfied customers—and more recurring revenue.
Welcome changing requirements, even late in the project. The Agile framework is all about adaptability. In iterative processes like Agile, being inflexible causes more harm than good.
Deliver value frequently. Similar to principle #1, delivering value to your customers or stakeholders frequently makes it less likely for them to churn.
Break the silos of your projects. Collaboration is key in the Agile framework. The goal is for people to break out of their own individual projects and collaborate together more frequently.
Build projects around motivated individuals. Agile works best when teams are committed and actively working to achieve a goal.
The most effective way to communicate is face-to-face. If you’re working on a distributed team, spend time communicating in ways that involve face-to-face communication like Zoom calls.
Working software is the primary measure of progress. The most important thing that teams should strive for with the Agile framework is the product. The goal here is to prioritize functional software over everything else.
Maintain a sustainable working pace. Some aspects of Agile can be fast-paced, but it shouldn't be so fast that team members burn out. The goal is to maintain sustainability throughout the project.
Continuous excellence enhances agility. If the team develops excellent code in one sprint, they can continue to build off of it the next. Continually creating great work allows teams to move faster in the future.
Simplicity is essential. Sometimes the simplest solution is the best solution. Agile aims to not overcomplicate things and find simple answers to complex problems.
Self-organizing teams generate the most value. Similar to principle #5, proactive teams become valuable assets to the company as they strive to deliver value.
Regularly reflect and adjust your way of work to boost effectiveness. Retrospective meetings are a common Agile practice. It's a dedicated time for teams to look back and reflect on their performance and adapt their behaviors for the future.
You commonly find Agile project management used in application development or other types of software development. This is because software is constantly changing, and the needs of the product have to change with it.
Because of this, linear project management methods like the waterfall model are less effective. Here are a few other reasons why teams use Agile:
There's a reason why they call it the Agile methodology. One of the main benefits of using Agile processes in software development is the ability to shift strategies quickly, without disrupting the flow of a project.
Because phases in the traditional waterfall method flow into one another, shifting strategies is challenging and can disrupt the rest of the project roadmap. Since software development is a much more adaptable field, project managing rapid changes in the traditional sense can be challenging. This is part of the reason why Agile project management is favored in software development.
One of the Agile principles states that the most effective way to communicate with your team is face-to-face. Combine this with the principle that encourages teams to break project silos and you have a recipe for collaborative teamwork.
While technology has changed since Agile’s inception and work has shifted to welcome more remote-friendly policies, the idea of working face-to-face still hasn't changed.Читать о 10 простых шагах к более эффективной совместной работе
One of the unique aspects of software development is that teams can focus on customer needs much more closely than other industries. With the rise of cloud-based software, teams can get feedback from their actual customers quickly.
Since customer satisfaction is a key driver for software development, it’s easy to see why it was included in the Agile process. By collaborating with customers, Agile teams can prioritize features that focus on customer needs. When those needs change, teams can take an Agile approach and shift to a different project.
The Agile framework is an umbrella for several different variations. Here are a few of the most common Agile methodologies.
Kanban is a visual approach to Agile. Teams use online Kanban board tools to represent where certain tasks are in the development process. Tasks are represented by cards on a board, and stages are represented in columns. As team members work on tasks, they move cards from the backlog column to the column that represents the stage the task is in.
This method is a good way for teams to identify roadblocks and to visualize the amount of work that’s getting done.Читать руководство по Канбан-доскам для начинающих
Scrum is a common Agile methodology for small teams and also involves sprints. The team is led by a Scrum master whose main job is to clear all obstacles for others executing the day-to-day work.
Scrum teams meet daily to discuss active tasks, roadblocks, and anything else that may affect the development team.
Sprint planning: This event kicks off the sprint. Sprint planning outlines what can be delivered in a sprint (and how).
Sprint retrospective: This recurring meeting acts as a sprint review—to iterate on learnings from a previous sprint that will improve and streamline the next one.
Typically used in software development, Extreme Programming (XP) is an Agile framework that outlines values that will allow your team to work together more effectively.
The five values of XP include:
Similar to daily Scrum standups, there are regular releases and iterations, yet XP is much more technical in its approach. If your dev team needs to quickly release and respond to customer requests, XP focuses on the “how” it will get done.
The Adaptive Project Framework, also known as Adaptive Project Management (APM) grew from the idea that unknown factors can show up at any time during a project. This technique is mainly used for IT projects where more traditional project management techniques don’t apply.
This framework is based on the idea that project resources can change at any time. For example, budgets can change, timelines can shift, or team members working on the project may transition to different teams. APF focuses on the resources that a project has, as opposed to the resources a project needs.
This type of project management is often used for very complex projects with a high level of uncertainty. This approach involves constantly adapting processes until they lead to the desired result. This type of project involves many spontaneous changes and it’s normal for teams to switch strategies from one week to the next.
XPM requires a lot of flexibility. This is one of the reasons why each sprint is short—only a few weeks maximum. This methodology allows for frequent changes, trial-and-error approaches to problems, and many iterations of self-correction.Read: Understanding the iterative process, with examples
This Agile methodology enables teams to quickly adapt to changing requirements. The main focus of this process is continuous adaptation. The phases of this project type—speculate, collaborate, and learn—allow for continuous learning as the project progresses.
It’s not uncommon for teams running ASD to be in all three phases of ASD at once. Because of its non-linear structure, it’s common for the phases to overlap. Because of the fluidity of this type of management, there’s a higher likelihood that the constant repetition of the three phases helps team members identify and solve problems much quicker than standard project management methods.
The Dynamic Systems Development Method is an Agile method that focuses on a full project lifecycle. Because of this, DSDM has a more rigorous structure and foundation, unlike other Agile methods.
There are four main phases of DSDM:
Functional mode or prototype iteration
Design and build iteration
Feature Driven Development blends different Agile best practices. While still an iterative method of project management, this model focuses more on the exact features of a software that the team is working to develop. Feature-driven development relies heavily on customer input, as the features the team prioritizes are the features that the customers need.
This model also allows teams to update projects frequently. If there is an error, it's quick to cycle through and implement a fix as the phases of this framework are constantly moving.Читать о том, чем каскадная методология, Agile, канбан и Scrum отличаются друг от друга
You’ll often hear software development teams refer to the Agile process—but any team can run Agile. If you’re looking for a more flexible project management framework, try Agile.Управлять Agile-группами в Asana