What You Need to Know About Agile Methodologies | Education
You might be able to define Agile project management, but the best way to understand it is to learn how the different methods can help your business.
(Getty Images)
The connecting concept for all the methodologies is flexibility, the main reason why Agile – which often requires teams to work in a series of short bursts – is different from the traditional project management process.
“Many times, requirements are not fully known at the beginning of a project,” says Rachel Lamb, owner of Rachel Lamb & Associates and project management instructor at Purdue University. “Those short iterations allow a team to adapt to changes in requirements and also continually improve.”
Agile project management grew out of a need to more effectively respond to change in software projects. The Agile Manifesto, written by a group of software developers in 2001, encourages customer collaboration, individuals and interactions, and creating working software. Elements like process, planning and comprehensive documentation are less important.
Traditional project management – where you create a plan and follow it, largely unchanged, throughout the process – is ideal for creating definable products, such as manufacturing a car or building a home, says Georgios Moschoglou, associate professor of practice and faculty director of Lean and Agile project management at Georgetown University’s School of Continuing Studies.
But Agile is ideal for complex projects with high uncertainty and likelihood of change, including new designs, problems and exploratory work, he says. And it’s not just for the software industry – Agile is used by doctors, engineers, lawyers and marketers.
“Agile gives us the ability to create and respond to change,” Moschoglou says. “We develop products and services and at the same time respond to change.”
The customer for Agile processes could be external – such as a client – or internal. There are 12 principles from the Agile Manifesto that provide guidelines on how Agile should work, emphasizing individual work, urging collaboration, welcoming change and promising regular product delivery.
Agile Methods and Principles
The 12 principles of Agile cover key concepts. Among them:
- Satisfying the customer is the highest priority.
- Change is welcome, even late in development.
- Delivering products frequently is ideal.
- Collaboration is key between developers and customers.
- Team members need support and trust.
- The Agile process supports sustainable development.
- Teams are best when they are self-organizing.
- When teams reflect regularly on their work, they can discuss, review and adjust.
There are several Agile methodologies – some are well-known, such as Scrum and Kanban, while others are used by a more specific audience.
“There are different approaches that help you attain and implement Agile concepts,” Lamb says. “What’s common to those is that they follow the Agile Manifesto.”
Here are some methodologies, starting with the most popular ones.
Scrum
Scrum, the most widely known type of Agile, is “a framework of constant growth,” Moschoglou says.
A Scrum master is a servant leader who works for a development team that works in sprints of two to four weeks and produces a product at the end of each period.
“The work is done in small, close functional teams,” Moschoglou says. “The team has all the skills they need to develop a product. They don’t need to pull people from other units of the enterprise.”
The product owner creates a wish list, and at the beginning of each sprint period, the team decides what to work on, he says. The team meets for short 10- to 15-minute daily Scrum or stand-up meetings, where they assess progress, often using a Scrum board. They might also use a chart to show the tasks that remain, Lamb says.
“At the end of the sprint, work is ready to be demonstrated to the customer,” Moschoglou says. Then the team reviews how the sprint went, which provides continuous process improvement.
Items that were not finished go into the backlog, where they can be addressed in the next sprint. “The cycle repeats until all the items on the project backlog are completed,” Moschoglou says.
In Scrum, teams are transparent about what everyone is working on and the issues they’re dealing with during the sprints. They also are welcome to test a hypothesis when they develop a product, then decide if it’s effective and adjust as needed.
“Scrum functions best for teams with an established road map and reasonably stable priorities,” Lamb says. “Defined deadlines may motivate the team to perform better. Frequent feedback occurs, which allows for higher quality work and satisfied customers.”
Kanban
Kanban helps a team visualize work through the use of the Kanban board. This method is an outgrowth of the Toyota Production System from the late 1940s, a manufacturing system based on consumer demand.
Kanban is more fluid than Scrum, Lamb says. While Scrum sprints are set up for a time frame, Kanban is more continuously flowing, focused on optimizing resources, she says.
On the Kanban board, you list what needs to be done, what is being worked on and what is completed. The team works on the highest priority task and advances it to the next stage when it’s done.
“You can visualize the flow,” Moschoglou says. “The flow has limitations. It’s limited to the capacity you have – you don’t have unlimited resources.”
One application of Kanban could be at a customer support center, where employees can visualize on a Kanban board whether a customer inquiry is handled initially by a frontline support person or is elevated to another level of support for more technical questions. Each inquiry could be put on a Kanban card, and employees can see the volume as well as how they are resolved. Kanban works well in this scenario because you can’t predict how many inquiries you’ll get, so you plan and adjust as needed.
“Kanban works well when the team has varying priorities and a high degree of change,” Lamb says. “The approach allows for flexibility while improving the flow of deliveries.”
BizDevOps and DevOps
BizDevOps is designed to bring together the operations, business and development teams to design, develop, deploy and test products. DevOps joins the development and operations teams.
The combined team sets key performance indicators and enables an Agile system for developing the software. Analytics allow for performance feedback and can influence future development.
“It allows for continuous flow, continuous releases and delivery of functionality to the customer,” Moschoglou says.
The team moves quickly to discover mistakes that can be fixed right away. And there is a sense of shared ownership, which can improve productivity.
Feature-Driven Development
Feature-driven development is a software development method that focuses on goals that you want the product to accomplish, such as moving a website visitor to the next point after approving a password.
The initial steps of FDD move fairly quickly, involving an overview of the system and a list of the features you want to achieve. Much of the work happens in the last part of FDD, when the feature is designed and built. The entire process should take a couple of weeks, similar to other Agile methods.
The process is simple and best for larger teams that can move quickly and have consistent success. But it is not ideal for smaller projects and is led primarily by developers who might not embrace the collaborative mindset that other Agile methodologies follow.
Extreme Programming
The difference between extreme programming and other Agile methodologies is that it prioritizes customer satisfaction, Lamb says.
“If the customer has a new requirement that comes up, that’s when you work on it,” she says. “It’s about continuously integrating what customers want at the time they need it.”
Extreme programming’s set of practices is similar to Scrum’s. It is mainly used in the software industry and is focused on programming and delivering products fast, Moschoglou says. It features continuous integration, flow and functionality.
Extreme programming is ideal if you have constantly changing software requirements and a chance to test new ideas with a small team.
“Work is prioritized by the customer,” Lamb says. “Frequent releases allow the team to gather feedback from customers throughout the entire project, which helps ensure project success. In order to follow the customer’s priority, the approach allows for change to happen with
in an iteration. The team focuses on developing the simplest solution possible.”
Extreme programming embraces five values – communication, simplicity, feedback, courage and respect – that guide the way the team will plan, design and work together.
“XP may be used in the case when the customer doesn’t have a clear image of what the end result will look like,” Lamb says.
Dynamic Systems Development Method
Business needs, collaboration and on-time production are some of the basic principles of the dynamic systems development method, or DSDM, which is often used in software development.
This method is based, in part, on rapid application development, which begins with a feasibility study, followed by prototype development, design and build, and implementation. DSDM was founded several years before the Agile Manifesto, and its concepts are similar.
There are eight principles to DSDM:
- Focus on the business needs.
- Deliver on time.
- Collaborate.
- Never compromise quality.
- Build incrementally from firm foundations.
- Develop iteratively.
- Communicate continuously and clearly.
- Demonstrate control.
The project team for DSDM should have well-defined roles and be ready to meet the demands of an Agile process that focuses on collaborative production instead of documentation.
Agile is the best project management method when you’re trying to create something that hasn’t been developed before. It is well-suited for complex projects with a lot of uncertainty, “because it allows the team to discover the products and features in an iterative way,” Moschoglou says.
It’s also the ideal project management method if you have hands-on customers because it allows them to be deeply involved in the process, Moschoglou says. “The customer will have visibility in the product from the very early stages of the life cycle.”
Agile is also designed to deliver products and more features in little time, and to build something workable in each step, rather than following a process that produces one product at the end.
One way to evaluate whether a project is ideal for Agile is to use an assessment tool. Lamb developed one for her Purdue University classes that has nine criteria and produces a spider chart that shows the suitability for Agile. The criteria include the amount of change required, team size, delivery requirements and access to the customer.
“You need that constant feedback to adjust the course of action,” Lamb says.
What Are the Benefits of Agile?
- You can consistently collaborate.
- Innovation is valued.
- You can test and learn throughout the process.
- You respond to changes at a lower cost.
- You can find and correct mistakes quickly.
- With strong communications throughout the project, you can build customer satisfaction.
What Are the Drawbacks of Agile?
Sometimes Agile is not the ideal project management approach. Physical projects have “an inherent logical sequence that project must follow” and changing the process downstream can create chaos, Moschoglou says. For example, you can’t change construction specifications for a hospital and add two more floors than the foundation was built to support.
Other situations that aren’t ideal for Agile:
- Customers who need documentation: Agile doesn’t produce as much documentation as a traditional project.
- Inexperienced team: If your team isn’t experienced enough to handle Agile, it can get sidetracked, Lamb says.
- Strict processes: It’s challenging to successfully use Agile when there are many rules that teams need to adhere to, such as for government projects, Moschoglou says.
- Projects with unclear goals: When you allow an unlimited amount of major changes to the project, it can strain your resources and affect the timeline. One solution to this is to set a time frame for the team’s work to make sure they don’t go off on an expensive tangent.
It’s important to pick the right Agile methodology for the project and the team.
“You can’t impose it on the team,” Moschoglou says. “The team decides what methodology to follow.”
The success of a team also depends on the entire organization following Agile principles. “If that doesn’t happen, you will not experience the benefits of Agile at the project level,” Moschoglou says. “Agile needs to be adopted at all levels of the organization, starting with the leadership all the way to the teams.”
Here are some ways to learn more about Agile methodologies.
- Agile Alliance has a variety of resources primarily for and by members, including a blog, webcasts, videos, podcasts and research papers.
- Resources at Scrum.org include webcasts and blog posts.
- Scrum Alliance offers many free resources.
- Mountain Goat Software, led by Agile expert and trainer Mike Cohn, hosts a popular blog post that covers Agile-related topics.
- Agile Coaching Institute provides a good jumping-off point with books, articles and videos.