November 28, 2011

The Glue That Holds It Together

Used to be, when you hired a contractor to write some software for your company, you handed over the specs to some guy who worked out of his parents’ basement (or a bunch of guys in a country you’d never been to). After a while, usually a longer while than you’d been led to expect, you’d get a piece of software. Sometimes it worked, sometimes not. Sometimes it worked right up until your check cleared. Sometimes the contractor would help with maintenance, and maybe even the next version, sometimes not.

Or you hired a big consulting firm, who studied your business and your market, made some predictions about the future, and over several months and meetings worked to get the specs right.  Then more months and meetings to create a beta version.  Then more months and meetings to revise the beta. Two or three years (and lots of dollars) down the road you got software that was a year or two too late.

We gotta say, there is a better way.

We think every software development project deserves to have a champion, someone who will sit down and look at the cost and time ramifications of your decisions, our decisions, the whole decision process. We call this champion a Program Director. Rather than get snagged by short-term pressure and near-term worrying, Program Directors can zoom out, see the long view, and ask, “What would happen if we did A in this iteration but saved B for the next iteration?” In other words, pausing long enough to determine the best way forward.

Working with “far-located” teams – as we do in the globally-sourced world of software engineering – there needs to be a hub, a central person holding everything together. Program Directors become the “glue” that binds all the far-flung elements working on a project into a cohesive whole.

Like so many things in business, you may not always see the need for that extra managerial layer when everything is working smoothly. Program Directors may appear to be doing little more than taking notes and sending emails about what’s already happening. But the minute you need something that you didn’t realize you needed — a new upgrade you weren’t expecting or a new platform that you hadn’t planned for — those are the moments when a Program Director advocating for your needs to the programmers becomes an invaluable asset.

Likewise when something fails. When you need to figure out why it failed, it is invaluable to have somebody who wasn’t on either “side”. Then your Program Director can be the referee or — better yet — an ombudsman. Can you get the job without that ombudsman? Sometimes, yes, but sometimes you really can’t. And usually what’s at stake far exceeds the cost of having an ombudsman. On a lot of projects he or she simply coordinates the flow of information. But on every project, as we all know, there’s what you plan and there’s what happens.