Deliver Software, Not the Plan

I attended the Rally webinar about Keys to Successful Release Planning and heard a great comment from the presenter:

“Focus on delivering software, not the plan.”

Think about that for a minute, it’s ok, I’ll wait.

<insert jeopardy music here>

One of the myths of Agile is  that Agile teams don’t plan.  Agile teams focus on ‘planning‘, not ‘the plan‘, there’s a difference.  Let’s face it, the software development industry moves quickly and for the lack of a better phrase it would just be completely nuts to plan out exactly what we will deliver for all of next year.  Sure we’ll have a loose plan for what we want to deliver based on what the company strategy is, but are we going to follow that plan into the ground or adjust to new information?  Remember, the Manifesto says we value responding to change over following a plan.

So what’s good about a plan? Everybody loves a plan.  Plans are what keep people accountable, plans are what make us comfortable, plans help us feel secure.  Once you have a plan, you have set expectations.

So what’s not-so-good about a plan? Once you have a plan, change is difficult due to the perceived chaos change introduces.  Once expectations are set, traditionally changes aren’t effectively communicated to all those who should know about it.  Plans can be used to place blame when things don’t go according to the plan.

At the end of the day we are delivering software, not a plan.  In the end when plans change and chaos ensues, the issue isn’t the plan, it’s communication.

Case in point, in our iteration 6 demo one of our stakeholders asked “I thought you were doing XYZ?”  Was it the stakeholders fault?  Nope.  Was it the outdated roadmap the entire company was looking at?  Nope, ok, maybe partially.   It was a communication problem.

We had failed to effectively communicate to all of our stakeholders the change to the plan.  Sure this change happened 3 months ago and sure this particular stakeholder hadn’t come to any previous demo but once this stakeholder had the plan in his hands 3 months ago,  his expectation was come hell or high water, we will deliver the plan.

This creates a vicious cycle, especially in organizations that lack trust.  If the team doesn’t deliver the plan, the business instinctively responds with more process and more control.  Obviously the team can’t be trusted if they can’t deliver on this simple plan we agreed to right?  People, especially teams, become deflated, morale sinks and people co-operate less for the fear of the ramifications of the decision to change the plan.   Another nasty side-effect is the battles about scope-creep.  We become so focused on arguing about what’s in-scope and what’s out-of-scope we lose sight of the fact we’re delivering software.

So how do we get out of this oscillating cycle?  First of all, communicate better.  Help the business, or folks having difficulties adjusting to Agile, understand why Agile teams plan the way they do.  Listen to their concerns about why they want a committed roadmap for the next 3 years.  People are often resistant to change but it’s important to not confuse their response with resistance.  There is always an underlying reason for why people respond the way they do, keep the communication open and move forward.  Of course you won’t always agree, but listening to others concerns is a great place to start.