I stumbled on 90-percent-perspiration that I wrote a few years ago. This caught my attention:
This is why software development is so much more than programming. I love both but as you move down the stack - into platforms or infrastructures - there is more and more work around less and less programming.
I feel that I wasn’t clear when I wrote: all the programming is like that, not just platforms or infrastructure software development. What is different is that, when building platforms, you are building systems on which other systems depend. This is the same as the difference between B2C and B2B on the business side: once you start selling B2B other folks will build their livelihood on top of your work. At that point you assume far, far greater importance in their lives than vast majority of consumer apps (there are of course critical consumer apps that are health, safety and communication related but those are far and few between in the deluge of mobile and web apps)
The way I think about it, there is a technological tree, just like in Civ. And the tree has the trunk on which there will be many branches with many leaves. This technological (or, if you will, dependency) tree is of course a graph and leaves can depend on different branches which is where the analogy falls apart. But the point is that no systems depends on leaves and they can be freely and frequently changed without breaking other systems. Not so for branches and definitely not so for the trunk.
PaaS or IaaS products are not global trunks - those are operating systems, languages, databases, that is core technologies that allow building of other technologies on top. But for the users of the platforms, the platforms abstract all that and they are the most direct branch on which their products sit and they might as well be considered a trunk for those users. This is, after all, the reason to pay the platforms: trading off freedom to do everything computers can do and money in order to get guarantees around technological stability and SLAs. And once you take on those guarantees you have to fulfill them.
Last modified on 2024-07-27