About this site

About this site
Adelaide, South Australia

I write about projects I've worked on, conference experiences, particular technologies and workflows, the practice of software development and more.

I'm currently focused on telling the story of software as a kind of bespoke digital manufacturing. 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 in a way that is accessible to as many people as possible. The answers depend at least partially on a number of abstract concepts that are quite difficult to immediately grasp. Nevertheless, I am confident that with persistence, it can be achieved. We live in a highly commoditised world, and when we build software, we depart that world into another, that in some ways resembles a world of the past.

Some highlights:

Commoditisation, Or Lack Thereof
This is the part where the rubber hits the road. There are two famous big-picture analogies that I’ve seen used to describe software development. First, a story of incremental improvement where the delivery of a bike precedes the delivery of a car which is followed by the delivery of a
Ownership And Access Rights
Ownership and access rights are important companions to the previously discussed division of labour concept in software development. The mobile development space is dominated by two digital software platforms, iOS and Android, which are managed by technology giants Apple and Google respectively. These platforms are an intermediary between mobile applications
Breaking The Work Up
Contemporary software projects are managed through a set of principles and abstractions that can be helpful for discretising digital products into pieces and once discretised into pieces, creating something that vaguely resembles a roadmap - a plan for what a project will (or at least intends to) deliver over a