- 1st reason – Do you know your process?
- 2nd reason – Too manual process!
- 3rd reason – Decentralize IT
- 4th reason – IT Silos
- 5th reason – Analysis Paralysis
Building single purpose machines or solutions are very common in IT shops that have been providing solutions to their customers for more than 10 years, but you can find the same approach in younger IT shops as well.
From my point of view single purpose machines or IT solutions are solutions that were built with a mindset of supporting the known or requested customer needs, but without taking into account the overall customer needs and the ecosystem that the new solution has to work within.
No doubt that building a single purpose system is easy and it takes less time to provide a solution that will support current business needs. But, we shouldn’t forget that the majority of a systems lifetime is maintenance mode (where IT is required to conterminously add new features to support new requirements). Systems maintenance emphasizes this issue with single purpose solution. Any requested change might end up with significant additional changes to the current system, which ends up with a patch on top of the original system or even having to rewrite a new solution.
From an IT point of view both patching and rewriting new solutions (that will exist side by side with the current solution) is far away from being efficient or decreasing IT costs. Patching creates more complex solutions to support and rewriting contradicts reuse.
Any solution path that you’ll decide to follow (patch or rewrite) will end up with a solution that will be much more expensive to manage, eventually making you wish you rather invested more time in creating multipurpose machines/solutions from the beginning. If you’ll follow componentization as a principle and you’ll make sure that your solutions are built from lower denominator reusable components, you won’t need to spend so much time on maintenance. Although the argument sounds simple, yet I see examples to the contrary almost on a daily basis.