September 9th, 2006
If you’re over 30, you’re probably not even aware that there was a major uproar over a new feature introduced into the Facebook.com social networking service, which allows your “connected friends” to be instantly notified of changes in your personal status — e.g., the fact that you’ve just gotten involved in a new relationship, or just broken up with your girlfriend/boyfriend, or just decided that pepperoni pizza is (or isn’t) on your list of favorite foods. And if you’re under 30, you’re probably one of the 700,000 Facebookers who complained vociferously within moments after the new feature had been added.
If you’re unfamiliar with the flap, take a look at Andrew Romano’s “In Defense of Facebook” summary, or Smart Mobs‘ Howard Rheingold’s “Facebook and the feed” blog, or any one of dozens of other articles out there on the Internet. But more important, take a look at the “open letter” blog entry from Facebook CEO Mark Zuckerberg, apologizing for having “really messed this one up,” and noting that “we have been coding nonstop for two days to get you better privacy controls.”
I’m a few decades too old to have a Facebook, so none of this has a direct impact on my life. As someone who is now up to his eyeballs in Web 2.0 products, technologies, and business strategies, I’ve been intrigued by the social and cultural aspects of what Romano characterizes as a “stalking” feature in Facebook. But as a long-time software developer and project manager, I’m also intrigued by the software engineering aspects of the Facebook flap, which I suspect that Mr. Zuckerberg and his colleagues may have overlooked to some degree.
Note that the 700,000 people who articulated their unhappiness about the new features weren’t complaining about a bug in the software; it’s not as if Facebook is telling people that you’ve just changed your preferences from pepperoni pizza to anchovy pizza, when it should have been the opposite. Nor are they complaining that the website is now slow and inefficient; and they aren’t complaining that the “feed” feature is hard to use, because it’s automatic.
Actually, it’s the “automatic” nature of the feed that caused the uproar: information about changes in your status were being sent to others whether you wanted it or not, and it appears that nobody bothered asking the user community in advance whether this was something they really wanted. You might argue that this was stupid, arrogant, or naive on the part of Zuckerberg and his cohorts; but it’s a nearly universal practice on the part of software companies — regardless of whether they offer a product on a PC/Mac platform, or a service on a Website. You can almost hear the conversation deep within the bowels of the software organization: “Hey, wouldn’t it be cool if we added feature X to the system? How quickly do you think we can implement it?”
Once upon a time, we had questionnaires and surveys and focus groups to find out, in advance, what features and functions the user community wanted in the next version of our product. Maybe IBM, Microsoft, Oracle, and SAP still do that; but a lot of the smaller company don’t have the time or resources for such a formal approach. Of course, there’s always the “beta” approach: inform the marketplace that there’s a beta version of the product/service that they can use, or not use, and then see what they think of it. Most software companies that I know are still following that approach, and it works reasonably well; I’m puzzled that Facebook decided to ignore it.
But let’s face it: no matter how hard we try, and no matter how smart we think we are, all of us are going to make a mistake, sooner or later. Coca-Cola did it with their “new” Coke a few years ago, and it almost killed them; and while Facebook’s approach was obviously a lot less formal, ultimately it was just a mistake. And probably the most impressive thing that Mark Zuckerberg did was to publicly acknowledge that he made a mistake; as his open letter says, “This may sound silly, but I want to thank all of you who have written in and created groups and protested. Even though I wish I hadn’t made so many of you angry, I am glad we got to hear you.”
The second most impressive thing Zuckerberg and his colleagues did was to fix the mistake, muy pronto. Of course, they could have retreated completely by removing the code, and reverting to the previous version of their software; but instead, it appears that they introduced some user-controllable options that should have been there in the first place — i.e., options that allow each Facebook customer to control which of his personal attributes (likes, dislikes, single/”involved” relationship status, etc.) can be shared, and which ones cannot. I don’t know how much code was involved, and I don’t know how well it was written, and I don’t know how well they tested it - but getting all of that specified, designed, coded, tested, and deployed in two days is pretty good. Well, in any case, it’s probably “good enough,” from the perspective of the 700,000 grumpy users who thought the whole thing was a bad idea.
Of course, two days might not be good enough if something like this happens again, or if Facebook gets a “cease and desist” order from some government agency that feels some privacy regulations have been violated. There may come a time when bugs, glitches, and undesirable features have to be fixed within one day, not two. Indeed, as we find ourselves living more and more in a real-time interactive Web-based world, it’s likely that there will be growing demands to fix such problems within a matter of hours … or even a matter of minutes.
And when this happens, it’s going to be the well-engineered systems that turn out to be the ones capable of such fast, flexible, dependable modifications. The products and services that have been created by frantic hacking (a phenomenon that was all too common in the Web 1.0 world, and which we haven’t seen discussed in any detail in the Web 2.0 world) are the ones that will collapse in a heap. And that should be fun to watch, if only from a safe distance…
