Tuesday, December 11, 2012

In The Land of Development, Process Is King

Today at work I played a truly Machiavellian game in order to get some forward movement on a portion of the project.  We have one portion of the project where three different teams are working on an integration - the Evil Corporation and two vendors.  This is a part of the project that ran into schedule delays due to poor planning and feeling were high and hostile by the time I got involved.

In order to make the integration work, it was necessary to get down into the nitty-gritty details and line out each individual data element - however, because of the delay and the fact that all three sides were pointing fingers at each other I could not get them to do the detail work.  Each group was playing highly defensively, waiting for the other groups to make a move, so they could dodge any blame.

After several fruitless meetings last week where we struggled to get even the most basic questions answered I spent the weekend reading a massive chain of email trying to figure out how to break through through the logjam. The answer was in the changing tone of the emails.  As they progressed through time I could see the tone changing to more accusatory, more defensive, less productive,  until the reached the point where I had been brought in, which was the point of near total meltdown.  Everyone was waiting for someone else to go first, so that if something went wrong they could point a finger at someone else.

So, I over-reached my authority and went first - I wrote up a set of requirements and announced - this is what we are going to do, this is the condition the data is going to be in, this is the place we are going to send the data. You all need to be ready to pick it up when it gets there.  Then, I spelled out, in some detail, what I was planning to do. 

Of course, it was wrong, largely because I was making it up out of whole cloth - but one of the vendor rose to the bait and said "that's not right", which opened up the door for me to simply say "tell me exactly where it is wrong, and what change needs to be made to make it right".  They tried to dance, but I just drew back to my original proposal and said "absent detailed input, I am making a best guess and doing it this way, and I have no problem documenting it as a best guess in the lieu of more detailed information" - and that was enough to prompt, first, the two vendors to talk to each other, then the whole team to get talking.  When I left tonight, I have two thirds buy in and one third outstanding.

It was pretty Machiavellian, but it was the only thing I could think of to break through the positions that everyone had hunkered down in. Sometimes a stalking horse serves a good as well as a real horse.  Of course, none of this would have been necessary if we'd actually followed any sort of good engineering process from the beginning.  What appears to have bitten them on this end of the project was that no one wanted to do the grunt work - and everyone preferred to assume that someone else was doing it, so there were no detailed documented system requirements.

When it comes to software development, process is king.

No comments: