As the holiday season rolls around again the idea of doing good in the world has been on my mind. As kids many of us talked about changing the world. When I was younger at various ages I dreamed of visiting new planets, finding new ways to treat cancer, inventing new cereals, etc.
Eventually these ambitions became more concrete, but even in college the idea of “doing good” was very accessible. Countless school organizations talked about ways to improve the world through annual fundraisers or projects. It was common to discuss ways to better the world over beers on an average Thursday. Full of potential and living in an environment full of new ideas, the idea of doing good seemed easy at that time.
Nothing seems outside the grasp of a typical 7-year-old child.
As an adult, it is harder to stay in touch with this line of thinking. We get lost in the day to day of chasing promotions, finding homes, and other worldly ambitions and it is easy to lose track of our ultimate “do good/make a difference” goal. Still, there are many different ways to do good--almost countless. Many of them might not be what would initially come to mind. I will go through a discussion of several different mindsets here.
You are probably aware that volunteering and giving money are positive ways to contribute to society. The benefits of these practices (both personal and societal) are well documented. This piece will discuss ways to make a difference at work--both in the code you put out and in your personal interactions.
Tweet summarizing a talk at #Alterconf
As the technology industry continues to bloom, careers in software are increasingly more desirable. In addition to obvious perks like high pay and excellent benefits, most technology companies tout the ability to “do good” and “have an impact” as a part of your job. This is a somewhat new notion. According to the Atlantic: when asked about their primary concern in a first job, 64% of Americans from the baby boomer generation mentioned the desire to make more money or learn new skills. On the other hand, 57% of Americans from younger generations mentioned a desire to do something they found enjoyable or make a difference in society. As more companies start to place focus on their core values and emphasize the importance of doing good, we are expecting more out of our workplaces than a way to make a living.
Sometimes “impact” at work is easy to justify-- like if a team is helping to provide technology for Peace Corps teams. But for many of us, finding the “good” we do at work is more complicated. Most software engineers cater their products to users, and most products that have actual users are fulfilling some need--so there’s the “purpose.” Whether that purpose is helping hungry tourists find a good restaurant or providing a way for people to easily rent out their third bedroom to travelers, it is not difficult to translate this “need” into “purpose.” As a software engineer at a real estate website, I focus on building solutions for people searching for an apartment that I would myself would appreciate when going through that process. But is that enough?
When we work on websites and mobile apps we often find ourselves thinking about the best ways to keep people using the technology we build. Periodic notifications, daily emails, anything designed to rope a user into their device. But these kinds of tempting distractions can start to feel icky. Is getting my user to pick up their cell phone a few dozen more times a day really “doing good?” Is that actually going to improve their life? Does it even matter?
Designer Joshua Mauldin wrote about ways to make push-notifications better for users in his piece “Push Notifications: the good, the bad, and the wtf can you not”. This is a great example of how thinking of users like real people can help improve users’ experiences and lives overall. In this way we are not only improving our product but having a positive impact on others. Double whammy!
No one likes getting pulled out of something for an irrelevant notification
While a question as big as “Am I making my users lives definitively better?” can be mind-boggling, we can measure our impact by the small things. For example, fixing a bug or providing a useful scheduling feature makes your users’ lives less complicated. Even if you’re only saving each of your users 1 minute per week, that easily translates into multiple hours for thousands of users over the course of a lifetime. I see that as a clear positive impact.
While thinking about our work and its impact is essential, there are many different ways to get fulfillment from work in addition to a focus on users.
Many managers come into work to make their teams’ experiences better and help them grow, achieve success, and be happy. It isn’t hard to see the “good” in that. Your influence within even a small circle of people can be the key to making the time they spend at work happy and gratifying.
In fact, having a good manager can be the single biggest factor in an employee’s happiness at work. A report by Gallup entitled “State of the American Manager,” cited in the Harvard Business Review, found that the difference between a good and a bad manager accounts for up to 70% of variance in employee engagement. One in two people who have left jobs did so to escape a bad manager. Worse--unhappiness with a manager even slips over into real life, making employees more stressed overall.
Classifying a manager as simply “good” or “bad” is certainly almost always an oversimplification. The three behaviors the study found to be most closely linked to employee satisfaction with a manager were related to communication, performance management practices, and individual strengths or skills of the manager in question. These are documented further in the full report here.
Working to create the best possible environment for the way that your team spends 40+ hours a week is a noble cause and one of the best ways to see a direct impact on others. For those of us who are not managers there are other ways to make a difference in our co-workers lives.
Our actions translate more directly than we might think into our networks. A report documented in the Washington Post examined more than 4,700 people over 20 years and monitored their happiness and the happiness of those who were linked to them (family, friends, coworkers, etc.). The study found that the an increase in happiness of just one part of a person’s network increased the likelihood of that person’s increased happiness by between 8% and 34%. While just “be happy” is not actionable advice, this makes it clear that we can all have a substantial impact on our networks.
A piece on energy in workplaces in the Harvard Business Review found that positive interactions at work lead to an increase in overall office energy. Most of us have probably had an interaction at work that left us feeling down or flustered for some time afterwards and experienced a compliment or positive interaction that made us feel excited and energized as well.
For software engineers in particular, there are many ways to make an immediate impact on your coworkers. This talk by Nadia Odunayo describes ways to moderate our communication and benefit our coworkers in the process. It details several relevant examples in a software engineer’s job, including code reviews.
It can be easy to become stuck in a loop and treat our coworkers carelessly. After all we interact with them at some of our lowest points (before coffee, under deadlines, etc.). However, putting the extra effort into examining our interactions at work can benefit not only our job-related goals, but contribute to their happiness in a very real way.
There are many opportunities available for contributing to the community of software engineers as a whole. We can offer our time to help mentor students (in schools and at code camps). Many engineers make an impact on others by offering useful advice and mentorship to others.
For example, software engineer, writer, and speaker Alaina Kafkes writes technical pieces and gives talks on technical subjects aimed towards improving access to difficult concepts. She is motivated by “(1) remembering how steep the learning curve felt when I first learned to code and (2) getting excited about introducing new people to topics that I can nerd out about for days.” One of her pieces on dynamic programming is a good example of this.
It can be easy to feel like we don’t have enough experience or knowledge to write or talk about a particular technical problem, but often people who have only recently come to understand a subject are the best ones to talk about it because they have a clear memory and understanding about what makes that subject difficult.
Kafkes gives back to her team “in small ways (e.g., writing docs, leading brainstorms) because I can already see how much my teammates' support has helped me grow.” Even providing extra support to people on our team to make a particular process easier or document a complicated issue can make others’ lives easier.
“In every day, there are 1,440 minutes. That means we have 1,440 daily opportunities to make a positive impact.” -Les Brown
There is no one way to give back to society nor a single way to measure one individual’s impact. I recognize that even having the time to sit and think about ways that I can give back is a luxury and one that should not be taken lightly. Thinking often about finding fulfillment and helping others can help us see new ways to make others’ lives better in our inner circle. But particularly in a year like 2017, the most important thing is to try.
Code reviews are necessary to ensure your application is consistent. We live in an age of copy-and-paste craftsmen, so making sure that the bits that do get copied are correct is imperative for this approach to keep on working!