An Idea For Software's Industrial Revolution
An anonymous reader writes: Tech company Code Valley makes the bold claim that a software industrial revolution may be imminent (PDF). They propose shifting developers from the coding domain (current software development practice) to a "design-domain," where the emphasis is no longer on writing code, but on decentralized design – code becomes simply a by-product of this collaboration. In this design-domain, software programs are designed (and built) by a peer-to-peer supply chain of software vendors, each owned and managed by a software engineer. They envisage a global supply-chain of these software experts capable of reliably delivering immensely complex software.
Toyota and Subaru sell the same car. Toyota made the engine and Subaru made the body. Or is it the other way around, I don't recall. It seems to work fine, though. And Subaru engines are used by many companies, in airplanes, boats, lots of places.
In some markets, Subaru engines compete with Rotax. Each company has a line of off-the-shelf engines you can order. Some plane designs can any of three different engines - two choices from Rotax, and one from Subaru.
Those same planes use instruments made by other companies, etc. A dozen different manufacturers might make stock components that can be used in different aircraft. Airplanes need to be 100% reliable, of course, so you don't often see DUMB design processes in aviation. If it works for aviation, it certainly might work for business software.
And how is car production different from today software solutions? Microsoft or myriad of open source developers create an OS, Oracle or someone provides a database, someone else an integration toolkit, somebody else designs a schema and a frontend and finally a hosting/SaaS vendor puts it all together and configures the whole package.
I've been a software engineer in the civilian and military aerospace world for over 2 decades. I've seen the kinds of software that engineers write in all its hideousness. The last thing this world needs is to let EEs continue to write software. The reason being is that your premise is entirely false. Engineering software is nowhere near "easy enough".
Sure, writing a simple app for a phone is "easy enough", but there's a lot of complicated stuff going on inside avionics systems these days and it's getting more complex every year. You need good software people to write good software in that environment. Let the EEs and CEs design the hardware and leave the software to the people who have the training and skill set more suited to designing the software.