When organizing large programs, don’t be incoherent
“Chunking” super-size efforts down into multi-project initiatives and mult-initiative programs gives you a fighting chance of completing things, but only if you avoid the pitfalls.
Surely the stupidest of all the commentary about Healthcare.gov is the oft-repeated, “The Obama administration can’t even put up a website.”
Or maybe it’s ignorant, not stupid, because calling it “a website” is a lot like calling the Curiosity Mars rover “a car.” Also, the website part — the user interface — generally receives compliments from those who have looked at it closely. Of all the criticisms of Healthcare.gov, this is probably the only one that is completely wrong.
Healthcare.gov is IT in the headlines … irresistible to Recognized Industry Pundits (RIPs) like yours truly. But instead of participating in this version of “dog pile on the rabbit,” here are some thoughts you might be able to actually use.
Start here: There’s a scale hierarchy when it comes to programming efforts. Ignoring enhancements — efforts one programmer can handle in a month or less — the smallest are projects, which require a team, multiple tasks, and a plan.
For some organizations, that’s it. Enhancements and projects. But smart ones recognize that projects fail, and they fail in non-linear proportion to their size. Once you get beyond about seven core team members and about six months, failure rates skyrocket.
That’s why smart organizations “chunk” larger efforts into multi-project initiatives, and chunk behemoth efforts into multi-initiative programs. Whatever else happens, the individual projects will at least complete, delivering their planned work products as they do.
“Chunking” also helps prevent phase compression. As mentioned last week, there’s a tradition in project milestone management: If an early phase goes long, it’s always because the additional time and effort will allow later phases to be shorter.
That’s the rationalization. The way it actually works is that if the early phase went long, the whole effort is probably bigger than it looked at first. But as saying so is political suicide, the project team assumes subsequent phases will be shorter instead.
With every late milestone, though, the time compression between remaining milestones increases until there’s almost no time left for the final two phases, which are, of course, testing and training.
But if instead of phases you have separate projects, phase compression is less likely. The project manager probably won’t even be responsible for the subsequent projects. Even if he or she is, the subsequent projects haven’t been planned yet. When they are, their project managers have at least a fighting chance of developing reasonable timelines for them.
Sounds like a panacea, doesn’t it? It might sound like one, but it isn’t one. By separating what used to be phases into separate projects, you gain in reliable delivery, but you risk losing coherence. This happens with initiatives complex enough to have multiple concurrent projects going on, and happens in spades with multi-initiative programs.
Among the many coherence problems large programs face, three that stand out are (see this week’s ManagementSpeak for the translation):
First project wins: Large programs that include large-scale software development require standardization on several fronts, from user-interface style through matters of architecture and software engineering. If individual project teams make these decisions on demand, each will be optimized for the project that made it, not for the program as a whole.
Large programs need someone to be responsible for applying the whole-program perspective to these decisions.
Scheduling: This is pretty basic. Projects compete for resources. Not just staff (if it’s just staff, say so — don’t call people “resources”) but minor things like test environments and business department time and attention for whatever you need their time and attention for. Also, some projects depend on the results of other projects from time to time; if the other projects are late, their delays can ripple through the whole program.
With one big project, all tasks are plotted on a single schedule, so interdependencies can be made explicit, letting the project manager at least manage the chaos, even if there’s no way to prevent it.
But with multiple concurrent projects, a whole different kind of coordination is required so projects don’t run into each other, because there are more different kinds of inter-project dependency than just finish-to-start and its brethren.
Silo-ization: What, you thought large programs were different from any other large organization? They’re just as prone to devolving into rival siloes, based perhaps on which initiative you’re part of, or whether you’re process or tech, or whatever. Preventing silo formation in programs is the same as anywhere else, too: You foster a global sense of identity, and define a collaborative culture.
And, of course, privately “coach” the guilty.