The IT Miracle
I believe you have all experienced a client who asks for the impossible, but despite all odds you some how pull it off. You produced what I call the "IT Miracle".
Depending on your perspective and beliefs, a miracle can have many meanings. So for the sake of this discussion I propose the meaning to be this:
1. an effect or extraordinary event in the software development world that surpasses all known human or natural powers and is ascribed to a supernatural cause.An IT Miracle is simple. The user asks for something you figure can only be accomplished by using a time machine, a magic wand, pixie dust, telepathic communications, more money than the customer has, and a truckload of Staples Easy buttons.
Not only do they ask the impossible, they put up several roadblocks, leave out critical details, respond slowly to questions, accelerate deadlines, and maybe toss in a few extra last minute requirements they got to have or the project will not be deemed a success.
Some of these impossible tasks are driven by business needs, some are necessary to provide competitive advantages, some of them are wild and crazy ideas by pointy-haired-bosses, some are in response to project disasters, some are necessitated to help users who are desperate for help, some are driven by governmental legislation, and the list goes on...
Add in the dependency of others pulling their weight on the project. Maybe it is counting on a project manager to handle all the critical paths, solid specs from the business analysts, developers providing good estimates and finishing up their components on time, DBAs making the data changes on time, testers building the proper and efficient test plans, users performing acceptance testing, tech support folks coming up to speed on all the changes, hardware being delivered on time and in some cases designed/developed/built. Maybe you are in charge of all these aspects, which may or may not be better than having others help you.
Clear communications is always one of the biggest stumbling blocks. Forget one little communication and the whole house of cards can come tumbling down.
Quite frankly, I am amazed the simplest of projects come together. Maybe every project is an IT Miracle.
I just finished working on my latest IT Miracle project. It really was not a whole lot of fun. Usually they are fun. Five conversions from four different database schemas to one common database in three months. This means five different customized conversion source code bases (even the data in the common database schemas were different enough from each other). Lots of code had to be written and had to be perfect to ensure no data was lost. Three of the conversions were from databases we had no prior contact. The last time we did one of these from scratch it took four man months and we were asked to do all five in three months. I told the customer it was going to take an IT Miracle. The client was not open even slightly to any deviation to completing this before September 30th.
The last conversion happened last night despite the odds. Only because key players on the team did what ever was necessary to get the job done. This is the key. Find people who are dedicated to pulling off the impossible and be flexible enough to work around those who are speed bumps along the way. Adrenaline junkies with a a few of these qualities: a sense of humor, excellent coding skills, lots of patience, the ability to skip sleep cycles, willing to pick up the slack from others, ability to communicate clearly, and take the heat of those who call you on the carpet and question your integrity. The few and the proud.
I have been lucky in my career to have surrounded myself with quality developers with these qualities.
The question pestering me today: how many IT Miracles are we allowed in our careers? Reading my earlier conclusion about the possibility all projects are IT Miracles has me thinking I should be praying there is no limit.
Fortunately most of my clients have reasonable expectations. For this I am blessed. I am sure the next IT Miracle project is just over the horizon so I have decided to enjoy the break in between them this time while I work in projects with sane requirements.