Wednesday, November 17, 2010

Another dimension to code ownership

I promoted a bit of someone else's code to the live server late this afternoon, just as I'd promoted it to the Beta server earlier in the day. In the run to the Beta server, one of the database inserts blew up, and I promoted things in the wrong order because the promotion instructions were written that way. But that's why there's the "dress rehersal" of Beta, after all.

So after the offending programmer fixed the database insert code and corrected the instructions, going to the live server should have been a snap, no?

Of course not. And the programmer had already left for the day when the promotion blew up halfway in.

But my cellphone knows his cellphone number. So I left a voice mail, then fumed for about forty minutes wondering why he couldn't call back to answer a simple question. Then I saw him heading into the pod. Between us, it might've taken three minutes, tops, to sort it.

In a communal code ownership scheme, another programmer would ultimately be tapped to dive in and debug and ultimately make a judgement call. It might take more than forty minutes; maybe not. I suppose that's a good part of the reason there's no final word on the superiority of either scheme. I just know that it really sucks to be so reliant on one person for a piece of your flagship application. Until, of course, they show up (after hours) and fix it without fumbling around.