Software is Infrastructure
Infrastructure are the installations that form the basis for any operation or system. They are often large undertakings, require enormous effort, resources and have unpredictable timelines. Societies rely on infrastructure to function and are taken for granted. Think of the roads you drive on everyday, your telecommunication network, utilities, you expect them to just be there and function.
To achieve such reliability we have put in place stringent standards that infrastructure must adhere to. Unpredictability of timelines and costs are directly proportionate to scale and complexity of the undertaking. Reliability comes not just from the quality of build, but considerations for being able to service the infrastructure while minimising it’s unavailability.
Software is increasingly embedded into our lives, shipping poor software poses a massive threat. To set the basis for a series of articles on great software engineering techniques and the importance of shipping solid digital products, over purely meeting a arbitrary deadline or budget, I would like to redefine what we consider software to be.
Software is infrastructure, and it’s construction and maintenance be treated in the same way as we do with physical infrastructure.