Throughout history technology has aided humanity. Not the other way around. From the invention of fire, to the creation of the wheel, the printing press, and the personal computer, technology has acted as a multiplier for what humans can do. Technology doesn’t exist in a vacuum, and it won’t stand as an industry by itself. We — as software developers — should always keep this in mind when creating technology.
These days technology dominates our phones, financial markets, and arguably even political outcomes. It would be easy to say that the technology industry dominates our every day lives, and yet while accumulating negative headlines, has skirted accountability.
So far waiting for technology leaders to make meaningful change has led to little change. Few people are choosing to build their businesses upon ethical practices, and those that do face an uphill battle against competitors that don’t. It seems that if change will happen, it must happen bottom-up, with a plurality of voices speaking in unison.
The software developers who are building this technology need to be having these discussions. It falls on us as much as anyone else to hold the industry to a higher standard. It may even fall on us more as we prosper from the system, and must help lift others up to ensure that technology isn’t just a multiplier, but a positive multiplier.
To start a conversation, below is a short list of ways we can improve our industry.
Bring your moral compass to work
I don’t believe that people necessarily have to bring their complete selves to work, especially when you think about a company being a business. But I do think it’s incredibly important to speak from your moral center. The easiest way to do that is to work on things where your personal goals and moral beliefs are aligned with the work you are doing. The tech industry often feels like a vast land of amorality, because accepting morality means taking a stance and responsibility. It turns out taking on responsibility is difficult. But if you’re not working for what you believe, and you have the means to satisfy Maslow’s hierarchy, what are you even working for?
There’s something I’ve been thinking a lot about, bifurcating the software development industry with certification. As software continues to eat the world, this laissez-faire attitude around certainty can’t continue. Software is the heart and soul of the tech industry, but software will become the lifeblood of many more industries over the coming years. There is no putting the genie back in the bottle, software has exponential value and a marginal cost to produce. Software has already played an important role in furthering humanity, and it’s not going to disappear. With that in mind, we must create safeguards to ensure a level of quality that we currently leave to faith.
Critical infrastructure has to be built by certified developers who face penalties for code that causes damage. Writing uncertified code shouldn’t be banned, anyone should still be allowed to write whatever code they want. Code is a form of expression and I have no intent on stifling it. But if the code you writes gains traction, or becomes critical infrastructure itself, you have to get it certified and have it built by certified developers.
Trading progress for certainty makes sense if we want to have the industry considered trustworthy.
Oversight and penalties
Along with certification, there needs to be legal infrastructure to respond to software that causes harm. If software causes harm to others, either through malicious intent or through malpractice, someone must be held accountable.
If a civil engineer or a firm create a bridge that falls down, those parties are considered liable. If a company writes software that leaks your social security number, you’ll be lucky if they get a slap on the wrist. 1 As information becomes more and more valuable, this dichotomy becomes more and more unsustainable.
The ever-expanding scope of software means that it will continue to have a growing impact on the world around us. But legislation is not keeping up, and that has to change.
Lifting others up
The great majority of software developers are very lucky to have marketable skills in an ever-expanding market. But one person can’t reap all of those rewards, so I’d argue it is a moral obligation to spread them around. You can use your skills to lift up others and create a better industry.
There are already many people in your proximity who can benefit from your expertise and willingness to help. Developers are always learning from developers, especially from the ones who share the knowledge they have. Designers with a perspective on development can work together to create a better product. Business folks who now know what’s possible to create new revenue streams and directions for their companies.
If you don’t buy the selfless angle of spreading your knowledge and giving your time, there are selfish benefits to helping out others. Instead of fighting by yourself for what you believe in, through mentorship and guidance you can create an army of people to fight for what you believe in. And I assure you that you’ll learn through the process and become a better version of you. There’s so much space we have a direct effect on, and so much change we can make through that.
I hadn’t said it yet, but now I will. The u word, the word that strikes fear in the hearts of capitalists: unionization.
I was having a chat with a software developer I respect and the subject of unionization came up.
My friend: I’ve been lucky enough that I never personally felt the need to consider unionization, but I know that not every employer is so good with their people.
Me: That’s the reason we should unionize. We can afford to on behalf of others.
As an industry that is dominated by white males, this ought to sound familiar. It’s privilege. And those who have privilege should use it to elevate others.
Unionization would allow software developers to collectively bargain for the greater good of the industry.
At its simplest, this is valuable from an economical perspective. Collectively we can negotiate better compensation for ourselves, but more importantly we can create a rising tide that lifts all boats — allowing those who aren’t yet making as much to be . This will be of disproportionate benefit for underrepresented communities, and create more opportunity for economic mobility.
We can also use it to shape our workplaces. Sexual harassment runs rampant and we wonder why there are diversity issues? Companies mandate forced arbitration and only remove it under pressure. Or build their companies on the backs of contractors who have no rights or recourse to improve their own situations. 90 day exercise windows for people who created a disproportionate amount of value during a company’s life.
Then we reach the next level, the galaxy brain of unionization. A form of checks and balances for software. Software developers are the ones who create software, and so we should have say in how it’s used. As an industry we’re creating more value than has ever been created before in history. Job mobility is at an all time high so it’s not like we’re short on options. And yet we haven’t taken advantage of that as a collective.
Software should be used in ways that align with our morals, values, and sensibilities about how we believe software should shape the world.
Separately we can all ask for that to happen. Together we can demand it.
The tech industry can use an injection of the humanities because technology is built to improve humanity. Let’s not forget about the humans on the other side.
I’m open to suggestions, so please reach out if you think of anything I’ve missed and should include.
I won’t use this section to argue that companies shouldn’t take on this information at all, but really they shouldn’t hold onto anything they don’t need to run their product. ↩︎