I can’t tell you how many times I hear this, and it bugs me to no end. Colin Powell once said, ” ‘If it ain’t broke, don’t fix it’ is the slogan of the complacent, the arrogant or the scared. It’s an excuse for inaction, a call to non-arms”. Alright, so the context for his quote was completely different but let’s not go there. I gotta say I agree with the man in principle. It’s a phrase sometimes thrown around to temporarily sweep something under the rug, or to remain in denial that what’s working now will continue to work indefinitely. So wrong (IMHO)!
If we’d have been happy with walking from A to B, we wouldn’t be biking, driving or flying today. Innovation doesn’t come from standing still and accepting status quo. It comes from having a different perspective on something, from wanting to look beyond the current offering, and from thinking the impossible and going for it!
Okay, let’s apply this in the day-to-day tactical sense. I have seen entire company vision documents and roadmaps drawn up just on the premise that just the current infrastructure will support any additions, extensions, fixes and/or advancements that are being considered. Must we wait for something to break before it gets our attention?And must we necessarily reject advancements or improvements just because we don’t want to rock the boat with something that’s currently working? It’s a fairly short-sighted approach, I say.
The questions we really need to be asking are:
- Why is it working? Are there any corner cases we have overlooked?
- Whom is it working for? Hopefully this will tell us whom this is NOT working for.
- If it really truly is working, then how can we improve it or extend it to other areas?
I’ve seen an example in the past where a company took this exact approach to building a multitude of plug-in’s over a key framework component, without any regard for the strength of that foundation. Over time the code for the framework component got increasingly messy, and, more importantly, the technology had not kept up with the times. Several developers had suggested improvements and fixes, however, those suggestions were quickly sidelined in favor of getting to market quickly with new customer requests and more plug-in’s.
A couple of years later, the cracks started to develop into craters and the performance (and quality) of that core became apparent. Customer complaints started to trickle in and maintenance costs sky-rocketed. The company was now faced with the impossibly daunting task of completely re-writing that core component and all the applications surrounding it. So much water had flown under that bridge!
Huge problem? Yes. Could they have addressed it earlier? Absolutely!
The slogan should really be ‘If it ain’t broke, why ain’t it broke and/or what can we do to improve or extend it’. It doesn’t sound sexy and you’re going to have to sacrifice some features in favor of this kind of introspection. But it’ll hold you in good stead in the long run with an eye towards innovation so you can stay ahead of the curve.