What I can believe: Engineers at Facebook were micromanaged into dismissing issues such as users' batteries being drained.
What I can believe: Engineers at Facebook were micromanaged into dismissing issues such as users' batteries being drained.
Engineer A: Hey how would we know whether loading this image as a .webp vs a .jpg would perform? Our lab testing is one thing but the different hardware out there vastly differs from phone to phone -- we need some data on the whether the average phone has enough optimizations for one versus the other.
Engineer B: Oh, what if we just run a background task on some of the phones that tries loading an image that we don't show, just to get the metrics?
Engineer A: Hmnn, that could work, we could load just one image across some small % of the user base to get a representative sample and report that data to system X so we can get some statistics and make heuristics based off of that.
Ethics is not a strong suit/required reading for software engineers, so not every engineer will read the above and detect something wrong. Hell, running experiments on wide swaths of users without consent isn't quite above board ethically either, but we've got a whole technological trees and industry dedicated to it.
Most of the time the person with enough ethics knowledge to realize there's a problem here is more incentivized to alert legal (so they can add it to the EULA/ToS that users don't read) rather than stop the behavior.
I suspect many engineers could read the conversation above and not think there was anything wrong there to begin with. And of course, once X teams across Y companies start using this, we've got a problem.
Note that I use engineers for all the roles on purpose -- the idea that it's only non-engineers doing all the sketchy shit is a deflection of responsibility, I for one am pretty proud of George here -- he's turned down what is very likely a lot of money to do the right thing. We can only guess at how many do not take this route.
[EDIT] I want to note that I do not put myself above this conversation -- being able to recognize that this is wrong immediately is not some innate skill that everyone has, it has to be reasoned about, and often where to draw the line comes down to widely-enough-held social mores/morality.
For example, I run ethical ads on my personal blog -- I know that ads incur unnecessary load on user machines that visit, and in-turn burning unnecessary battery on visitors' machines. Am I the same as Facebooks' engineers that work on this system? Probably not, but explaining that completely (and convincing yourself or anyone else) is more complicated -- maybe it's only a matter of degree.
On the other hand, if I ever decided to throw mine on the toilet and work for a company that manipulate people, and perform mass spying on them, then I would go all the way and just do things like this.
You can make a negative case for any of the large tech company.
Yes you can, but it's a spectrum. Microsoft abusing their monopolistic position to strangle competition and adding adware and spyware in an OS people pay for is ethically and morally bad, but is much less bad than Facebook profiting from and doing nothing to stop an actual active genocide. Facebook is by far the worst, ethically and morally, offender of the big tech companies not actively involved in the military industrial complex.
https://en.wikipedia.org/wiki/Invisible_hand
(should also help to obtain the historic criticism of it that has materialized since back then)
It's important to assign some responsibility to those who have/had the ability to prevent it, but it's not clear to me that FB could have prevented it.
In close races like the US presidential election it's plausible that FB was the deciding factor, but places where genocides happen are not known for close races.
And to be clear, it's not like FB couldn't have done a lot more with a lot less money to filter out certain kinds of content, but they intentionally wanted some kind of neutrality, right? And that's probably noble (and the maximally harmless thing) when it comes to - let's say Norwegian politics - but not so great in a lot of other contexts. However engaging in moderation with the intent to prevent social ills is very non-trivial.
To me it looks like they realized they were in a hard place and then basically bailed out from the hard problem and instead went all in on trying to make as much money as they can.
That second question is much more painful to ask if you’re an engineer at a company like this, because it means there’s no changing it from within.
Facebook is designed fundamentally to be a social graph, a representation of people's lives, blablabla. the more time people spend representing their lives on FB, the more attached they are to their online persona/profile/connections (and the dopamine rewards through likes and engagement), the more money it makes.
misinformation bubble? who cares. if that is what people want to represent, FB provides it, sure, but it's not what it is designed for.
There are good things you can do at fb too, e.g. expand the positive areas of FB or work on removing the negatives.
To elaborate, I said “work on removing the negatives”. If you won’t work at fb, others will. But when you work there, you actually have the power to change the place so that they do less of the stuff that you described.
If a 'unit test' is "high CPU load during usage" they kill people though at their scale just by the fact that people can't call 911.
In the same way that everyone who drives a car is a murderer, a ridiculous appeal to emotion.
There's also the question of how much of a lab rat people really consent to being -- given that you can't really know what experiments will be run ahead of time.
What are the disclosure rules? What is an experiment versus what is not? What is legal to use to experiment on people with? This is the kind of place regulation is normally present, and it hasn't caught up yet.
> The document included examples of how to run such tests. After reading the document, Hayward said that it appeared to him that Facebook had used negative testing before. He added, "I have never seen a more horrible document in my career."
Testing a higher-compression image format might effectively be testing relative behavior between an experiment arm with higher data usage and lower battery usage and an arm with lower data usage and higher battery usage. I.e., "testing draining users' batteries."
There are too little details in the blog post or the original article to really figure out what's being discussed.
Hey, Apple is now blocking our ads. They will eat our lunch. What can we do about it?
Hmm... Let's drain the batteries of iPhone users faster. They will switch to Android.
What if we get caught?
We'll just make up some story about A/B testing. Oh and drain some Android user's batteries too, for plausible deniability.
Great plan, implement it!
Not caring about battery use? Yeah sure, even the enlightened developers of HN rarely give a crap about that.
Deliberately draining battery to force people to replace their phones? C'mon.
They're not replacing their phones over this, but for their next phone they're choosing an Android. For battery reasons. Fastforward 2-3 years and most of these folks are switching (with renewal of subscription).
My main question regarding such a scenario: could they find the right balance, ie. drain the battery enough to annoy, but not so much as to attract investigation that'll definitively identify facebook's app as the culprit?
That I doubt.
From a different POV you’re intentionally worsening the experience for 1% of users. Is this a negative test? If so, is it morally different?
From the article:
I said to the manager, 'This can harm somebody,' and she said by harming a few we can help the greater masses. Any data scientist worth his or her salt will know, Don’t hurt people,This is an AdTech business. They’re not curing cancer. How far up your own ass do you have to be to say that?
PS. This does not excuse shitty behaviour of course.
Of course, if you ruin battery life for hundreds of thousands of users... you're likely to hit at least one user who really would have needed that battery.
I think lots of companies already do stuff like this, for example, Microsoft rolls out updates to smaller groups before doing larger deployments. Google Chrome tests some experimental features before a full deployment.
It would be better if there was simply an opt-out of being part of this testing group. If the user goes to the effort of opting out, then they likely have a good reason for this. Also maybe Facebook also doesn't want to run this on devices with already bad battery performance for example.
Maybe I'm being too cynical, but my interpretation was that they wanted to know e.g. how many would uninstall the app if it consumed more power. Would make business sense to test this, and would be logical to call it "negative testing": do something negative to the user and see if they react.
What's odd to me is that they don't seem to have been comfortable just getting test results from users whose phone battery state is at the desired level naturally (there's no major ethical issue where you, the tester, haven't caused the low battery provided you're not subsequently taking battery down to zero)
It's not clear to me why they wouldn't run a few tests for a few seconds across many/all of their hundreds of millions of users so the battery drain would be unnoticeable, rather than enough on a single user where it would be noticeable.