You have all heard the phrase “If it ain’t broke, don’t fix it.”. The implication being that if something is working adequately well, leave it alone.
If this were the case, we’d still be using stone axes and living in caves, as we did for 98% of the past 100,000 years. The reason we have metal axes and houses, electricity and cars and computers and internet is because there were people out there who felt it was broke, and they found new and interesting ways to fix it.
The same applies to business processes and software. Many a client of mine runs an expensive, convoluted and manual labor intensive business. They know it. But the business does run and the work does get done. So to them, it ain’t broke, no need to fix it.
How wrong they are. Business happens in a changing environment. Just because something works today does not mean it will work tomorrow. And when things do change, and the business cannot change with it, the business dies. Buggy whips all over again. The modern equivalent may be the Blackberry.
Given that the environment is changing, and businesses need to be nimble and flexible, if a process aint broke, then why is it not broken? It should be. If the business changes and the process does not, how is it possible that the process is not broken? These are hard questions to answer because the people in the process have no idea things have changed, and their managers, who should know better, either have no idea the strain their people are under or are trying to protect their crumbling faux empires.
The best businesses and processes continuously change and improve. To do so, one has to break the old process to find a new and better one. Look at the recent success of companies like Apple who ruthlessly break and replace their product lines versus Dell who does not, IBM who continuously refine their services and offerings versus HP that is stagnating, UPS going all electronic versus the US Postal Service that is still mired in the 1800’s.
In each case they took processes that were perceived to be working, and broke them. And they made better products, better services and had better success.
So when it comes to creating new software, or updating existing software, start by breaking it. Ask why a step is needed in a process, a function is needed in a script, a module needed in an architecture. Use the opportunity to not only refactor, but to create new and better and more flexible ways of doing things. Take the changing business environment into account and apply these business changes to the process.
Stone axes take a long time to make and can only be used a few times before the stone shatters. Metal axes are easier to make and last for years. I can’t wait for monofilament axes or light saber axes.
If it ain’t broke, break it.