Is Agile just a development process? There is still a big gap between the Agile community and the project management profession although much progress is starting to be made to close that gap:
- There seem to be a lot of project managers who are in “denial” about the influence of Agile on the project management profession. They continue to think that there is only one way to do project management and that is the traditional plan-driven approach that hasn’t changed significantly since the 1950’s and 1960’s. That approach has been so pervasive that it has essentially defined what “project management is in many people’s minds.
- There are a lot of people in the Agile community who seem to think that Agile is primarily a software development process, “project management” is only performed by someone called a “Project Manager”, and there is no room for project management in an Agile environment
What Is the Truth?
The truth is that:
- Project Managers (and PMI) are recognizing that we need to take a broader view of what “project management” is. Attempting to force-fit all projects to a traditional, plan-driven approach to project management just doesn’t work well in an uncertain environment where a much more flexible and adaptive approach is needed. (Check out this article on Choosing the Right Approach to Fit a Project for more on that)
- There’s actually a lot of project management going on in an Agile environment even though you may not find anyone at the team level called a “Project Manager”. We need to adopt a broader view of what “project management” is in order to see that:
- It’s a different kind of project management with an emphasis on producing value in an uncertain environment rather than meeting cost and schedule goals with well-defined requirements, and
- The functions that might normally be performed by a project manager are normally distributed among the members of the team. (Check out this article on Distributed Project Management for more on that).
- Developers in an Agile environment are expected to do more than simply write code; they’re expected to take responsibility for planning and organizing their own work as well as the work of the team as a whole. Check out this article on What Is an Agile Developer? for more on that.
How Has This Worked In the Past Prior to Agile?
One rationalization I hear often is that some project managers will claim that Agile is not really a project management process; it’s just a software development process. That’s fairly narrow thinking about what “project management” is that goes back to the days when the project management process could be separated from the development process. In those days:
- A project manager might have been somewhat of a high-level administrator who planned and managed projects and may or may not have had any direct role in managing the development effort needed to fulfill the project requirements
- He/she might have been a “middle-man” between the business customer and the development team. He/she might have worked with the business customer to define and document the requirements and then worked with the development organization to negotiate resource commitments as well as the cost and schedule for completing the effort
In many cases, the project manager might have had little or no direct role in managing the development team – that level of management might have been done through a functional development manager. And, in some cases, the project manager simply held the development organization responsible for fulfilling the commitments that they had made and monitored their overall progress in fulfilling those commitments.
What’s Wrong With the Way That Has Worked In the Past?
There are several limitations inherent in that style of project management. The traditional plan-driven approach to project management is optimized around achieving predictability by emphasizing planning and control. For many years, a project was deemed to be successful if it met its cost and schedule goals for a given set of defined requirements. That is how “success” has been defined for a long time. In today’s world:
- Levels of Uncertainty – There’s a much higher level of uncertainty in the world which makes a traditional plan-driven approach to project management very difficult to implement. It’s just not very adaptive to uncertain and rapidly-changing requirements. It typically forces you to make a lot of assumptions to try to resolve the uncertainty; and, many times, those assumptions will be wrong.
- Creativity and Innovation – Competitive pressures create a significant need for creativity and innovation. An overemphasis on planning and control is not very consistent with an environment that is needed for optimizing creativity and innovation. Breaking down a lot of overhead and creating empowered, self-organizing teams that are in direct contact with the business users creates an environment that is much better suited for creativity and innovation.
- Need for Efficiency – Efficiency is also very important. There is a lot of overhead in a traditional plan-driven approach to project management and there is not much emphasis on efficiency. As long as the project was completed on time and under budget, no one typically looked very hard to see if there might have been a more efficient way of accomplishing that result.
What’s the Solution?
A much more integrated approach is needed where the project management functions are much more integrated with the development process:
- From an Agile perspective, Agile should be treated as more than just a development process. It should incorporate some level of project management into the process even though it may not be provided by someone called a Project Manager”. In theory, the Product Owner in an Agile/Scrum environment should be providing that direction but the truth is that many Product Owners are not well-trained in the project management skills needed to perform that function
- From a project management perspective, we need to recognize that:
- There is not just one way to do project management and project management is not limited to traditional plan-driven project management
- Project management is not necessarily always done by someone called a “Project Manager”. It is a discipline that can be performed by anyone with the appropriate skills and sometimes it makes sense to distribute the project management functions to more than one person
How Do You Go About Implementing That?
How do you go about implementing this process that integrates some level of project management with development?
- For the typical small, single team Agile project, there probably is not a need for a “project manager”, but the individuals on the team need to recognize the need for effective Agile Project Management, understand how their roles contribute to that project management function, and should be trained in the skills to perform that role
- In some cases such as Agile contracts that require more emphasis on project management, a hybrid Agile process may be needed to put an even stronger emphasis on project management. In those situations, a formal project management role might be needed or that role might be absorbed into one of the other Agile/Scrum roles such as the Scrum Master or Product Owner
- In larger and more complex enterprise-level projects, there may be an even stronger need for someone to provide overall project/program management
Many people in an Agile/Scrum environment (including the Scrum Master and the Product Owner) are typically only trained in the “mechanics” of how to do Scrum and don’t necessarily see the big picture of how their roles contribute to an Agile Project Management approach. “Project Management” is seen as something that is only done by “Project Managers” and is inconsistent with an Agile development process. We need to recognize that effective project management is essential in an Agile process even though it may or may not involve a dedicated Project Manager to perform those functions.
You can find related articles on the topic of “Understanding Agile” here:
You will find much more detail on this in my Online Agile Project Management Training.