There’s a point in every software project where you take that first step into the “Oh crap!” zone. As a coder, you’ve worked out how you’re going to layer and abstract your modules, the naming conventions and project folder layouts are perfect, and you’re coding away in earnest with a big ‘ole smile on your face. You think, finally, a project that will be easy to maintain and extend!
Aren’t you cute.
Then that big gotcha comes along that you need to shoehorn in to your masterpiece. Some customer-driven “why the heck would they want to do that!?” enhancement, some third party software package you need to interface with, a new last minute “gotta have” from your marketing department.
When I was looking out from my hotel room in New Orleans recently, all I could think of was the architect who designed the Sheraton and how that bank of windows in the upper floors came to be. Was this part of the original design or some last minute executive request… “We need a big conference room on the 30th floor!”?
I guess we software developers aren’t unique in having to “make do” sometimes, and need to be flexible enough to accommodate change and unknowns that suddenly become known. And we can hope that our original “perfect” design, while dinged up a bit here and there, will help make those changes possible.
This came across by Facebook feed a few days ago…
“Much of the pain in life comes from having a life plan that you’ve fallen in love with, and when it doesn’t work out, you become angry that you now have to pursue a new life plan. If you want to tame your inner demons, you must not become too attached to any particular life plan, and remain open to there being an even better happier life plan.”
I’d still love to know what that room is high up in the New Orleans Sheraton… and whose idea it was.