There are rare occasions when you have to choose between staying on schedule or reworking the plan to accommodate an unexpected, significant stroke of luck. When good fortune falls from the sky, don't dodge it just because of the extra work or because it will derail your deployment plans. That would be as smart as throwing away a winning lottery ticket because it's cluttering up the counter.
This lesson was best brought home to me during my IT management days. My team was about a third of the way through a big project when our key vendor completely revamped its product line. When that vendor asked us for a meeting, we were sure we'd be squeezed for a costly, mandatory upgrade. Instead, the vendor so favoured us (money does buy love) that it offered to upgrade our hardware and software for free. The new products obviated the need for many designed-in compromises and work-arounds. After taking a hard look at the costs - all in time and effort - and benefits, I decided we'd sketch out a fresh design that embraced the vendor's generosity.
The developers were livid. Inventing the work-arounds looked to them like the most enjoyable part of the project. We also ended up nuking several purchases in the pipeline, which were now unnecessary because of the gifted new products. We spent more time assuaging angry suppliers and coders than we did arranging the upgrades.
Even in retrospect, I recall the pain vividly. Yet I would make the same decision now. The new solution was much more responsive, scalable and serviceable than the initial design; so much so that the incremental scale-ups we planned were never needed.
I am now in the midst of a similarly challenging upgrade from a Windows-based network to one based entirely on Apple hardware and software. In recent months, some key Apple server technology has been announced, and many hardware products have shipped. The second generation Xserve and Xserve RAID had me considering doing some backtracking to work them in. The clincher was the feature set of the next release of OS X, dubbed Panther.
Apple's enhancements nudge out my customisations and eliminate the need for hardware I figured was nailed down. I'm delighted that I can standardise on Apple's shrink-wrapped implementation, but I have a lot of wiring - real and figurative - to rip out. Honestly, I don't look forward to that. Apple has expended great effort toward making such changes easier, but no reworking on this scale can be reduced to plug and play.
I decided to use my time spent waiting for Panther to reconstruct my original server stack to incorporate Xserve RAID and the Xserve Cluster Node. Just plugging it together and running my hacked-up software provided results so dramatic that all of my doubts about the worth of the redesign were wiped out. If my original design hums, this new stack will sing in four-part harmony.
Viewed from a short-term perspective, I am making more work for myself. I'd be justified if I decided that my design is frozen and change would be disruptive. I know this change will have its own fallout and impose periods of rough going. But I also know from experience that it's worth a 10 cents of hardship to reap a dollar's worth of return.