One of the worst common adages we have all heard is, “If it ain’t broke, don’t fix it.” It’s hard to say where this would apply. Does it mean, don’t change the oil in your car until the engine seizes up? Don’t replace the bearings on a machine, even though they are squeaking, until they have welded to the shaft? In fact, it is really hard to come up with a good example where such false logic makes any sense. However, it is very common to see examples in practice, particularly when it comes to keeping software up to date. I have been involved with software systems from both a buyer’s and seller’s perspective over my career, witnessing the full range of thinking on this topic.
At the one extreme, some companies wait until every hardware and software component is so out of date that they might as well be working with typewriters and drawing with pencils. In those cases, work often comes to a complete stop when one of the weak links fails altogether. This can be catastrophic when production is dependent on output or stored data that has just become inaccessible. Or work may have slowed to such a crawl that even overtime and extra workers can no longer keep up with demand. That is when software vendors get the urgent calls, from workers in a state of panic, who are trying to keep things patched together because the boss has seen no value in upgrades over the years. And the cost of repair at that point is excessive.
At the other end of the spectrum are those companies that understand that their technology infrastructure is just as critical as the machinery on the factory floor. Those companies maintain everything they purchase, because they see the importance of keeping all of their investments in top working order. Sometimes that means maintenance and upgrades, whereas other times replacement with a newer model is the best way to stay current.
Then in the middle we find many companies that fully embrace that thinking when it comes to machinery, but apply a completely different set of logic to their software. That category understands the value in keeping up with the best machine technology, upgrading for higher output or better quality, while their software systems fall further behind. That group often wakes up one day, realizing that higher output in the factory has become constrained by low output in the office where the processing actually begins.
Lean thinking employs another adage, “If it ain’t broke, break it.” Which translates into always looking for improvement.