Software Principle 3: Understand Your Impact
There is no doubt we live in a world dominated by software. As mentioned in the introduction, it’s hard to go even one day of our lives and not have to interact with any software.
The impact of software and access is far-reaching, and we have a responsibility to examine and understand it.
This impact can be positive or negative to those using it, and we must be stewards of this. We need to quantify and understand our impact on the world around us during development.
Many tools developed are used by tyrants, dictators, and other miscreants to cause damage to people financially, emotionally and sometimes physically. If we develop without an awareness of our impact, we contribute to the problem.
On the other hand, understanding our impact is key to being thoughtful and building better software. Your impact, whether you like it or not, is complexity you must face as every action has consequences.
Understanding Our Impact
How do we start to understand our impact? It begins with understanding the third-order consequences of our actions when we make a decision. We almost always think about how the decision will affect the people in our context: our team (first order) and our users (second order). We rarely think about how our choices will affect the third order people: those people and things that are not in our context. These are people who might adopt your software and become users, the environment, and society as a whole.
Considering these additional factors adds a real human element to the equation that wasn’t there before, and we can think about how our software might be abused. People become more than just an efficiency number on a dashboard, jobs become more than just “inefficiencies in the market,” and society becomes more than something that needs to be disrupted.
This isn’t to say we shouldn’t become more efficient and effective as an economy or as a society, but how we achieve that might change if we consciously think about third order consequences.
Get Some Perspective
The next way to understand your impact is to surround yourself with people who view the world differently than you. They offer perspective on your project and can point out previously unseen consequences or issues.
Clearing the blind spots in your software will make you a better developer as well. One common thing in web apps that goes unnoticed is accessibility or a11y. If you had someone that needed software to be accessible for whatever reason on your team or helping you think about your idea or product, then there is an excellent chance it will be added to the software.
It is true across different areas of life that get neglected when these blind spots exist on teams. As we all have blind spots, it’s hard to know what ours are until we are put in a position by someone with a different viewpoint or abilities to confront them.
The last way to understand your impact that we’ll cover in this principle is to have impact measurements. Many teams measure the speed at which they deliver software and their effects on their business or the outcomes that they desired, but it’s rare for units to measure their societal impact or the impact on the world around them.
In the future, we’ll talk about measurement more and why it’s so important, but one thing will hold (and it’s a future principle): you are what you measure.
As software continues to eat the world, solutions that have a negative impact will be called out - and we already see that trend with a few platforms that were incredibly prominent and abused their power.
If they had quantified more than revenue generating numbers as metrics and ensured that their activities were having a positive impact on the world, the outcome and their current position may have turned out differently.