Successfully seeing what needs to be done often starts with understanding what you don’t know, so you can focus on where to learn. This process is hard because it starts with identifying assumptions (what you assume is true, but don’t actually know).

Until I discovered Agile, I didn’t realize how much confidence and assumptions are built into traditional project management.  As I looked at what we were doing I realized we were assuming:

When you start with these assumptions, waterfall makes perfect sense.  Ask the customer what they need, get sign off on an approach, and lay out a plan. That may work for building a bridge.  After all, this isn’t the first bridge anyone has ever built. We can ask questions about who will cross it and how much weight it needs to handle.  It makes sense we would take this approach, traditional project management owes its roots to large, complicated construction projects where something similar has been done before.

However, this approach doesn’t work as well on complex problems – ones where we may not know what the problem is, much less the right solution.  In Team of Teams, McChrystal explains the difference between complicated and complex.  An engine is complicated.  There are a lot of moving parts, but they are predictable.  A soccer game on the other hand is complex.  There are rules to the game, but once the first kick occurs, there is no way to predict where the ball or any player will be at any moment of the game. 

A first step in successful project management is understanding what kinds of a problem we are solving. Is it complicated or complex?  To provide an example, for many of our business problems:

Those truths are a little disheartening.  It’s so much easier to look at a project plan that tells us exactly what the solution is, what needs done to create it, and how long it will take (right down to 4 months from now at 1:00 on Thursday, Sarah will be testing for 2 hours).  That warm fuzzy quickly disappears as the project turns out to be more difficult than estimated, and when delivered, we find out we didn’t even know what the problem was (if we bother to ask the customer how well it worked at all). 

Agilists refer to this approach of delivering a polished product before anyone tests it as slow learning. The good news is Agile principles have some simple solutions to help find the solution faster:

Feeling like you know everything is definitely more comfortable, but understanding what you don’t know is far more effective.  Once you let go of knowing, you can focus on finding and fixing the real problem, which means spending a lot less time and money delivering the wrong solutions.