Reuse, Interoperability, and Compose
Rambling Thoughts of Restless Mind
Software Engineering meets Automobile Engineering - Concepts, Analogies, and relating both. The old is new again. My intent here is to provoke thought and get us thinking…
Today, in middle tier software engineering we talk about implementing concepts like SOA, web services, APIs, composable and reusable components. These are not new concepts in auto engineering & manufacturing nor are they new in hardware side of computer engineering & manufacturing. If we harken back to the 50s, 60s, and 70s, we will recall US made cars where engine parts were interchangeable and many parts were reusable. One could easily swap parts from one class of engines to anther and some components could be rebuilt or reused in other applications.
Using GM and its venerable small block V8 as an example, it was often the case that we could swap heads from a family a family of small block v8 10 years apart. “The small-block Chevy is unquestionably the dominant domestic engine both in terms of sheer numbers and also in terms of longevity,” said Jeff Smith, senior technical editor for Car Craft Magazine. He cites the engine’s interchangeability as one of the biggest reasons for its popularity. “It’s possible to swap a set of heads from a 1990 Vortec truck engine onto the original ’55 265. I doubt there’s an engine ever built (perhaps the VW) that you could swap parts from engines 45 years apart.”
Won’t it be nice to have software components web services/APIs that can be swapped in this manner? Just imagine the cost savings both in building new applications and maintaining existing ones. This would be the ultimate in maintaining interface contracts (WSDLs & APIs). It is often said that every part of the small block V8 is interchangeable. Now I have to admit that we do see this more often in the O/S side of software where parts of the systems carry over from generation to generation. We all know that we still Dos components in Windows
In terms of reuse, again the same is true with automotive parts, although in the last 30 years there was a shift away from reuse to disposable components which that cost much more and in some cases with built with planned obsolescence to boot. Back in the day before this era, when your auto breaks, alternator, carb, clutch went bad, etc. went bad, you went the specialty shop usually a machine shop of some sort and had it refurbished and off you went. Cars had a service visit call a lube job. Bearings were repacked, resealed, and reinstalled. Drive shafts were reconditioned with hub bearings replaced, realigned to ensure they were true, and rebalanced. Then came shift in paradigm at least for a period where we moved toward disposable parts. Not all parts were disposable but a good portion were.
Today in Middle Tier applications, we are moving more toward a culture of reuse. Components are now being built at the lowest common denominator possible to allow for more reuse. Components like Microservices & APIs with their interfaces exposed so that they can be discovered and reused, without others having to go build new redundant components, ultimately costing more. And of course where possible we are extending these components as well to support multiple applications. These are core precepts that are not necessarily new but seem to have found a reawakening and fit right into the whole IoT movement.
There are at least two dimensions to reuse – (a) There is reuse where we refurbish a component and put it back in service and (b) there is reuse where we actually use an existing component to build a new application. In the second use case there are sub use cases. (i) One where we reuse an existing component in a new application performing the same task or duties as it was originally built to do and the second use case (ii) where it’s extended to perform new tasks different from its original intention was.
I am heartened by this renewed evolution in the Middle Tier Technology but I will be remiss if I don’t mention what we are all experiencing before our very eyes and that is what Space X is doing. An incredible fit if you ask me, I believe Elon Musk is on to something with his vision of reuse at the highest technological heights.
We all remember the Space Shuttle boosters that powered the vehicles and the numerous successful trips were made to the space station. Now, just imagine if those boosters were reusable and maybe only two were actually built and reused for the life of the program? Imagine how much it would have saved the program and tax payers? Also imagine the wealth of knowledge we will have garnered from the reuse of these components by studying how the behavior and performance of the materials and components, how they held up with multiple reuses, and how all that information that will have helped us build better materials. Maybe, just maybe Space X will get that opportunity with its program
Thanks for reading and as I stated at the beginning of this article, it's just the rambling thoughts of a restless mind intrigued by technology
Very insightful ramblimg. Hardly a rambling but the truth.
Brilliant, Sir Patrick! Brilliant Analogy!