It is rare that new ways of engineering digital products impact on how we structure our teams and manage a product’s feature-set, especially within the realm of operations. Serverless has increasingly become a popular approach to development that allows a greater focus on providing business value – the core features that are necessary to build, and further abstracts the concept of managing or even worrying about the underlying hardware powering a feature.
As the rate of change increases, predicting the future state of software or the future needs of your customers becomes much more difficult. This means building foundational code that will always work for some future state is often a fruitless exercise. We’ve seen how little code reuse really happens in most companies, and how commitment to aging platforms stymies progress.
The traditional pattern is that an old system is maintained and developed as far as possible, until maintenance consumes almost all development effort, and the company eventually starts afresh with a new system heralded not to repeat the failures of the old. When the new system is eventually strangled by the three factors, the technological forest fire comes and we start over again.
Our obsession with the symptoms of systems complexity explains why so many paradigms come and go without making any significant dent in product management. Serverless allows product teams to minimize the complexity added and continue delivering value at a fairly constant rate without falling into the classic traps that have plagued software for decades.