Interesting take on it. For historical accuracy this was something that Sun talked about in the 90's, you sold someone some software, and that was the last bit of revenue you ever got from them. Except you still had the programmers who wrote the software to pay.
This then is the fundamental problem, when you finish the software do you fire the engineers that worked on it? If not, what do they do?
The fact is that software can actually be "done" and it happens every where. And it takes a special kind of engineer who will work on simply removing blemishes (bugs) and not write any new features.
And that fundamentally points at a really really deep problem, engineering software rather than just writing it.
If your software has very well specified and defined interfaces, and no 'escapes' then you can say it is engineered to be partitionable. And an engineer can be tasked with fixing one part, they can fix that part, and do the qualification tests for that part and then when they integrate it they can be assured the system as a whole continues to work as it always did, but now with a slightly different part. Not surprisingly this was a part of, if not the major part of, the notions in object oriented programming. Once the part (object) worked, you didn't have to think about it any more. An auto-mechanic doesn't have to know the physics of a an ignition system to replace a spark plug, a spark plug manufacturer doesn't have to know the geometry of every cylinder to make a spark plug.
Software as books. You don't go to the library and periodically buy updates to the books you own. Textbooks pull that off but even they know its really a scam. Pythagorean's principle hasn't actually changed and the last text book was just fine.
Open source kind of wins and kind of loses here. The poster child is gcc. Looking at the code base changes over time for a given architecture they start with a flurry of functionality changes, then smooth out to just bug fixes and the occasional optimizer tweak, and then when the noise floor of change frequency gets to a certain level you start seeing really sort of adhoc changes or perhaps changes that only help a very very small part of the user base. Its hard to capture both a gcc for ARM9 and gcc for ARM9 embedded in an FPGA fabric that can have optimized bespoke instructions. And yet they will try.
The author calls them psychopaths but they are the current generation of entrepreneurs which are building businesses based on rents rather than sales. Its all the rage, is not Uber a rent seeking business that simply takes a tax or rent for you using their app? The 'sale' was the car ride, the 'tax' is everything else. This works because collecting rent of $1 a month from a million people is "easy" they hardly miss it, and you're $12M/year richer for it. Selling them $12M worth of value is so much harder. Why push yourself? Everybody is doing it, the streaming company, the phone company, and even the maker of your coffee machine. If you haven't got an ARR you aren't a 21st century company these days.
This then is the fundamental problem, when you finish the software do you fire the engineers that worked on it? If not, what do they do?
The fact is that software can actually be "done" and it happens every where. And it takes a special kind of engineer who will work on simply removing blemishes (bugs) and not write any new features.
And that fundamentally points at a really really deep problem, engineering software rather than just writing it.
If your software has very well specified and defined interfaces, and no 'escapes' then you can say it is engineered to be partitionable. And an engineer can be tasked with fixing one part, they can fix that part, and do the qualification tests for that part and then when they integrate it they can be assured the system as a whole continues to work as it always did, but now with a slightly different part. Not surprisingly this was a part of, if not the major part of, the notions in object oriented programming. Once the part (object) worked, you didn't have to think about it any more. An auto-mechanic doesn't have to know the physics of a an ignition system to replace a spark plug, a spark plug manufacturer doesn't have to know the geometry of every cylinder to make a spark plug.
Software as books. You don't go to the library and periodically buy updates to the books you own. Textbooks pull that off but even they know its really a scam. Pythagorean's principle hasn't actually changed and the last text book was just fine.
Open source kind of wins and kind of loses here. The poster child is gcc. Looking at the code base changes over time for a given architecture they start with a flurry of functionality changes, then smooth out to just bug fixes and the occasional optimizer tweak, and then when the noise floor of change frequency gets to a certain level you start seeing really sort of adhoc changes or perhaps changes that only help a very very small part of the user base. Its hard to capture both a gcc for ARM9 and gcc for ARM9 embedded in an FPGA fabric that can have optimized bespoke instructions. And yet they will try.
The author calls them psychopaths but they are the current generation of entrepreneurs which are building businesses based on rents rather than sales. Its all the rage, is not Uber a rent seeking business that simply takes a tax or rent for you using their app? The 'sale' was the car ride, the 'tax' is everything else. This works because collecting rent of $1 a month from a million people is "easy" they hardly miss it, and you're $12M/year richer for it. Selling them $12M worth of value is so much harder. Why push yourself? Everybody is doing it, the streaming company, the phone company, and even the maker of your coffee machine. If you haven't got an ARR you aren't a 21st century company these days.