I’ll upvote this, because it’s worth reading–even if you really disagree with it, as I do.
In other disciplines, engineers wear an iron ring to remind them of their commitment to their profession.
I have, time and time again, railed against this comparison of software development with more traditional engineering. If you aren’t writing FEA software, pacemaker software, machine firmware, or whatever, you are almost certainly not behaving like a traditional engineer. If you develop on mobile or the web, you almost certainly aren’t doing anything with that gravitas.
We don’t have any of the technological maturity or sanity (some would say stagnation) of other fields of engineering. JS is a pretty good example of this. The lack of a meaningful accreditation and journeyman process is a good example of this. The lack of respect of our opinions by the business folks we work with is an example of this.
Those things don’t make us bad people, don’t make us less smart…it just makes us !engineers.
When I’m building a bridge, or an elevator, or a refinery, or anything else, there is a responsibility to the public at large to make society better. In turn, the public recognizes the work and pays dearly for it to be done correctly. That’s what an engineer does.
No such social contract exists with software developers for the vast majority of modern B2C apps. The users won’t, for whatever reason, pay for the value the software gives them, so of course we’re going to have to get it back somehow.
That reclamation of value? Through dark patterns and mining and advertisements and everything else? That’s what you’re paid for, at least if you choose to work in a sector where users don’t pay directly for what they get.
Our job as software engineers is to build things that make the world (or a corner of it) better, things that solve problems. But that’s not our only job. It’s also to be gatekeepers: to prevent ideas that we know are harmful from being realized. What’s the worst that could happen: we get a reputation for giving a damn?
I am also sick of this attitude. Maybe it’s just the Stockholm syndrome of the startup industry, the general psychopathic zeitgeist of the current business realm, or something else, but I absolutely cannot stand this idea that the developer on the line should be expected to make important decisions with the current hierarchies we subject ourselves to.
You are not paid to tell the business people that they’re being misanthropic and cynical in their exploitation of users. You are not paid to “make the world a better place”. You are paid to write code that works, on time, on budget, and to spec.
If you have significant equity in the company (which, let’s be honest here, statistically you don’t), then by all means you should be a standards-bearer for Good in what the company does, at least insofar as you believe it creates a better ROI for your equity. It’ll be a pain in the ass, it’ll be stressful, it’ll be an uphill battle (and you still may lose), but at least you have a dog in the fight.
If you don’t, though, you shouldn’t bother making a stand as the author suggests. Implement the bare minimum it takes to get the thing out the door and bump the metrics. You don’t have to be extra evil, but there is no reason not to go with the flow. You won’t make more money fighting things, and in fact may make less (because remember, you have no stake in the company’s success, because you have no ownership in it), and all the while you’ll incur extra stress.
If you want to be an activist, go write free replacements for platforms and open-source your software and educate users on how their laziness/thriftiness is setting us all up for failure. In the meantime, sit down, shut up, and do your fucking job.
Your responsibilities as a person do not begin and end with what you’re paid to do.
If you take your responsibilities as seriously, you shouldn’t work at places whose business model guarantees eventual convergence to the business methods the article talks about.
Remember, right from the start of the article:
This idea is bad because it trades a worse product for a better “business”: revenue, eyeballs, impressions, you know the drill.
And that’s the thing–if you are voluntarily working for a business, then your job is whatever is best for the business. The fact of the matter is that the companies that make the most money fastest tend to engage directly in the sorts of shenanigans the article decries–Google, Facebook, Palantir, Zynga, Linkedin, etc.
If you work at a business that competes in those same sectors, the business will eventually have to engage in those same practices or be pushed aside as the less scrupulous companies consolidate their market share.
Your customers will leave you because the alternative has no direct monetary cost to them, and then you go out of business and the customers get exploited anyways. Customers, because they are people, are not smart about such things.
I upvoted your rebuttal because it made it clear what you believe and its on-topic. That is appreciated.
But, I think you’re wrong.
That’s quite alright. We can all get along just fine even if we don’t agree. :)
Out of curiosity, which bit do you think I’m wrong about?
there is no reason not to go with the flow
How about being able to sleep at night? Why should owning significant equity be a precondition for moral behavior?
You are paid to write code that works, on time, on budget, and to spec.
I’m paid to help the business succeed, not to do what I’m told without thinking about it.
How about being able to sleep at night?
It’s a hell of a lot easier to sleep when you don’t dread fighting your biz team every following day. If you truly can’t sleep at night, quit the job–don’t bother trying to fix things.
What will help the business succeed is to extract maximum lifetime expected value from its customers, to grow its number of customers, and to finally extract maximum value from its intellectual property as is stops growing. Even more cynically, the success of the business–big picture–is increasingly only defined as obtaining a successful exit for the early shareholders (founders, investors, etc.).
In neither of scenarios does the tactic “don’t exploit your customers as far as you can get away with” enter the picture.
Again, if this bothers you, go work for a non-profit. or start giving away your work product. We don’t have to keep playing this game and supporting it. If developers actually walked off the job, and users actually were pushed hard enough to really scream vocally, the goals of this activist approach might be reached. In the meantime, though, “activists” like this just continue to contribute to these businesses, albeit less efficiently and at greater cost to themselves than they are otherwise capable of.
don’t bother trying to fix things.
An alarmingly defeatist attitude. “The customers still pay for the software even though it has this annoying bug, no need to bother fixing it. Just go with the flow. Do what you’re told.” While we might not want to say it’s a categorical imperative to take a stand against such things, wanting to do so and use your expertise and knowledge to make the business better in addition to more profitable is an entirely valid and reasonable position.
What will help the business succeed is to extract maximum lifetime expected value from its customers, to grow its number of customers, and to finally extract maximum value from its intellectual property as is stops growing
I’d say “don’t exploit your customers” is part and parcel of trying to extract value from them and grow. I donno about you, but I constantly see stuff like this http://users.livejournal.com/joshua_/61105.html aand this https://news.ycombinator.com/item?id=9667809 everywhere I look in this industry, every day. These things are not just bad for the customer. Hurting the customer hurts the business when those customers lose their patience and go somewhere else that doesn’t engage in these sorts of practices.
Again, if this bothers you, go work for a non-profit. or start giving away your work product.
This is the IT version of the “if you don’t like it in $COUNTRY then move somewhere else!” non-argument. It is possible to contribute to a team/product/company you don’t agree with on every point, and it’s also possible to try and improve these organizations from the outside. Going nuclear on every disagreement by walking out of the room is not how real humans interact to solve problems.
Edit to add more rambling things:
There have been a few times that I have been asked to do things that I thought were wrong for the business and wrong for the customer. In the vast majority of cases, the business ended up agreeing with me. In the other cases, there were a few that were outrageous enough I simply requested that the project be assigned to someone else. In every single one of those cases, the business was happy to comply and I’ve never been hounded by the biz team afterward. There have certainly been heated arguments, but when the dust settles, the decisions are made, and we move onto the next thing we’ve still been able to work constructively together with no hard feelings. Fighting to improve things doesn’t actually mean everything has to be a fight - in fact that’s almost certainly the wrong way to go about it. You build a good relationship with the rest of the people you work with and when the time comes to make your argument they’ll often listen because you’ve built that trust.
Perhaps I’ve been very lucky to work with these sorts of people in these sorts of environments. It’s entirely possible. But it seems to me I’m getting paid to contribute to the business - if I have a strong argument about a business direction decision it’s usually just as well received as a strong argument about a software design decision.
I’ve probably been very lucky, actually, and have worked with great people, so I feel pretty strongly that this is generally the right thing to do. One time things got so heated about a business decision that I had a screaming match with the CEO - probably not the best career decision. After we tired ourselves out being ridiculous, we came to a reasonable compromise, shook hands, and went out for a beer after work. Maybe that’s not how most (or even many) companies are, but wouldn’t it be nicer if it were?
Hurting the customer hurts the business when those customers lose their patience and go somewhere else that doesn’t engage in these sorts of practices.
Which is why everybody is leaving Google, Facebook, Microsoft, Twitter, and Linkedin, right? In enlightened droves?
The sad fact of the matter is that, using VC to undercut traditional revenue models and kill off competitors, modern B2C fast-growth startups can effectively use the thriftiness and shortsightedness of customers against the customers' own best interests. In doing so, they also salt the earth for any more reasonable business model.
Like, can we just stop pretending, in certain industries, that it is anything other than optional to even give the barest respect to your customers?
They’ll lap up whatever is put in front of them, seeking the littlest dopamine rush from new and shiny and free-because-dark-practices-funded. This is literally how Buzzfeed, Cheeseburger, Facebook, and all that work.
You know why it’s called a feed? Because the customers are increasingly dumb livestock.
Look, I’m not saying this because I hate users. I’m not saying this because I despise growth-centric B2C and social plays. Don’t get pissed at me for that.
We all want to live in a world where developers help users get the most out of life. We all want to live in a world where users are fully aware of what they’re getting themselves into, where companies are totally upfront about how they’ll treat and monetize their users, and where the bad actors are punished for acting badly.
We do not yet live in that world, and trying to act otherwise is just setting ourselves and our users up for disaster.
I’m saying these things because we can’t fix anything until we acknowledge deep down in our bones and heart of hearts that many of these ecosystems are deeply fucked in the head and the soul and, more importantly, that they have no incentive to ever act differently when developers are content to do anything but leave.
All true, but, just because dev X recognises that things are fucked, does dev X have to contribute to the endless perpetuation of its fuckedness?
I agree totally that the bullshit is pervasive and seemingly ubiquitous and that we probably have a 50-200 year battle to break it down. It’s fucked, and it’s going to be a long and thankless and more often than not seemingly impossible task because the barriers have been so long and so effectively established. But… [a] we don’t have to totally collude with it, even maintaining some form of internal distinction between “what’s good” vs “how shit is” holds value for the world, even if it’s just in keeping some flame of meaning and humanity alive; [b] just giving in and saying “fuck it, I’ll follow orders and not even question them” is kind of an issue with humans, and [c] dude, you sound like you need a vacation. I know you not a jot but I hear a lot of these arguments in my own head with some of the same conclusions and seriously, please, don’t give up. If smart people like you give up, if the intellectuals and the artists and the creators just give up and submit to the tsunami of shit eating the world, then we really are all fucked.
I see your answer as a providing excuses for make unethical choices. Basically you say “in the domain of web stuff, there is less money to be made if you refuse harming your users”. Is it not possible to make enough money without harming your users? Is it not possible to choose to work in a difference setting? You’re making it look like people are forced to work on harmful parts of web applications because “this is what they are paid for”, but we choose what we are paid for.
There are plenty of situations where people in practice do not have much choice of which life to live, which work to be paid for. Programmers have highly sought-after skills that can guarantee a job all over the world. We have lots of choices of what to do and by whom to be paid. If deciding to “go with the flow” makes you develop unethical programs that do harm, it is your choice that enables this harm.
I see @angersock’s answer more as a question of whether you’re doing more dedicating minimum effort to that work whose goals cannot align with what the developer thinks is right, while working on projects whose goals are aligned with what they see as good, instead of trying to swim upstream their whole life, and exhausting themselves for no reason; not whether the said developers should simply give in to the lethargy of the dissociative, dissonant world of profit margins. The needs and actions of a machine ran off capital will always be irrational in at least some way, since profit rarely means good for anyone but the person receiving it, especially as tangibility of those exchanges descends into the realms of attention and abstracts.
There’s no escaping that for a lot of people, I think. Not everyone gets a choice in going to work where elusive “noble profit” exists.
In the meantime, sit down, shut up, and do your fucking job.
Not fond of Snowden, either, eh? Or other objectors to authority?
Huh? No, Snowden was fine–least of all because he deliberately compromised the organization he worked for. He did not try to save it, he did not try to make it less evil, he did not fight a hopeless battle, and he seemed to have done it knowing full well what the personal cost to it was.
He did so when the stakes were far greater than himself: the freedom of the populace at large, not just a few extra bucks difference in monthly revenue.
He also worked for a .gov–that’s a somewhat different calculus entirely than what the author and I are considering here.
Your point is somewhat absolute, I can agree with a less absolute point.
As a team member I think you need to speak up if you think something is amiss. If some one in charge of the roadmap dismisses the idea, unless it is a foundational problem (like immoral or illegal) I agree you should not fight it if it is not explicitly your job to challenge that idea. The basic assumption there - often wrong - is that the first party is competent and has access to more information/wisdom than you.
However: If there are many such events and they often are foundational points for you, I suspect it will soon be time to vote with your feet and move to a different organization, since it seems that the core values of the organization (“culture”) clash with your own.
I can’t believe anyone would upvote you for advocating dark patterns. Disgusting. That is the same reasoning that drives all of the filth we receive in our Inboxes on a daily basis, and the various decisions that result in malware compromising people’s computers and generally making people’s lives miserable for the sake of your profit. Pure evil. Please go peddle this junk somewhere else, not on Lobsters.
You need to read more carefully, my friend.
I’m not advocating dark patterns in general, and frankly I find them quite abhorrent. I’ve seen them ravage one industry (games), and it’s been annoying watching the same thing happen elsewhere. I would appreciate it if you don’t put words in my mouth.
The point is very much in the quote you yourself picked: “at least if you choose to work in a sector where users don’t pay directly for what they get”.
My answer to this conundrum was to either move to a different sector, or to go and give away the software that solves the problem–because the exploitation of the users is built into the successful business strategies for those sectors.
Evil is profiting off of the misery of others.
This statement you linked to is pithy, but ambiguous. It is unclear whether you mean profit from the creation, maintenance, or cessation of misery is evil.
I’m not advocating dark patterns in general, and frankly I find them quite abhorrent.
Good to hear that, but I hope you can see how your statement could be interpreted as though you were.
The first two (creating and/or sustaining misery for the sake of profit). The latter is a good thing. Please do profit from the cessation of suffering, I will send you kudos for doing so. Just realize that you’ll be selling cures, and selling cures means you will be destroying your own business as you go, so you’ll have to continually find new things to cure.