I teach a lot of project and program managers in my business. And I’ve been there, done that — I’ve ran a lot of projects and programs. One of the things that fascinates me most is the difference between theory and practice.
In theory, you have this value structure from the organization — what’s important to it, what the plans are for next year, what fires need to be put out. In theory you simply define and prioritize these things, create and allocate a strategy, and end up with a list, matrix, GANTT chart, or something similar that gives you the next things to do. In theory, by having a value tree and using SWOT and a bunch of other stuff, like QFT, you end up with the next chunk of work for the next time frame. In theory it’s even better than that, because by comparing your structure with your results, you can create metrics that show when you’re not doing what you want to do.
In practice I have yet to see this work from top-to-bottom in anything but the minds of the creators. This doesn’t mean I consider these things valueless — far from it. A lightweight, cyclical system of work prioritization, allocation, and measurement is absolutely necessary for large organizations to survive.
But in practice, things get messy quickly.
In practice, you have multiple competing priorities that block one another yet each must be done first. In practice, you don’t have enough time to put out the last fire before the next one pops up. In practice, department X wants you to do things one way while department Y requires an exactly opposite way. In practice, you have no support and you’re on your own. In practice, the business can’t make the decisions required of it in a timely fashion. In practice, Congresspeople ring up any time they like and it’s a fire drill until they are made happy. In practice, you have no idea what the market will like and you’re lucky to have some idea of how the next week is going to play out.
Practice is much different than theory.
It used to be the answer was simple — blame the practitioners! And still see this from people from all corners of the development world. I had a TDD proponent tell me last month that the reason developers weren’t adopting TDD was that they were lazy. A friend that creates process models for organizations confided that things would be a lot better “if management would just crack down on those knuckleheads”
I’m not saying that everybody is perfect, and sometimes “cracking down” or “bucking up” or whatever is exactly what’s called for. Sometimes, of course, it’s not. But what I AM saying is that a good set of measurements to take is the perceived problems the teams are having with getting their jobs done. Perhaps by looking at the things that are preventing the teams from getting what they want, you can get what you want too.
It’s good for me. It’s good for you. It’s not the dawning of the Age of Aquarius, and we all don’t have to start singing Kumbaya and wearing tie-dyed shirts , but it’s at least a few steps forward in having a productive conversation about what to fix.
Sounds great but very nebulous, Daniel. What’s it actually look like?
If you've read this far and you're interested in Agile, you should take my No-frills Agile Tune-up Email Course, and follow me on Twitter