At the Flatiron school, groups of wide-eyed, smart and eager students are taught how to build web apps, write code and are empowered to go out in the world and create cool and hopefully powerful applications that will be widely used by their target audience. One thing that isn’t on the agenda is the ethics of coding; something which I believe is a key component to developing (pun intended) in any role.
As a developer, you are a god in your domain. You can create and smite things with a few keystrokes and change the environment with a few more. Every decision you make changes this world you’ve created almost instantaneously. Anything you make or help make will have an effect on the real world, whether it’s an app to make emojis spin around or a new social networking site.
You also have a degree of flexibility in deciding where to work, what to work on and who to work for as a developer. When seeking a job people often look at projects, salary, location, and perks (because you might literally die without access to complimentary free-range coffee).
I implore you to look further; look at company culture, see how people act around those superior to them, and the culture the company breeds (as compared to what they tell you their culture is). Look at the kind of projects you’ll likely be required to work on, and the projects the company as a whole is working on and ask yourself
- Are the projects I’ll be working on something I would be proud to be associated with?
- Does the company culture promote open discussion between managers, developers and other staff?
- Will I be asked to create or do anything that would be considered a breach of my morals or ethics?
One great example of this is Bill Sourour, a lifelong programmer who talks about his experience as a young dev working at a pharmaceutical company. He was asked to create a survey targeted at young teenage girls. The survey would inevitably recommend the drug that the company was marketing, regardless of the response. He asked his boss who confirmed that was exactly how they wanted the form coded.
Nothing that we were doing was illegal. As the youngest developer on my team, I was making good money for my age. And in the end, I understood that the real purpose of the site was to push a particular drug. So, I chalked this tactic up to “marketing.”
The blog goes on to talk about how he was emailed an article about a girl who took the drug and proceeded to take her own life. Turns out the drug’s main side effects included depression and suicidal thoughts. Skirting the pharma laws in Canada (in a “legal” way), set up to protect the user, may have led to her death.
It can very easily be argued that this was no fault of the developer’s and how this was a coincidence and of course that’s entirely true. We have no way of knowing how this girl found the drug, and what pushed her to try it. That didn’t stop it from weighing on his conscience and keeping him up. He saw something that raised a red flag for him, and he chose not to rock the boat. What he did wasn’t wrong, not legally, but one can argue that it wasn’t right either.
Bill’s story blew up on HN, Reddit and all over the tech spaces on the internet. Programmers started sharing one after another, stories of times they felt like they had done something or been pushed into something they weren’t proud of.
One talked about breaking a federal legislation by creating an email opt-out form that not only didn’t work but also sent the information of the user to the company’s sales force. He discussed this with his CTO and was basically told to “stand down.”
Another user mentioned that he was given a competitor’s website code and asked to build on it just so they could “demo to investors.” He felt as if he was being used to defraud investors and reassure them using fake information
Developer Scott Powell recalled a story where he was being asked to make an interesting billing system software. “I felt a similar twinge of guilt writing some time-tracking software for a legal firm in England, and after demoing it was told that starting a timer should *not* stop any currently running one. (this was single-user software, back in DOS days, btw) Being able to bill many clients at a time struck me as being pretty dodgy.”
It’s important to remember that you’ll likely face small ethical challenges every day, and not every battle is worth fighting. These programmers all did as they were told, despite the flags that were raised in their heads. The damage done wasn’t measurable and hopefully not life-changing. For the developers of today, however, that could be significantly different.
Today’s coders are designing software for self-driving cars, airplanes, and even military grade technology. Mistakes or cutting corners could cost hundreds or thousands of lives. To date, there are a few thousand deaths due to faulty software in an airplane and already a few hundred attributed to software in cars. As we continue to move into newer technology, developers will have more and more control over integral parts of people’s lives.
The “F*ck-You” Fund
There will come a time when someone may ask you to do something that crosses your ethical/moral line. At that time, you’ll have two options; you can either put your head down and code away quietly, or you can tell your boss to go… themselves.
The second option is obviously the impractical hollywood-esque choice which would leave a real person without a job, with a rent/mortgage and a ton of bills to pay.
When I was in college, my business law professor, Carolyn Hotchkiss, talked about this scenario and always told us she had two special savings accounts at all times in her life. One was her Tahiti Fund so she and her wife could retire to Tahiti when she got bored of teaching us. The other was her “F*ck You” fund.
This was a fund she put a certain percentage of each paycheck into until she had enough to cover expenses for a few months and live comfortably. The fund was for the sole purpose of having to quit her job due to a conflict of interest and ethics. It’s something you don’t ever want to have to use but should have just in case of an emergency. I’ve had one since I started working and it’s been a great help to me.
What can you do?
I’m not saying that you should turn down every job offer you get until the Pope decides he needs a new website for himself, but I do want you to start asking yourself what matters to you and what kind of things push past your ethical and moral lines.
Think about what you’re being asked to work on and ask yourself what demographic this will affect and how. Are you improving someone’s life, or just manipulating them to doing something you want? Ideally, in a perfect world, every product you make should have the end user in mind, rather than the enterprise that makes it. Realistically, if what you’re doing does more good than harm, I think you can chalk it up to a win.
It’s very easy to relieve yourself of responsibility by saying that you can’t always control what you work on or what its used for, but unless you’re a literal code monkey, you know what your software can do and what the intent behind it will be. No employer will give you something to code without outlining exactly what the functionality is right? Take a moment to understand what you’re doing (which you should do before any project anyway) and take responsibility for what you create. It’s so easy to wipe your hands clean of responsibility in a company, and just do what you’re told, but it just lets companies get away with infringing on basic decency.
The world today has started to devolve into one focused on big data, advertising, and making companies as powerful as possible. Developers have the power to create products to change that. Over the next decade or so, it would be incredible to see a shift leading to social innovation and entrepreneurship in technology that leads to a better quality of life for people. Just keep in mind, everything has an impact, no matter how small. It’s our duty as empowered individuals to leave the world a little better than we found it.