Facebook Ad’s Massive Design Bug

In mid-September ProPublica published an article proving Facebook’s advertising system helped them market to people who expressed interest in radical and racial topics:

“Want to market Nazi memorabilia, or recruit marchers for a far-right rally? Facebook’s self-service ad-buying platform had the right audience for you.

Until this week, when we asked Facebook about it, the world’s largest social network enabled advertisers to direct their pitches to the news feeds of almost 2,300 people who expressed interest in the topics of “Jew hater,” “How to burn jews,” or, “History of ‘why jews ruin the world.’” Published September 14th, 2017

Turns out it was technically possible to use Facebook ads to target users claiming to be anti-semitic. This same system could perhaps be used by Russians to target American Voters but that’s a whole other thing. Facebook’s ad system allows advertisers to type categories of users they’d like to target as an input field and then an automated matching system will check those user supplied categories (full or parital) with ones Facebook already had like this:

Aside from the moral and ethical problems of targeting users and groups this way, from a software perspective we might classify this as a design bug. Unlike a coding bug where the program behaves in a way the programmer didn’t intend, a design bug is when the program behaves in a way the programmer did intend but stakeholders don’t like it. In this example Facebook’s ad system was behaving as it was programmed but in a way that was HIGHLY questionable to many stakeholders like advertisers, advertisees, journalists and now federal authorities.

Design Bugs

Design bugs are some of the most common types of bugs developers (testers) find. They are are often caught by questioning the system, approach, design, requirements, et .al in a holistic way. In cross functional and agile teams I’ve found this is easier because you can take a step back to look at the bigger picture with many of the original decision makers. Going through the implications of those decisions as a mental exercise will often expose a bug or two that can be then addressed in the near future.

To help in questioning design bugs, try to:

  • Find a set of scenarios or circumstances that showcase your concerns
  • Make those concerns as costly or annoying as possible
  • Find places outside of the program where users will be impacted

For those familiar with the RIMGEN bug reporting mnemonic, you might notice some similarities, although with a different emphasis.

We (all software developers) introduce design bugs all of the time with the justification of it “works as designed”. Most times the design of a system is’t so damaging. Sometimes it is incredibly.[highlight]This lesson seems worth keeping in mind. [/highlight]

Other Things:

  • You can see Facebook’s response here.
  • Benedict Evans suggested this was more of an exploit and programmers (I say all software developers) should consider what happens when users are evil. This is probably a valuable approach. I often take the approach of “anything you allow me to do I will do”. In other words, give me enough room to hang myself and I will.

Accessibility improvements or the end of Audiobooks?

In January I started working for Laurel & Wolf and went from being a distributed employee working from home to driving daily into an office. The commute is roughly an hour each way so I began looking for ways to consume items from my reading backlog (books, articles, papers, etc.) so that I can utilize that lost time. In the past I’ve purchased Audiobooks but I was hoping to have more choices and/or not have to sign up for a new service like Audible.

Almost by accident I remembered Instapaper’s iOS app has text-to-speech support. (I consider this to be an accessibility feature although I don’t think it was designed with that purpose in mind.) With it, I’m able to create playlists of articles and have them read back to me like an audiobook as I drive. This has been particularly handy with those longer articles I’ve hesitated to dedicate time towards. Aside from bookmarked videos and code-heavy posts which don’t translate well, this functionality has been a huge win.

After a few weeks of Instapaper reading articles to me, I wondered if I could get my existing eBooks to do the same thing. Between the Kindle iOS app and iBooks, I had at 15 books sitting around ready to be consumed.

Turns out iOS has an accessibility feature called Speak Screen. (Below is a screen recording showing you how to turn it on.) Simply toggle it on, swipe down from the top with 2 fingers and a SIRI voice will read the screen for you. Speak Screen can turn pages and will continue reading until you stop it. Page turning works a little better in iBooks than Kindle but both are doable. Despite a few miss-pronunciations and the monotone-ness of its voice, the result is a free Audiobook from your eBook!

However, if phones and other IoT devices (like smart speakers) can dictate books and other text, does this replace the need for audiobooks? If I can get 80% of the value of the audiobook through my eBook why would I buy a different, more expensive product? True, audiobooks have better voices (professionals voice actors, tones, and style that may be hard for a computer to replicate) but is that enough to compete with lower priced eBooks that can be both?

The challenge with any good technological advancement is what long term impact it will have. Is this merely an accessibility improvement or the end of Audiobooks? In the short term I’ve solved my problem!