Posted on February 14, 2015
On Ignoring Crazy Software Engineers
Let’s say you see a guy standing on the corner holding a sign that says, “W, X and Y are here! Z is coming!” Most of us would look away quickly for fear of accidentally catching the crazy guy’s eye. A few of us would smile compassionately, with just a hint of pity. Some would perhaps offer a few dollars so the guy could get a bite to eat for supper.
As a software engineer, I often feel like upper management treats nearly everything I say as if I were holding a sign on the corner. I can describe a situation that I see bearing down on all of us at the company in as much eloquence as I can muster, I can back it with statistics and facts, and still they do their best to avoid looking at me. When they finally do force themselves to look at me, it’s with a hint of pity.
They think I don’t live in the same world they do. Oh, in all fairness, they’re right. My focus must be on the enterprise system backing the business, centering on keeping the system humming along and performing occasional dark ceremonies to ensure it continues humming happily. Their focus is on the business itself, which often centers around juggling cash-flows and playing wizardry with resource management.
I look at that guage pushing into the yellow towards the redline and say, “We’re all out of chickens to sacrifice and it’s going to be a full moon soon. We need to rework that component before it blows up.” Management hears, “I like chickens and might even be a lycanthropic were-chicken myself, and I want spend money and stop new development to rework that component.”
And so it goes; the component, it blows. I and my team work night and day to contain the damage, to get everything back under control, to duct-tape the system enough for it to hum a timid tune again. And through it all, management screams and issues panicked edicts: “We need better monitoring! We need a warning system telling us before this thing blows up! We need to build the system in such a way that it doesn’t blow up when it blows up!”
Then, when the engineering team finally gets things under control, the managers all grab their pitchforks and torches and embark on a good old fashioned post-mortem witch hunt so they can find somebody to blame. They say things like, “We’re not pointing fingers here, we just want to find out how we can avoid letting this happen again in the future,” while they point their fingers and conduct their inquisition of all the engineers making them recount repeatedly every moment leading up to the incident.
It doesn’t matter how big or small the company. It doesn’t matter if management is comprised of ex-engineers who have been on the pointy end of this stick themselves. The industry doesn’t matter. The architecture and technologies involved don’t matter. It doesn’t even matter if I speak softly but carry a big stick.
But I can’t not call out warnings when I see problems heading our way. That would be both irresponsible and completely contrary to my nature; and besides, I always have hope that this time will be different, that this time somebody will listen to me before the crisis hits, that this time unicorn farts and rainbows will flood the world and we’ll all clasp hands and sing, “Happy Happy Joy Joy,” in four part harmony. And so I stand on the corner holding up my sign warning of a possible future system failure.