The 1 Thing Software Engineers Should Take Away From 2020

Payton Dennis
8 min readAug 18, 2020

2020 has been an emotional year for many of us. What should we as software engineers take away from it? Here’s my answer:

The word ‘politics’ causes instant division, it causes instant “My side versus your side”, and instant hate. It always gives us a bad attitude. We get that feeling in our stomach of uneasiness, distrust, and that sense of not being comfortable. Politics isn’t inherently evil, but saying it’s all sunshine and rainbows is also not right either.

Government building.
Photo by Joshua Sukoff on Unsplash

I did not want to write this article because… 1) it’s such a hard topic to talk about and 2) Because I’m relatively new to the software engineering industry, but I still felt empowered to do so because of who I am: A Christian black heterosexual American man who aspires to be a software engineer in the tech industry.

A quick aside aside on that last sentence, I believe labels are important, but they do not have to be automatically evil. In programming, we know this. Variables are the clearest indication, but in any programming language there are function names, language specific keywords, or branches in version control. They have a purpose of identifying the importance of our code; hence they let us know what we’re trying to do and how we are trying to do it. Think about if we didn’t have labels: It’s almost impossible because it is human nature to automatically categorize, label, or give a name to something. Read more here: Labels: Empowering, Harmful, or Both?

We, as software engineers, have many perks. We make good money, are in relatively secure jobs, and will probably be in demand in the job market as time goes on. We have to be careful not to fall into the trap of insulation. Why? Because Insulation prevents us from feeling the effects of the outside of the world.

I think it would be worthwhile to analyze this word insulation. Insulation is to stop heat, sound, or other medium from escaping or entering according to the Cambridge definition. Let’s apply this definition to our current situation. If we fall into it’s trap software engineers can become insulated by their pay, job security, and other benefits and almost “feel” as if they are unaffected by the world that surrounds them. This does extreme harm rather than good and to understand why we need to go back what computers were created to do.

We create software to solve problems. We gather those problems from clients that tell us what they need. Doesn’t a doctor ask the patient for what’s going wrong and then supply a solution to fit the their need? Consider the technologies, frameworks, and design decisions that we make during the development of a product. Somewhere down the production line of any product, it’s people that interact with what we build. It wouldn’t be helpful if what we build proved to be unhelpful for someone because it couldn’t fix their problem.

Insulation numbs us to pain. Once we become insulated we stop trying to become invested in another people’s lives, thoughts, feelings, and emotions. Putting ethics and values aside for one moment, how can we work collaboratively on extensive projects effectively, how open will our minds be, how can we perform tasks that require becoming invested in what someone else’s experience without intentionally countering insulation..

The purpose of this article is not an argument for a side nor an ethics discussion on “ways you can be a better person”. Rather it’s an informative definition of a responsibility that I think we, as software engineers (who are privileged in many respects compared to other professions), should make sure we use as a framework as we live, work, and serve in this industry.

These first 2 quarters of 2020 have taught us many lessons:

  • In an economic / business sense, the importance of remote working and the introduction of fresh problems that need to be solved to aid this new online boom.
  • In a financial sense, the importance of “rainy day” funds, paying off debt and saving.
  • In a life sense, the increase of time on all of our hands and the importance of investing in ourselves, friends, and family.
  • In a community sense, the increased conversation in our ethics, morality, and values in injustices and discrepancies that permeate our lives.

What do we learn in the software engineering sense…

The 1 Thing we Should Learn: The Software Engineer’s Responsibility

Tech
Photo by NESA by Makers on Unsplash

What did we, in the software engineering sense, learn from the first two quarters of 2020? My answer would be a responsibility. This responsibility comes in three parts: Creating technology for all, encouraging all people into technology, becoming knowledgeable in the world around us. Let’s look at each of these reasons and then end on a conclusion to set us free from this phenomenal year.

1. We should create technology for all

The software that we create is never deployed in a vacuum. It will be, 100% of the time, used to interact with different human beings of all colors, shapes, sizes, lifestyles, situations, and backgrounds. Sure, we can have a “user group”, but even unconsciously we may exclude a group of people because of our own biases. This has to be an active thought in the construction process, not passive. We’ve all seen how COVID-19 has introduced new types of problems, opportunities, and issues. Our work is important, integral, and used all over the world. This alone stamps a sense of responsibility every time we’re given the opportunity to create software. This responsibility is in making sure that it’s as objectively made and provides an adequate solution to the problem for all use cases and all people.

Machine learning, Artificial Intelligence, and Virtual Reality are three areas of tech that have become the hottest trends. They also can become breeding grounds for biases. Consider an image processing algorithm that uses machine learning to perform some computation. Now what if the image processing algorithm is tested only using a certain skin color. All it takes is that one small overlooked choice and the entire application could be skewed. This was a little example, but it’s just a reminder that code is simply through humans thoughts translated to machine. Let’s remember that humans are behind every application, piece of software, and functional component of the internet.

The power that software engineers have is amazing and being able to run complex tasks at the speed of electricity is a superpower. But solutions to those complex tasks are written by fallible humans with emotions, moods, and biases that make up everything we do. It would be unfair if an algorithm, that an engineer wrote, was built to side with one opinion versus the other to complete a task.

Action Steps…

We don’t write perfect code. I wish we did, but we don’t. To overcome this it requires being active rather than passive. All it takes is 1 engineer to have the resolve with every piece of code they write to think about every and each type of user that could use their product, to identify those straggling edge cases, and become a viscous tester. Even beyond code, we can support diversity initiatives for talent, encourage others to speak up (because we don’t know everything), and be available to listen.

2. We should encourage all people to be a part of the tech field

We’ve all seen the growth of technology throughout the years. More and more people are learning how to code. It’s important that we let down the windows and open the doors that we hold up in our “gated software engineering community”. Many times tech enthusiasts can become aggressive with their ideas and force people to conform to the traditional ways of doing things. And let’s be honest, sometimes there is a right way and a wrong way to do things, but let’s also acknowledge the hundreds of solutions one problem can have.

Let’s be aware of how the more experience we gain in this industry the more our beliefs, ideas, and judgments become cemented. It’s an O(n) time complexity where this is concerned.

Action Steps…

Because of that time complexity, we need to try and optimize our space. Whether it’s offering tutoring services, putting videos up online, or working with local schools to talk about the career opportunities for students, we should find new and creative ways to invite people into the technology space. You should plan to do something every quarter to inspire the next generations of software engineers.

3. We should become knowledgeable in the world around us

Community
Photo by Rosie Fraser on Unsplash

This is a direct attack on insulation. Nowadays it’s easier than ever with all the social media applications in the landscape. Therefore we all should all be knowledgeable in the events, experiences, and lives of others. Yet, because of social media, we can drown ourselves out with other things. This can happen unintentionally in many ways, which I definitely do not have time to explain outside of this blog.

It is no simple task to “more empathetic”. What does that even mean? Being empathetic and considerate is a learned, active, powerful force to carry. Similar to the Seven Habits of Highly Effective People by Franklin Covey, Roman Krznaric shares the Six Habits of Highly Empathic People.

One of my favorite habits Krznaric brings up, is to develop an ambitious imagination. He says “ The 21st century should become the Age of Empathy, when we discover ourselves not simply through self-reflection, but by becoming interested in the lives of others. We need empathy to create a new kind of revolution. Not an old-fashioned revolution built on new laws, institutions, or policies, but a radical revolution in human relationships.

Action Steps…

We normally don’t associate empathy with ambition, but really our relationships need to be coated with the force of being interested in the lives of others and it’s by looking at others we find ourselves. Again, this is a learned power. Don’t rely on your instincts to get you to care about others. It’s something that we need to learn how to do.

Conclusion

I’ll be the first to say that this article was difficult to write. My purpose in writing this was to describe the responsibility that I believe was placed upon the shoulders of all people in any related field in technology.

Software engineers will be in a unique position for the next 10+ years. Are there no responsibilities for us? Are there no moral standards for the code we write? That’s where I would disagree.

Software engineering has been a dream career for myself and I hope we can band together and continue to create amazing applications and software that support 4 billion people on the internet every day. I think it’s fair to say 2020 will be a year remembered in history. 2–3 years from now, each of us we’ll look back and either say “That was the year where everything went horrible in my life.” or “That was the year where I learned more about myself and what I was capable of.”

This article took me a little longer to produce, so if you’re reading this “Thank you”! Interested in more: Checkout my new YouTube channel if you want more videos on specifically software engineering and the tech industry. Thanks for reading and God bless.

--

--