I’m a big fan of SpaceX, and one of Elon Musk’s key strategy is to make rockets reusable. It doesn’t make sense to throw an entire rocket in the bin everytime you use it and start all over again. You don’t need to be a rocket scientist to realise that this is an expensive way to do business!
I’m thinking upon the same lines for developing software. Reusability of software components, rather than re-writing them each and every time is key to driving down business costs and bringing about speed to market for delivery. Incremental improvements can be made to components over time.
This is not a new concept and in my previous experience, there was a huge push to break down big monolithic systems thinking into more service-oriented architectures. This involves building out more microservices and programmable interfaces that are not tightly coupled to one another. Building this kind of architecture enables business changes to be made to one component without a tremendous flow on effect to all the other parts. Services can be reused over and over again for multiple different business applications, and small incremental and frequent changes rule in these architectures.
And naturally logic would dictate that it would be cheaper to develop these systems rather than continually “reinventing the wheel” (so to speak).
Now I have a biased towards software development, but I think this same concept could be used in many more contexts by different kinds of businesses. What do you think?