December 27th, 2007
After a series of annoying and unexpected outages on the Twitter network last week, my fellow blogger/Twitterer Michael Krigsman fired off an angry Twitter message (aka “tweet”) that said something along the lines of, “Twitter is not good enough for the Enterprise!” (Note the emphasis on “Enterprise” here, as opposed to “enterprise”; I’ll discuss that a little later.)
Krigsman has 304 “followers” on his Twitter network, and I have no idea how many of them saw this particular tweet of his (one of the 1,780 tweets he has posted, as of 5:15 this afternoon), or paid any attention to it. As for me: I’ve turned off the audible bluebird sound that chirps each time a tweet arrives (it was driving my dog absolutely crazy), so I don’t always focus carefully on the stream of tweets that scroll down a narrow window on the left side of my computer monitor. But I happened to spot the “not good enough!” tweet, and I immediately posted a smart-aleck response suggesting that he was wrong, wrong, wrong on this point. That led to a snarky reply from Krigsman, and the debate was on …
After a dozen reasonably polite, good-natured tweets, we both agreed that it was extremely difficult to establish a meaningful dialogue when our messages were constrained by Twitter to 140 characters. True, it does lead to more succinct conversations (e.g., the first three paragraphs of this blog posting could probably be deleted without anyone even noticing!), but for anything other than the typical tweets of “hey, take a look at this cool web site!” or “does anyone know how to reinstall Vista in less than 16 hours of frustrating work?”, Twitter is really not the ideal communications medium. So Krigsman and I agreed to continue our debate on our respective blogs, and I volunteered to make the opening statement. Here goes:
Background: If you’re already using Twitter, or if you know what it’s all about, feel free to skip this paragraph. But if it’s new to you, take a look at my recent blog postings, “Phooey! Twitter is NOT dangerous!” and “Twitter troops, Twitter armies, but no Twitter mobs — the essence of Twitter etiquette” for background information.
More background: I work as an independent consultant, so by definition, the roughly 100 people in my Twitter network (i.e., my “followers”) are not part of my “enterprise.” I think the same is true for Krigsman, and it seems to be true of all the other Twitterers whose tweets scroll steadily down my computer screen. But Krigsman specifically asserted that Twitter is not good enough to be used in the “Enterprise” — by which I assume he means reasonably large organizations, perhaps on the scale of General Motors or the U.S. Defense Department. The very notion of serious, hard-working business people “tweeting” at each other may strike some (including some veteran Twitterers!) as highly unlikely, but it’s important to note that such a scenario is being discussed. For examples, take a look at several recent posts by the CIO of British Telecom’s Global Services unit, JP Rangaswami: “A sideways look at Twitter in the Enterprise,” “More on Twitter in the Enterprise: Susan Reynolds and PEAple,” “Continuing with the theme of Twitter in the Enterprise: Twitter and Agile,” and “Thinking about Push and Pull and Twitter in the Enterprise.”
Even more background: “Good enough” may sounds like a casual phrase, but I devoted a whole chapter to it in my 1996 book, Rise and Resurrection of the American Programmer. Wikipedia provides a slightly different explanation in an article entitled “Principle of Good Enough” (not to be confused with the 16 different songs called “Good Enough,” or the song called “Good Enough is Good Enough,” which you can read about on Wikipedia’s disambiguation page), and it claims that “Ethernet, the Internet protocol and the World Wide Web are good examples of this kind of design.” To me, “good enough software” means a software system or product that exhibits a combination of price, features/functions, performance (CPU speed, memory, etc.), reliability/security/availability/stability, ease of use, and (schedule) availability that is … well, good enough … to satisfy the needs of some collection of potential users. When my Rise and Resurrection book was first published, the reaction from many European software engineers was “‘good enough’ is Yourdon’s apology for mediocre software!” But as I’ll suggest below, it actually represents a very careful, thoughtful, and delicate balance by the software developers, between several different constraints and objectives.
Okay, enough background and basics; so why do I think Twitter is good enough for the Enterprise? Well, because the contrary assertion (i.e., Krigsman’s original outburst on this topic) is usually based on the assumption that reliability/security/availability/stability is the most important characteristic of a software system or product, if not the only one worth discussing. Thus, you’ll hear comments like, “Well, maybe hobbyists and students would put up with this crappy consumer-oriented software product, but we IT professionals have to build rock-solid, industrial-strength software products for the organizations we work for!” The irony is that they often write such high-and-mighty statements in Microsoft Word, running on Microsoft Windows — which then crashes and displays the blue screen of death. Hey, seriously: if Microsoft Windows is good enough to be used so ubiquitously in every large Enterprise around the world, are you really going to pontificate about the occasional crashes and outages of a new product like Twitter?
Sure, if Twitter (or any other product) was being used to control nuclear reactors, or process all the financial transactions on the New York Stock Exchange, we would have very different expectations — or, in my language, our concept of what “good enough” really means for that application would be very different. But most of the mundane, day-to-day stuff that goes on in business organizations — from word processing to web-browsing to email to Twittering — doesn’t require a Mean Time Between Failure of 40 years. Most of the systems we build, and most of the software products we use, are not “safety critical” or even “mission critical.”
However, here’s an interesting observation, which I picked up from one of JP Rangaswami’s blogs listed above: the Los Angeles Fire Department set up a Twitter feed for real-time communication about the wildfires that swept through large portions of southern California in October 2007. I checked a few moments ago, in late December 2007, while writing this blog, and it’s still active today, even though the wildfires are long since gone, with 483 followers — who seem to be using it to post real-time messages about serious events the Fire Department needs to know about. Here’s one of the recent ones I saw this afternoon: “*UPDATE: Vanowen @ Valley Circle* 18 year old male with a fractured leg and minor head trauma w… Read more at http://tinyurl.com/26nr7s .” Now, I’ll admit that fractured legs and minor head trauma does not have the same degree of safety-criticality as a Three Mile Island incident; but it’s still reasonably serious stuff.
This illustrates one of several important points about the “good enough” concept:
- Whether a system is “good enough” depends on the available alternatives; apparently the 483 people following the LA Fire Department feel that Twitter is as good, if not better, than whatever other forms of communication exist (e.g., calling “911″ or some other telephone number).
- Our expectations about “good enough” typically change over a period of time, because we expect that software products (and software companies) will get better over time. So, what was good enough a decade ago (e.g., Windows 95) is not good enough today; and what’s good enough today (e.g. Windows Vista) may not be good enough tomorrow. (Whether Vista was good enough on the day it was released is something that the marketplace is still debating!)
- Along the same lines: just because something is judged “good enough” doesn’t mean that it’s perfect, or that we should refrain from suggesting improvements.
- The 483 people using Twitter to communicate with the LA Fire Department don’t care that I think Twitter is good enough, or that Michael Krigsman thinks it’s not. They think it’s good enough, and that’s what matters. (But it’s also important to know whether a substantial number of other citizens in the Los Angeles area decided that Twitter was not good enough. I’ll return to this point later.)
For those who still think that “good enough” is a sloppy concept, or an apology for mediocre software, let me suggest just the opposite: it’s a conscious, deliberate exercise of engineering tradeoffs. Think of it this way: from 50 years of computer science and software engineering research, we’ve accepted the reality that for anything larger than the most trivial program, we can’t prove that the program has no bugs. We can test the program until we run out of time, money, energy, or patience; but realistically, most programs will have bugs. And, sadly, most large programs will have bugs even after we’ve done a great deal of testing, and after we’ve put them into productive use. The question is how much time, money, and energy we want to expend, from the beginning of the development effort until the very end, to reduce the number of bugs to as small a number as possible. And that involves tradeoffs, because inevitably we develop our software with a finite supply of time, energy, and money. Every moment we use up, every ounce of energy we expend, every dollar we spend, could have been spent making the same program available sooner, or easier to use, or more rich with features and functions.
Yeah, yeah, I know that there are lots of good methods and techniques where we can kill several birds with one stone — i.e., develop software that’s cheaper and faster and less-buggy and available sooner. And I’m all in favor of such techniques, and agree that we should pursue them whenever possible. But at the end of the day, there will always be tradeoffs — and we’ll always have to listen to our customers (or “users,” or whatever else you call them) tell us what tradeoffs they are willing to live with.
So, as for Twitter:
- It’s free — you can’t do better than that, in terms of price, and it makes me willing to accept the occasional crash or hiccup. Would I be willing to pay, say, $5 per month for a more robust version of Twitter that only crashed once a year? Maybe, maybe not; that’s one of the challenges facing the Twitter development team.
- It has the basic features I need, for its fundamental purpose of supporting informal communication with a self-selected network of friends. Would I like more features? Well, yeah, I guess so. Would I be willing to pay $5 per month for a version of Twitter with a hundred new features? Maybe, maybe not.
- It’s simple, and easy to use. You don’t need a manual, you don’t need a training course. You don’t have to put something on your resume that says you’re a “Microsoft Certified Twitter User.” Seems good enough to me.
- It seems to have relatively simple security — i.e., you have to log in and provide your password in order to post tweets with your Twitter avatar/icon. But for all practical purposes, you have to assume that anyone on the Twitter network may see anything you post. That’s good enough for me, but presumably not good enough for the nice folks who work for the CIA or Homeland Security.
- As of 6:30 PM this evening, 708,886 people said (according to the Twitter directory) that Twitter was good enough for them — because they’re using it. As far as I’m concerned, the opinions of this massive army dwarfs whatever opinion Krigsman and I might have; on the other hand, it’s worth noting that 708,886 people is a drop in the bucket compared to the 55 million people using Facebook. Large as Twitter’s subscriber base may seem to be, it could also be argued that we’re the “early adopters” of the product — and it’s well known that early adopters are far more likely to tolerate bugs and crashes in a new software product, in return for the benefits they enjoy by using the product before their competitors.
Having said all this, I can imagine that the CIO of, say, General Motors or General Electric might conclude that Twitter is too unreliable and too buggy to use in their organizations; but chance are that their decision would be based more heavily on the perceived lack of security, or the old-fashioned concern that Twitter will encourage lazy, undisciplined employees to goof off by chatting with each other. But these same employees can Twitter amongst themselves via cell phone — whether or not the CIO agrees, approves, or is even aware of what’s going on. And I think that’s something that Krigsman and I, along with anyone else who is going to join in this debate, needs to keep in mind: in the long run, the decision about whether Twitter is good enough for the Enterprise won’t be made by the CEO or the CFO or the CIO: it will be made by the employees themselves.
Well, maybe that’s not true for Enterprises with a capital “E” — i.e., very large companies that can still impose their rules and regulations on the moment-by-moment activities of their employees. Long term, I have my doubts about the ability of even the largest, most heavy-handed organization to completely control the use of personal technologies by their employees; but I do realize that, at least for the next few years, employees working in highly regulated industries may never get the chance to decide for themselves whether Twitter is good enough. And so maybe it will turn out that, in the short term, Twitter will be judged good enough only for enterprises with a small “e” — i.e., small to medium-sized companies and organizations.
As noted earlier, just because Twitter is good enough doesn’t mean that it’s perfect — nor does it mean that we would tolerate today’s level of Twitter-service a year from now. And it doesn’t mean that Twitter’s army of 708,886 users wouldn’t abandon the service en masse if a competitor offered a product/service that was more “good enough.” People (and companies) may feel that they’re “locked in” to Microsoft, and thereby forced to continue using products and services that they don’t think is good enough; and to some extent, the same problem has already emerged with services like FaceBook, MySpace, and Google. For each of us individually, it’s a problem with Twitter only if we find a “Better Twitter” and then have to persuade our network of followers and followees to move with us to the new environment.
But for now — considering the (free) price, considering the alternatives, considering the many of aspects of Twitter that do work well — I think it’s pretty clear that Twitter is good enough, at least for small and medium-sized enterprises. And if you let the individual employees make their own choice, I think Twitter will be judged good enough for large Enterprises too.
But don’t take my word for it. Just keep watching the Twitter directory, and see if it continues to grow in size. That’s where the decision will be made …