As I was making breakfast this morning, a social media post about why developers keep autoplaying videos on their sites was brought to my attention. There were some fair counterarguments in the comments section about the clients' wishes, and some less constructive arguments that can be categorized under the "Just say no!" category.
Prior to that splash of investigative "wisdom", I saw an existential question being posted on Hacker News. Putting aside how incongruous this last sentence sounds (not to mention the post), I asked myself what makes programmers think they are so special?
I know some programmers think of themselves as craftsmen or artists, as if their work is somehow a work of art. Newsflash, it's not. First of all, most artists become famous after they're dead, which obviously makes their ability to reap the rewards of their work particularly hard. Now imagine a world where legacy software becomes invaluable because the author or the entire team have just kicked the bucket. You can almost hear their colleagues saying "there will never be another to-do list like that ever again".
Unfortunately, these "artists" will never miss an opportunity to quote Spiderman's uncle, and say that we as programmers have great power and great responsibility. You can always say "no" to your clients and employers whenever you have to do something that hurts your delicate sensibilities. In theory, yes. In practice, it's a little bit different, but we're getting there.
Let's say you've done your homework and prepared and air-tight case for your employer that goes beyond the regular "I don't like this feature". Unless you present an alternative that makes financial sense to the business (finance is the Esperanto of the real world), it's either you, or the feature.
I know this sounds a bit cynical, but that's not my intention. It's also not an excuse to turn a blind eye on unethical behavior that should be stopped. It's just how the world works. Unless the thing you rebel against is not causing substantial damage to the business or its users in a way that harms the business, you'll be replaced with someone who can and will do it because there's rent to pay or just doesn't care.
If you really want to compare this line of work with another industry in hopes of determining your position in the hierarchy, please stop using arts, construction and manufacturing industries when there are far better analogies:
Drug Dealers and IT are the only people who call their customers “users”
It's not a coincidence. If you've never seen The Wire, I suggest you take a good hard look and see where you would fit in the supply chain or the society at large. My guess, programmers would be the ones who cut the raw product and mix it with various other substances to produce different versions of the product (or the beat cops/task forces if the first option is too denigrating to you), but that's just me. Either way, the programmer's impact on the company's policy is limited by design, so don't expect autoplaying videos will disappear en masse.
As to existential questions, neither your title nor your salary makes you special. Programmers are paid well because there is a high demand for a certain set of skills, and a low supply. It may change over time, it may not. In the meantime, find a hobby and relax. It's just business.
Top comments (2)
IMHO that's an excuse to feel less bad about doing bad things. (I was just following orders; I was just doing my job). Be a person and take responsibility.
I think a better analogy for what programmers should be (though I think this viewpoint is lacking) is that of a professional engineer. More specifically the ethics of being a professional: nspe.org/resources/ethics/code-ethics
Engineers are first and foremost responsible to the public. It's number one in their ethics:
A PE can actually be personally held liable for the designs they sign off on. Why do bridges stand for decades? Why do your outlets not burn down your house if you plug in too many things? Why does your car not fold like a tissue on impact? Because Engineers "Just say no!" to designs that would endanger the safety, health, or welfare of the public (and if they don't, they won't be an engineer for much longer).
This viewpoint is severely lacking though. Not just from programmers, but from the public and regulators. It takes a majority of self-policing to be viewed with that sort of professionalism (and that only comes by saying "No" and viewing your work as more than "just business", even if someone else takes your place to do it anyway).
Definitely true, though. We shouldn't fight tooth and nail over every little feature we personally dislike. For example, let's look at the anecdote in question of putting auto-play videos on websites:
So should a professional refuse to put auto-playing videos on websites in the name of ethics? Right now I think that's a little grey; it's hard to say that one definitely should, but I also can't argue that one definitely shouldn't.
100% agree with you here! (although, I'll admit to enjoying a nice salary...) I'm currently a "Senior"; hoping to become a "Staff" one day. So what? that doesn't make me all knowing. Nor does that mean I'm better or worse than any other person.
I too find the engineer track to be more of a slippery slope than a viable alternative, especially when we're talking about personal responsibility. Engineers are seldom personally responsible, unless they are individual contractors and it's in their best interest to be as good as possible to keep their business afloat.
However, once you have a large enough organization, the responsibility is shared and it's much harder to find the responsible party (if there is one in the first place).
The industries that deal in real-world, physical objects do have their guidelines and rules which companies should adhere to if they want to be declared legal (such as construction). These rules can change for better or for worse, depending on the current political climate, but there are limits, mainly physical.
On the other hand, software has far more degrees of freedom so I don't see it being regulated in this form any time soon. Self-regulation is a nice idea in theory, but it's tightly coupled to the company's profits, so it's oftentimes subjective.
The point is not to be emotionally attached to one's work, especially when one is an employee. Sure, you are responsible to do your job well and be ethical, but there is no point in beating yourself up about the company's decisions.