Monday, April 30, 2007

A Win is a Win

A win is a win is a close cousin to the win–win outcome. Recently at my place of work (which I cannot publicly identify here – suffice it to say its corporate America / Fortune 100) I had to compromise in order to achieve the high level goal and objectives; but not via the implementation originally planned. Just thought I would share this experience since it served as a profound reminder to me on the importance of meeting the goal/objective and not being too close to the implementation details. This is something I am personally struggling with lately as I find myself envisioning more and implementing less.

In this particular case it was around a code generator we have written to generate all the store procedures and data access code for .NET applications. For a number of reasons we ended up with two implementations that from a high level did the same thing. Each had features the other did not have. Since I am on the Architectural team I was really driving my implementation since it address more of the shared scenarios needed by the developers. The problem was that who was going to maintain this implementation? I could not, I have other fish to fry and need this initiative to be owned more by those who will be using it. It became apparent to me that this was just not going to happen; the reasons range from the “not grown here” mentality of developers to the general lack of understanding of what the tool did.

So in order to evolve the tool and to enable it to evolve; I had to make the hard decision to use the other code base. This was more of an ego thing than anything else. So once I was able to get over that the move was absolutely perfect. We are now going to have one of our top developers working on this key part of our development tools and I will be providing some high level guidance.

The reason this is not a win-win; even though it may seem so up until this point…We spent a bunch of money working on both of these tools. Most of the work on each tool was done by consultants; one who is very expensive and the other who is moderately expensive. Now I struggle with the age old problem of what happens when the consultant leaves or we decide we can't afford him anymore; which has already happened to one of the consultants.