I think I’ve been pretty successful in my career. But if I was better at planning, I wouldn’t have achieved half the things I’ve achieved in my career! In fact, I wouldn’t even have started some of them…
In reality, there are some things you can plan, and some things you can’t. The trouble is, in most organisations we’ve come to expect a plan. And to meet it whatever happens. And that’s just not realistic.
Doing detailed planning pre-supposes you know where you want to go and aren’t going to be influenced too much by what happens in the meantime – or at least not without a substantial amount of re-planning. This, at least in my experience, has a tendency to give project managers tunnel vision at times.
Now don’t get me wrong – I’m not suggesting for one moment you embark on a project that doesn’t have a clear and robust vision. And I’m not suggesting for a moment you embark on a project where you have no idea how to achieve it and whether it’s a reasonable (although hopefully challenging) goal with the available resources. And forming that into an outline plan to provide some markers to aim for is certainly a good idea, but ideally it’s a high level roadmap rather than a detailed plan.
Coming from a traditional software development environment, I realise this sounds slightly mad. And I must admit it takes a certain amount of maturity and experience to recognise that you can’t really plan in detail up-front if you want to retain any flexibility, as the real requirements, risks, issues, priorities and opportunities all tend to emerge when you start to build and see the software in action.
Most organisations are not ready to accept such a radical idea – the idea of acknowledging you don’t really know what you want – certainly not for sure – and you don’t really know what you’re going to get for your money, or when. So, as a minimum, a clear vision and outline plan are essential, but be careful to keep them to a high level.
Rather than a detailed plan, I prefer to see a strong vision, a strategy, goals, and a roadmap (high level outline plan). The tactics to achieve this, for example the precise features and all the tasks to deliver them, can vary along the way and are best not articulated up-front. This enables the team to discover the details when they are in a better position to do so, and allows them to change direction rapidly in response to changing circumstances.
This, when you think of it, is the very meaning of agile…
First published on agilesoftwaredevelopment.com