Apr 19th, 2021
'Stuff' Clientek Says
Part 3: What We Do Here Is Plan
  Written by: Craig Vosper, Chief Delivery Officer
People seem to hate the word “plan”. In the past we’ve had developers complain, “if you didn’t make us plan so much, we could actually be working” or customers say, “we told you the requirements, so why are we wasting all this time planning?”. Misguided agile proponents will even make claims that planning should only be part of a “waterfall” approach – that we should not be doing it at all. From our experience however, they could not be more wrong.
For us, planning is the primary role of our Delivery and Technical Leads. It truly is what they do. Not only that; it is also the primary value we provide to our customers. Without planning we would have no idea what we should be doing or why we should be doing it.
True planning improves delivery speeds, increases quality, and provides more predictable results. So, how does one get all those benefits from planning? I’m glad you asked.
First: You must define your goals and what you intend to achieve with the work you are about to do. Without this, all other planning is misguided. This activity is required for good prioritization and will later assist with decomposition – identifying what will make the most impact and ultimately allow you to deliver on your goals.
Second: Ensure your approach is well-defined and understood. For this, we rely on two tactics. The first is to compare different approaches. This requires you to define multiple approaches clearly enough to make a claim on whether they will meet your goals and what they will cost to build (the classic ROI comparison). The second tactic is to focus on how to build the smallest feature possible while making an impact on ANY of your goals. This way you have something small that you can execute quickly.
Third: Lay out your approach into a release plan. This provides a clear understanding of what is expected to be done and when. You will also need to identify any known dependencies and take note of everything that will be required to meet these outlined dates/times.
Fourth: Manage change. Lots of organizations do some form of these first three, but what very few do well is manage change and how it impacts all the other aspects of the plan. We had a saying in the army: “No plan survives first contact.” This is also true in software development. We will learn things as soon as we start work that will impact our plan. Managing change means that you are constantly:
- Reviewing the priorities of the work against your objectives
- Reviewing the approach and scope of the work and updating the release plan to reflect them, including dependencies.
- Demonstrating progress to your customers to ensure that you are building something that they can use.
Planning like this means that you are always planning. The key is to focus on planning only what is needed and then delivering it. This gives you the ability to adjust as you learn. For those agile folks who hate to plan… I hate to say it, but the agile frameworks are really just a framework for planning!