The Story So Far

The Story So Far
Flinders Ranges, South Australia

I'm telling the story of software in a manner that does not assume the knowledge of particular technical concepts. The big picture: running software (e.g. an opened app) is a manufacturing process. When you use software, you are interacting with a digital factory, which is comprised of various interconnecting systems that together deliver a digital product.

Most people who have any exposure to software understand that it often does not work in everyday life, and those who have had some kind of relationship with building software have come to understand that it is often very expensive and very time consuming. Over many years I have seen non-professionals ask the same questions, sometimes wrapped in a courteous way, other times not so much.

Questions like:

  • Why doesn't it work?
  • Why does it cost so much?
  • Why does it take so long?
  • Why is it so complicated?
  • What do developers do?

I have made an earnest attempt to answer these questions using the concept of the digital factory to make answers to these questions more accessible. At times important pieces of the puzzle depend at least partially on a number of abstract concepts that can be difficult to immediately grasp. Nevertheless, I am confident that with persistence, it can be achieved.

We live in a highly commoditised world of physical products, and when we build software, we depart that world into another, that in some ways resembles a world of the past. A world where we have to build our own supply chains and where we can't rely on a market of solutions for ways to delegate some of the problems we don't know how to solve.

The story goes beyond making delivery happen and also explores the role of projects, businesses and intellectual property, and the physical world, all of which materially shape digital products and their factories.

We've discussed various phenomenon that changed the game, like the advent of the public cloud, social media, and the evolution of platforms as gatekeepers.

We've looked at some of the things that software engineers engage with at an individual level outside of the day-to-day such as the role of meetups, the hiring problem, what makes the best in the world, and grappling with expectation.

For the matters that relate to engineers when 'on the tools' such as managing infrastructure, managing code, sources of truth, quality metrics and trade-offs (with a case study on memory pressure) and we investigated ways to go faster. There was also an overview of how digital games are software on hard mode, and an explanation of what the work is through The Plan and The Field of Truth and The Fog of War.

When deciding what to build we need to make certain decisions about who the digital product is for, a topic we explored in B2B vs B2c, software as product & service, and the consumer.

We considered user experience through subjective software and adjacencies, growing pains, feedback, and related the user to the digital factory model through design.

The story is still being told, I hope you'll join me.