Note: Usually, I write about tech. This post is more general rambling. I understand if readers have issues with it. But hey - it is my blog and sometimes writing that is more loosely connected to tech is what is needed. For me.
We are living in a world in disorder.
While a convicted felon is the president of the most powerful country in the world, right wing parties are taking over power in multiple countries in Europe. Russia fights a terrible war against Ukraine, killing thousands of people and the middle east is a hell-hole of terror and violence.
The tech-bro oligarchs promise a dystopia driven by artificial intelligence that will make half of the white collar jobs disappear, while the training of their useless LLMs requires ridiculous amounts of energy and water, fuelling global warming and making any idea of reducing our global carbon footprint obsolete. Their social media networks spread hate and pseudo science destroying the trust in institutions and media, destroying the very fabric of our democracies.
And while they are at it, they are filling their pockets with money they get from crypto scams.
Did I mention that the once pretty solid IT industry is not the safe haven it used to be but the jobs that used to drive innovation and new ideas are now sacrificed on the altar of profit and greed.
Phew.
Yeah, no doubt, this is a pretty negative view on the current state of the world affairs and all in all, many of us are still living a pretty privileged life. But the poly crisis is not going away if we pretend to ignore it.
I want to reflect on a couple of things that will allow us to keep some agency even in these times, clearly seeing that we are in a systemic crisis where the individual has limited power to change things - responsibility to deal with crisis like these can’t be shifted to the individual.
But we do have agency and our agency is something that we must insist on. We must not accept to be powerless and do our part to stay sane.
This is also holds true for our professional lives as software engineers. We are not working in a vacuum but embedded in society and economy. Choices we make have an impact on our professional environment directly but also indirectly on our local economies.
The following list of actions is quite generic and can be applied not only in the context of software engineering. It is also not exhaustive a you may have guessed and it is personal. You may come up with a different list and this is fine.
The most important thing is not to disappear into the dark fog of complacency or to resort to voluntary obedience. There is always something that can be done, also on an individual level.
1. Strengthen personal Relationships
Human beings are social animals. Working social relationships are an important part of our well-being, they are a precondition for physical and mental health (there is plenty of research around this).
In our software engineering context we must remember that the smallest unit of delivery in software engineering is the team (I wrote about it previously). Our joint work is what creates value. Feeling safe and valued as part of a team is a strong indicator for productivity and a prerequisite for doing our job well.
Separating groups into individuals is part of any power playbook. We can counter this by strengthening the social bonds inside and outside of our professional life.
2. Embrace Diversity
During the last couple of years we could witness a constant narrowing of the concept of identity. One has to decide what he or she “is”. But the concept of a single identity is ridiculous.
“I am large, I contain multitudes.”, as Walt Whitman wrote in his unforgettable poem “Song of Myself”. Limiting us to a single identity will make each and all of us poorer and will reduce the joy of discovering other personalities and cultures. Let’s reject a narrow view about how people should “be”.
In the context of software engineering let’s embrace the diversity of our teams and consider it as an asset. The multitude of voices and opinions will help us to find better solutions to our problems and build better products for our users.
Our customers should be many and they will be diverse - so should our teams.
3. Contribute to the Common Good
The predominant narrative in economics during the last decades was that of the individual rational actor. Most of the simplified economic models were built around the idea that people tend to optimize for themselves. This assumption about human nature and the motives of our actions as human beings is strangely limited but has been shaping the way how politics thinks about economics and the society as a whole.
This notion of people as selfish individuals never has been a correct reflection about how our societies work but the framing has real world consequences. Most people have heard about the “Tragedy of the commons”, a term popularized by ecologist Garrett Harding in the late sixties. It basically says that typically selfish individuals take benefit of shared resources so ultimately resources get depleted and everybody loses.
There has ben a lot of research on this topic and Harding has been criticised heavily, at least by some not so mainstream economists. I just want to mention the work of Elinor Ostrom (2000 Nobel for Economics, I know, I know), showing many examples of successful governance of commons. Nobel winners probably are not completely fringe, though.
In software, Open Source is a great example of a common good. The fact that open source software is powering a huge part of our industry is astonishing and just showing that collaboration with the purpose of creating value for all is possible.
So let’s strengthen the common good, let’s break up the dictate of “I win, you lose” by contributing to something that allows all of us to win and all of us to benefit. Contributing to Open Source or to Wikipedia are great examples of common on the area of software engineering.
4. From Ownership to Stewardship
In a talk last September at the FastFlow conference, Matthew Skelton of “Team Topologies” fame laid out the case for a new understanding of how we relate to the systems we work on. Currently, our industry uses the term of “ownership” to describe the responsibility that we have with respect to the systems we deal with.
But we know, and this is especially true when working in an enterprise environment, that our systems will live for a long time so there is a high likelihood that we will hand over our system to others or that we will inherit systems from others.
So what Matthew proposed instead of using “ownership” is “stewardship”. It much better describes our transient relationship with systems but also the responsibility to keep the then in good shape as we may hand them over later.
“Ownership” means that our responsibility ends when we hand over software - it is none of our business any more. Why would we care how our successors deal with the problems that we used to own but now don’t any more?
“Stewardship” beautifully extends our responsibility into the future, in the sense that we need to have the long term health of the system in mind. We don’t only work for us but also constantly shape the way how our successors interact with the system and we also keep their well-being in mind.
Practically, this relates to a constant focus on doing our job in a good way, taking care about the quality of our architecture and our code. We must make sure to keep complexity at bay and this in turn will contribute to our well being as engineers.
Research shows a strong correlation between code quality and developer well-being, job satisfaction and productivity. It will also help us to build better products, by the way so it is also clearly a win for our business.
Embracing the concept of “stewardship” for our software will help with our well-being and this will help us to build the resilience we need in this turbulent times.
We need to take care about ourselves, both in our private and professional lives.
5. Don’t be naive - know your rights
We can witness more and more politicians and business leaders who think they are above the rule of law. Decisions are taken that are blatant violations of constitutional rights but also many other attempts to threaten and intimidate people.
These patterns of behaviour are also visible in our industry where big corporations try to get rid of employees in disrespectful and sometimes even illegal ways.
It is important to understand the rights that protect the work force (well, at least in Europe these exist!) and it is also important to understand that companies hate nothing more than dealing with lawyers that are specialising in labour law.
So go find the proper union representative, talk to your workers council (if something like this exists) and don’t be naive. If push comes to shove, it is better to be well prepared.
6. Final words
Nothing of the above will change the world in a significant. All of it can make life better for us individually and in the workplace.
As I said above - most of us are in a pretty privileged situation and most likely will be able to weather the storm reasonably well.
Nevertheless, it is worthwhile to think about how we can contribute to make the situation more bearable for us and others, both in our private but also professional lives.
Thanks for reading.