Don't Get Me Started - Fundamental Laws
By David S. Platt | May 2010
Whenever I find a program or Web site that sucks, it’s invariably because the developer or designer forgot the user’s goals and started embellishing the program for its own sake. That violates Platt’s 3 Laws of Software. Like the 3 Laws of Thermodynamics, they’ll turn around and bite you if you do that. My laws are:
- Your software has zero value in and of itself. Nothing. Nada. Zero point zero zero. The only value it ever has or ever will have is the degree to which it enhances the happiness of your user in some way.
- Software can increase users’ happiness in one of two ways. It can help a user accomplish a task that she wants done, such as paying her bills or writing this column. Microsoft Word is an example of this type of application. Or, it can place the user into a state he finds pleasurable. Games fall into this category, as does Skype, with which my daughters make video calls to their grandparents.
- In neither of these cases do users want to think about your computer program. At all. Ever. In the former case, she wants to think about the problem she’s solving: the wording of the document she’s writing; or whether she has enough money to pay all her bills, and which unpaid creditor would hurt her the most if she doesn’t. Her only goal is to finish the task quickly and successfully, so she can get on with her life, or at least with her next task. In the latter case, the user wants to enter that pleasurable state as quickly as possible and stay there as long as possible. Anything that delays the start of his pleasure, or distracts him from it while he’s enjoying it, is even less welcome than the interruption of a work task. My parents want to see and talk with and gush over their grandchildren. Any attention that the program diverts to itself is a negative in either case.
To summarize: Users don’t care about your program in and of itself. Never have, never will. Your mother might, because you wrote it and she loves you, and then again she might not; but no one else does. Users care only about their own productivity or their own pleasure.
Donald Norman discussed this phenomenon in his excellent book, “The Invisible Computer” (The MIT Press, 1999). But I see a better example in the role of sports referees. They set and enforce the context (rules of the game, operation of the program) for interactions between the parties (the two teams, the user and the business problem), while ideally taking no discernible part in it themselves. Retired NFL referee Jerry Markbreit writes of an early mentor, who said (emphasis added): “Gentlemen, this is the biggest game of the year. Maybe the biggest game in a hundred years. We must do an outstanding job today because we don’t want anyone to remember us. We must work this game so expertly that, later, it will seem as if we weren’t even there.” That should be the goal of our programs as well.
To guide the industry toward this goal, I announce the first annual Plattski Awards, for the program or Web site that does the best job of implementing Platt’s 3 Laws of Software, making its users happy while demanding as little attention as possible for itself. An example is the Carbonite automated backup program, about which I’ve written. I’d give it the nod over Mozy, its nearest competitor, because Carbonite requires somewhat less thinking and configuration.
Go to Rollthunder.com and tell me about applications or Web sites that best accomplish this goal, or that fail most spectacularly. I’ll give out gold(ish) and silver(y) medals to the best, and tin(plated) ones to the worst, in my own cranky and opinionated judgment. Do not send products: all testing will be conducted with publicly downloadable versions. The deadline for submissions is three months from the publication of this column. I can’t wait to see what you come up with.
David S. Platt teaches Programming .NET at Harvard University Extension School and at companies all over the world. He’s the author of 11 programming books, including “Why Software Sucks” and “Introducing Microsoft .NET.” Microsoft named him a Software Legend in 2002. He wonders whether he should tape down two of his daughter’s fingers so she learns how to count in octal. You can contact him at rollthunder.com.