The Physical World
There is an idea among software professionals that developers build on layers of abstraction that we can generally trust not to "leak", meaning that their concerns do not spill into higher order layers, and therefore to proactively consider them would be wasteful. This often seems to hold true. Yet as I have pointed out over the course of various stories about society, businesses and intellectual property, and the project, among others, it is clear that more effective decisions are possible when there is a broader integration of concerns in software solutions - digital factories.
This is true not only for businesses that are managing projects, it is also true for individuals managing their careers. In the short-term, practitioners must reconcile what is possible and over the medium and in the long-term reconcile this with what may (or may not) be possible in the future as the pool of available technology choices changes shape over time.
There's a glimpse of what this looks like in practice in the post about the metaverse, where I mentioned that a lot of the hype (or confidence rhetoric) referenced models of the future that did not adequately account for social considerations such as ownership. There were (and are) other criticisms to be made of the metaverse that relate to aspects of the physical world.
To explore this further we should look at one of the metaverse's enabling technologies: a primitive known as the Blockchain, which is essentially a digital ledger without a single owner. Imagine every single person in the world has a copy of an electronic record, and every copy of this record must be kept up to date, and also any of these records could assume the role of the source of truth for all the other records. How can we ensure this happens? For the last two decades we would typically consider the internet and the cloud as part of a solution to satisfy this requirement. The cloud is effectively privately owned by a pool of companies - what if all of these companies were to disappear, or to collectively decide as a cartel to restrict delivery of certain kinds of software as gatekeepers sometimes do? The Blockchain offers a potential solution to this problem.
There are a number of different algorithms to reconcile conflicts between individual nodes (each of which is a potential source of truth) in a Blockchain. There is one called proof-of-work, and it is the engine behind the cryptocurrency called Bitcoin. The details of how this works are not important for the scope of this discussion, the important part is that Bitcoin - which is not a technology deployed at large scale around the world in a comparable way to how The Cloud is consumed today - uses a significant amount of energy (comparable to a small country) to maintain the integrity of its records.
This is just one Blockchain - there is no inherent limit to the number of independent networks consuming energy at this scale, which was a significant source of criticism as evangelists of the Blockchain were forecasting a future where all kinds of digital records utilise it.
Today the consumption of large language models (LLMs for short, also often referred to as "AI" today) is driving an even greater level of interest from technological evangelists, and like The Blockchain is also having a significant impact on demand for physical resources. The electricity consumption of The Cloud was significant before LLMs, and LLMs is expected to drive substantially more demand for electricity and there is uncertainty about where exactly it is going to come from. Beyond electricity, the demand for the computer hardware that LLMs run on is significant enough that it is driving price increases for consumer electronics such as digital games consoles - this will naturally have some effect on their corresponding markets for software.
The rocks beneath the earth aren't the only consideration for how the physical world shapes software markets. Let's talk about people.
Software markets are shaped by human beings, who are born into one world and leave a different one, which has implications for confidence (intellectual property and digital products) and more tangible measures of project success, such as the maximum lifetime of a software subscription. Our biology and its limitations shape the supply-side of software too. I've previously mentioned that software developers familiarise themselves with a global pool of available primitives and make technology choices when building solutions.
As practitioners we are most familiar with choices that are made available to us throughout our lifespan, which naturally shapes our decision making. In my view one of the most interesting aspects of LLMs is that in principle there is seemingly potential for decisions to be made by integrating concerns over a timescale that significantly exceeds the natural lifespan of a human being. I am not too romantic about this prospect however as similarly optimistic ideas have been made popular in the past about the internet and social media.
Beyond problems of scale and the passage of time over a large number of years, the human presence in the physical world is distributed across space and time over a much smaller scale. These restrict our connections to one another and serve as barriers to the evolution of digital supply chains (e.g. by shaping conferences and meetups) as well as access to digital products and services. I am certain that if there was a long established global network of transcontinental trains that mirrored the internet, our societies, markets, businesses, projects, digital factories and digital products would look very different.
Until next time.