I think a lot of people are confused about “What is ‘Agile'” and the importance of Agile to project managers.
- The word “Agile” has many different connotations
- Many project managers think that it is something that only applies to software development and doesn’t apply to them at all.
Here’s an article with more detail on “What is Agile?”:
Different Meanings of “Agile”
“Agile” means a lot of different things to different people. To some people:
- It means just developing software faster,
- It means creating a more people-oriented project environment,
- To others, it means making the project management process a lot more efficient by streamlining the whole process and eliminating unnecessary documentation
Those are only a few different connotations – there are many, many more. There are also many more stereotypes, myths, and misconceptions about what Agile is. All of those things are potential outcomes of an Agile process but that’s not the fundamental essence of what an Agile process is all about in my opinion. The fundamental essence of an Agile process is adaptivity.
What’s Wrong With the Typical Project Management Approach?
Many project management processes, as we know them today, were designed around what is called a “traditional plan-driven project management” model (what many people loosely call “Waterfall“).
- In this model, achieving predictability over the outcome of a project and the costs and schedule associated with achieving that outcome is very important
- Therefore, it is also very important to have clearly-defined requirements as well as an adequate level of planning to be able to somewhat accurately predict the outcome, costs, and schedule of the project
That’s the predominant way that project management has worked since the 1950’s and 1960’s. A project was considered successful if it delivered what the requirements for the project within the defined budget and schedule. That kind of predictability can be important – for large investments, it allows a company to:
- Attempt to calculate with some level of certainty what the return on their investment is likely to be from a project
- Make a go/no-go decision as to whether the project should be funded or not based on that information.
The primary problem with that approach is that it requires developing a fairly detailed plan for the project upfront. That is very difficult, if not impossible to do in projects with a very high level of uncertainty.
Why Is Adaptivity Important?
We live in a different world today from the world that existed in the 1950’s and 1960’s when formalized project management approaches were first defined. There is a much higher level of uncertainty:
- Technology is rapidly changing,
- Solutions are much more complex, and
- The business environment that we operate in is dynamic and constantly changing.
In that kind of environment, developing a detailed plan for a project with a lot of uncertainty upfront will typically require you to make a lot of assumptions. And, many times those assumptions will be wrong, and may require significant re-planning and possible rework later.
Rather than force-fitting a project that has a high level of uncertainty to a traditional plan-driven approach; it’s much better to fit the methodology to the nature of the project and that’s where a more adaptive approach really makes sense. It doesn’t mean that you don’t do any upfront planning; it means that you use a level of planning that is appropriate to the level of uncertainty in the project:
|Traditional Plan-driven Approach||Adaptive (Agile) Approach|
|Atempt to develop a detailed set of requirements and a detailed project plan for the project upfront||Limit the amount of upfront planning based on the level of uncertainty in the project and use a “rolling-wave” planning approach to further define the requirements and plan for the project as the project is in place|
What’s an Example of a Project Requiring an Adaptive Approach?
I use an example in my Agile Project Management training that is a somewhat extreme but it gets the point across. The example I use is:
- Suppose you were given the task to find a cure for cancer and you were asked to outline what the solution will be, how long it will take to develop it, and what the total cost of the research will be to develop the solution.
- In that situation, it would be ridiculous to attempt to develop a detailed project plan with accurate cost and schedule estimates – there is just way too many uncertainties to resolve. So what would you do? Give up and do nothing? That doesn’t make sense either.
It’s important to recognize that we do know some things about finding a cure for cancer based on years of research that have gone into that area. However, there are still way too many unknowns to develop a detailed project plan for a solution. What you would do is take advantage of what is known as much as possible and then take an iterative, trial-and-error approach to find a solution. That’s the way Edison invented the light bulb…here’s a quote from Edison on that subject:
“I speak without exaggeration when I say that I have constructed three thousand different theories in connection with the electric light, each one of them reasonable and apparently to be true. Yet only in two cases did my experiments prove the truth of my theory. My chief difficulty, as perhaps you know, was in constructing the carbon filament, the incandescence of which is the source of the light.”
(1890 Interview in Harper’s Magazine)
In a 1910 autobiography of Edison, Edison’s friend and associate Walter S. Mallory is quoted as asking
“Isn’t it a shame that with the tremendous amount of work you have done you haven’t been able to get any results?” The book goes on to say that “
Edison turned on him like a flash, and with a smile replied:
“Results! Why, man, I have gotten lots of results! I know several thousand things that won’t work!”
What Makes This Kind of Project Different?
There are two things that make this kind of project fundamentally different:
- The level of uncertainty is very high and makes it impractical or impossible to develop a detailed plan for the project upfront
- Creativity and innovation required for finding a good solution are far more important than predictability
How Does an Agile Approach Solve This Problem?
An Agile process is built on an “Empirical” Process Control model. The word “empirical” means “based on observation”. In the context of an Agile development process, “Empirical” means that during the course of a project, both the product as well as the process to produce the product are continuously refined as the project is in progress. The goal is to produce the right product and to optimize the value of the product being produced.
Why Is This Important to Project Managers?
You might ask “Why is this important to project managers?” Isn’t Agile something that only applies to software development? (That’s a common misconception) The truth is that all projects have some level of uncertainty associated with them. If you try to force-fit all projects to a traditional plan-driven project management approach, its just not going to work in many cases. Imagine, for example, trying to develop the next generation of the iPhone or any other new and innovative product. In that kind of project, creativity and innovation is just as important, if not more important, than predictability.
In this new environment, a project manager who only knows how to do a traditional plan-driven approach to project management will be at a serious disadvantage. What makes this even more difficult is that:
- That this is not a binary and mutually-exclusive choice between “Agile” and “Waterfall” as many people seem to think.
- It’s a matter of figuring out how to blend a traditional plan-driven approach with an adaptive (Agile) approach in the right proportions to fit a given situation.
You will find much more detail on this in my Online Agile Project Management Training.