It's Not Just Scrum: Important Agile Methodologies to Know for the PMP
For those who may be new to the wide world of agile, the terms "agile" and "Scrum" may be used interchangeably. This is a very common mistake to make, as Scrum is the most common agile methodology used to manage teams, organizations, and projects. However, there are many different agile practices that can be tailored to fit the needs of a given project, and boxing ourselves into just knowing about Scrum limits our knowledge of agile. Project managers are expected to understand agile in a wholistic way - after all, agile is meant to be adaptable! On the Project Management Professional (PMP) exam, you will be expected to know the difference between these different agile methodologies, and you can expect to get a handful of questions testing your knowledge in this area. In this article, we will examine agile practices as a whole and then go over the major concepts of different agile project management methodologies.
1. Breaking Down Agile and Scrum
Before we dive into specific agile methodologies, we should universally define agile. Put simply, agile is an iterative approach to project management that helps teams deliver value to end users faster. Instead of doing all development and then releasing functionally in one "big bang," an agile team delivers work in small but measurable increments. As soon as functionality is ready to be delivered, the customer has it in hand. Therefore, requirements, plans, and deliverables are re-evaluated continuously throughout the lifecycle of the project.
Agile sounds great - faster delivery, happier customers! So why isn't every project an agile project? You may have wondered this when reading any article about how amazing agile is for complex projects! The truth is that not every project will need to adapt to constantly changing requirements, and not all projects will be able to deliver functionality in small increments. For example, on a construction project, it is difficult to deliver value to the customer in small increments. Often, the entire project needs to be completed before the customer accepts the work as complete. There may be no need to continuously re-evaluate requirements - the requirements will never change. Therefore, teams and projects who perform software development work often develop agile practices, as it empowers the team to deliver the most relevant functionality and allows them the autonomy to adapt to changing requirements. As you may have guessed, many (but not all) agile teams follow Scrum methodology. We will cover general agile principles and the Agile Manifesto in depth in another article. For now, let's dive into the differences between Scrum, XP, Lean, TDD, and Krystal methodologies.
Scrum is a tested and proven way to manage agile teams, particularly in software development environments. Scrum takes the idea of an iterative approach and molds it into a framework which is applicable to many software development environments. Let's go through the Scrum steps below:
- Create a product backlog. The idea of a product backlog is specific to Scrum methodology.
- Hold sprint planning meetings and create a sprint backlog. The idea of a "sprint" is specific to Scrum.
- Tip: If a question on the PMP exam mentions a sprint, you know for sure that the project is using Scrum. On the other hand, if the time cycle is referred to as an iteration, you only know that you are in an agile environment (not necessarily Scrum).
- Hold and work on the sprint. Scrum sprints last anywhere between 1 and 4 weeks.
- Hold sprint demos (or product demonstrations). These sprint demos are an opportunity for stakeholders and those who are not on the project team to ask questions about what is being delivered in this specific sprint.
- Hold a sprint retrospective and plan the next sprint. Sprint retrospectives are meant for the agile team only and help the team to adjust and plan for the next 1-to-4-week sprint.
If you are familiar with Scrum methodology, these steps may be familiar to you. Let's dive into some of the lesser-known agile project methodologies and their key concepts to know for the exam.
3. Xtreme Programming (XP)
As we take a look at Xtreme Programming (or XP), you may be thinking to yourself that many of these concepts overlap with Scrum. You would be right about that -XP was derived from Scrum, and the two methodologies are aligned in many ways. The differences can be subtle, but they are important.
- XP teams typically work in iterations that are 1 to 2 weeks long. The shorter cycle time means that teams are expected to deliver functionality faster.
- XP teams may allow changes to their iterations. As a principle of Scrum, the team is always protected once a sprint begins. Changes to an iteration are never allowed. XP teams, on the other hand, may swap features during an iteration as long as work on that feature has not already begun.
- Pair programming is an integral part of XP. In pair programming, two developers work together on one machine to design, code, and test user stories. This consistent collaboration is not seen with any other methodology. The idea is that teams will produce more accurate work more quickly if they work together in pairs - what's more, code will be more readable and well documented than if it were written in a silo.
XP and Scrum are similar, but keeping these things in mind, it should be easy to tell the difference between the two on PMP exam questions.
Lean was originally implemented by Toyota to eliminate inefficacy in the manufacturing process. Today, when you hear talk about process improvement, eliminating unnecessary steps, or improving efficiency, you can be almost certain that Lean practices are in place. Lean focuses on "waste" - any component in a process that does not add value. When implemented correctly, Lean can create huge improvements in the product development process, saving immense amounts of time and money. Let's examine four key Lean principles.
- Value. Value is defined by the customer. What is their end goal? What expectations must be met in order to achieve that goal? Once we know the answers to these questions, Lean project managers perform value stream mapping, taking time to identify all actions that a product or service goes through before it delivers the end goal (value) to the customer.
- Flow. Lean project managers must focus on eliminating wasteful steps in the value stream map without interrupting flow. This means that the project manager gets rid of as many unnecessary steps as possible while ensuring that no value is lost on the finished product.
- Pull. Once flow is improved, the time that it takes to deliver to the customer can be improved dramatically. This means that the customer can request deliverables to be "pulled" as needed. Therefore, there is no need to manage an excessive amount of inventory.
- Perfection. Once the first three steps are mastered, Lean project managers strive for perfection, meaning that all waste in a process is eliminated, and the customer achieves maximum value.
Lean continues to be a popular agile methodology to this day when managing projects which have tangible deliverables. Production lines and call centers commonly use Lean methodology to improve processes.
5. Test Driven Development (TDD)
Test Driven Development (TDD) is a software development process that is focused on building tests out of requirements before software is fully developed. This differs from other software development methodologies in the sense that testing is usually done at the end of a project, after the software has been built. You are not likely to be tested in-depth on TDD during the PMP exam, but you should know that TDD requires test cases to be written first and that test cases are tied directly to fulfilling project requirements.
Crystal is a less-used form of agile project management. In recent years, it is more likely to be overlooked in favor of other methods. However, it is still included in the Agile Practice Guide, and you may see a question or two about it on the exam. Crystal is considered to be one of the most "flexible" agile frameworks, focused on individuals and their interactions. There are two core principles to know about Crystal Methodology:
- Teams are self-improving and will find ways to optimize their workflows on their own.
- Every project is unique, which is why the team is best suited to determine how the work will get done.
Teams are given a lot of freedom to do the work as they best see fit on Crystal projects, which can be helpful on projects with changing requirements. The downside is that a lack of structure and documentation can often lead to scope creep, making Crystal projects a challenge to effectively manage.
At its core, agile is a way to break complex projects down into more tangible functionality, resulting in a smoother project experience and a higher likelihood of project success. In fact, the Scrum process shares many characteristics with other agile methodologies we have described here. Though there are similarities between Scrum, XP, TDD, Lean, and Krystal practices, it is imperative to understand the distinct differences between agile methodologies. Agile is meant to be tailored to the individual needs of the project, and therefore, there is never one "right way" to manage every project. It is important to draw out what is needed and understand what must be tailored to achieve the goals of your specific project - that is, of course, the heart of agile practice!