“Progress is never permanent, will always be threatened, must be redoubled, restated and reimagined if it is to survive.”
– Zadie Smith, Feel Free: Essays
As anyone who has worked on a software project of any size or complexity can tell you, things just have a tendency to… decay. The more people work on it, the more technical debt loaded onto it, the slower it gets and the higher the rate of what I refer to as butterfly bugs – you make a small change in one place, and all hell breaks loose elsewhere.
So we add tests – unit, integration, functional, behavioral. And coding standards. And static analysis. And release management. And documentation. And continuous integration. And still the apps keep breaking; the sheer complexity of what we build means it’s almost entirely inescapable.
Then we come to upgrade to a newer version of the framework, language or runtime, perhaps for security patches, long term support, or just cool new features. And suddenly the way we were doing things is no longer supported, or no longer best practice, or no longer scales. And we have to refactor previous work, without breaking the rest of the application. But it breaks anyway, And we fix it.
This is progress – messy and a lot of work, sometimes moving forward; sometimes just to stand still. Entropy comes for us all, and everything we do.
A couple of months ago, I left my job of almost six years for ethical reasons – the company had been acquired, and our once inclusive and welcoming culture was massively undermined in the name of “efficiency” and the thinly-veiled application of right wing, capitalist ideology. The breaking point for me was the effective disbanding (through defunding) of the Employee Resource Groups – officially sponsored organizations intended to support those colleagues from minority and disadvantaged backgrounds.
Prior to the acquisition – in fact, on June 22nd 2022 – I was perfectly happy, in the best job I’d ever had, with the best colleagues and management of my career so far. I felt valued, and felt that those around me with less privilege, tenure or experience were treated like equals. While I wasn’t unaware of issues with the company, I guess I had slipped into complacency, and felt very comfortable. And then the wrecking ball came, in the form of a right wing CEO and ruthless COO. Now most of my colleagues in engineering and beyond have scattered to the winds.
I handed in my notice at the end of August, with a job to go to; the day after I was informed that that position had fallen through. I was, of course, quite hurt – but ultimately decided now was the time to strike out on my own, and incorporated my own company. One that I’ve pledged to run ethically in all areas, to look after employees (should I grow enough to have any!) and society as a whole, where I can. Two months down the line, it’s definitely a struggle, but I have faith that I can do things – and do things right.
And as I mourn the loss of what once was – as well as a lot of the political upheaval in the wider world – I came across the quote at the top of this post, and it resonated with me.
Just as we need to maintain our code, we need to maintain our relationships and organizations. When we spot people hurting we need to step in. When we spot things fraying or creaking under load, we need to tend to them.
We need to avoid complacency, and step out of our comfort zones. When we spot ways to improve things, either for ourselves or others, we need to not only make those changes, but find ways in which we can keep an eye on them, always questioning whether they’re the right solutions, and asking “What next?”
Like painting the Forth Bridge, our job is never done. Otherwise, our work – and ourselves – will rust away and slip beneath the waves.