Thunderclap, the Newsletter of Rolling
Volume 10, Number 1, Winter 2009
In this issue:
Blatant Self Promotion: David Platt's Training Classes
Prism, the Composite Application Library and Composite Application Guidance, ONLINE March 2-4
Microsoft Insurance Value Chain for ACORD, ONLINE Jan 29
New Class, "Developing Software That Doesn't Suck", now available at your company, on your schedule, customized to your needs
Feature Article: Brain Droppings, or Nobody Asked Me, But ...
Book from David Platt: Why Software Sucks (and What You can Do About It)
Annabelle and Lucy's Latest
Instead of one huge article, I'm writing small ones about a number of things that have been bugging me lately. I hope you’ll send me email to tell me how they help you, or don’t.
When You Can't Undo, You Can't Afford to Confirm Either
Why is anyone still putting confirmation boxes in their code? "Are you sure you want to do this? Really sure? Really REALLY sure? I remember when my CompuServe (remember them?) email program used to ask that before deleting a message. And it wouldn’t allow multiple deletions, either, I had to answer this question for every single message. We should have gotten past this years ago, but I still see new apps today with it, probably more than half of them.
What should replace it? Undo, of course. Outlook doesn’t confirm the deletion of an email message because it moves to the recycle bin, where you can get it back again in case you change your mind. That’s much better than confirmation, because no human being is ever completely sure about anything. Ask anyone who’s ever been married. See my MSDN End Bracket article on this topic at http://msdn.microsoft.com/en-us/magazine/cc163835.aspx
That still leaves us with the small but critical set of operations that can’t be undone -- amputating a limb, for example, or launching a nuclear first strike. Does that mean we should be using confirmation boxes here – “Are you sure you want to trigger Armageddon? Really sure?”
On the contrary. Precisely BECAUSE these operations are destructive and irreversible, and BECAUSE it is extremely important that the user understands what he is about to do and really intends to do this thing and isn't making a mistake, we need to find another way of solving this critical problem. Because confirmation boxes don't solve it – the user is so used to seeing them that he cruises through then on autopilot—and we need it solved.
The “confirmationists” ( a new word I’ve just coined, and a highly derogatory one) shout back: “Well, if the user doesn’t pay attention to the confirmation box, then it’s just his own stupid fault. Didn’t he read the manual? He just has to learn.” There’s no excuse for this sort of sanctimony. Anyone who says this is demanding that a human being become less human and more like a computer. It’s like King Canute trying to hold back the tide by royal decree, with the same results. To do so is to commit malpractice.
The profession of surgery is starting to take the humanity of its surgeons into account – and you know that if surgeons are willing to admit to being human, the problem is serious. You don’t always get a good outcome in surgery, but there are some adverse events that ought NEVER to happen. Wrong-site surgery, operating on the wrong part of the patient is one of these, even though it’s the source of my all-time favorite good news/bad news joke: “The bad news is that we amputated the wrong leg. The good news is that your other leg is getting better after all.” (I know: sick puppy, Plattski, mucho sick puppy.) Does this mean that every scalpel should pop up a little box saying, “Are you sure?” every time it approaches a patient?
No. The American Association of Orthopedic Surgeons now requires and provides standards for the marking of surgical sites before starting surgery, as you can see on their web site at http://www.aaos.org/about/papers/advistmt/1015.asp . Instead of just being told, “Make sure that you cut off the correct leg, you dimwit,” the surgeon is told to mark the correct site of the operation with indelible ink before the surgery. The surgeon should sign the site with his own initials so that he knows that he’s looking at the right patient. (I suspect that a wrong-surgeon incident would be even more embarrassing than a wrong-site incident.) The patient should participate in this process if possible, and I’ve seen standards in which the patient or responsible party also signs the surgical site. At the time of surgery, different team members verify the site markings against the patient records, and sign checklists verifying that they have done so. This multiple-step, multiple-party approach actually does prevent errors, or catch them before they cause injury.
In surgery or in software, simply asking, “Are you sure?” provides the worst possible sense of security – a false one. We go into more detail on this question in my new class, “Developing Software That Doesn’t Suck”. Click here for details.
Computer Science Versus Software Engineering
As computer science pioneer Edsger Dijkstra is credited with writing, “Computer science is no more about computers than astronomy is about telescopes.” While producing the correct functioning of computers is the main goal of this enormous industry, it receives far less attention in academia than it deserves.
For example, a large and famous university that I won't name offers a computer science major but not a software engineering major. Yet almost all of its graduates wind up working in the software industry, e.g., producing or attempting to produce the correct functionality of computers. All computer science students at this university are required to take a course in compiler design. This makes about as much sense today as teaching every single carpentry student to make his own hammers. Back in the depths of the history of both trades, hundreds of years ago for carpentry and dozens of years for programming, this might have made sense. Perhaps a case exists to maintain this requirement as a mental exercise, although I've usually found that the term "mental exercise" usually indicates someone teaching something that he knows is obsolete but who doesn't want to lose his livelihood and have to retrain for to teaching something useful, for example, today’s teachers of handwriting. There is certainly a place for teaching this topic, to those interested in becoming toolsmiths or to masochists, and of course we want the makers of compilers or hammers to be good at what they do. But to force every student to learn it is a misallocation of resources belonging to both the university and the students.
OTOH, this university does not require computer science majors to study user interface design, and its course on this topic is an obscure elective taught only in alternate years, by a professor whom the students hold in low regard. Very few of today’s developers will actually build compilers. But almost every developer will someday put some sort of information in front of some sort of user, and should be taught at least some notion of how to do it correctly (and that doesn't mean MessageBox). An institution that forces students to waste their time learning the former, and discourages them from learning the latter, is failing in its educational duty.
It is time for software engineering in academia to split off from computer science, as computer science itself split off from mathematics perhaps thirty years ago. Computer-related curricula should be redesigned so that after Introduction to Computer Science 101 and 102 in their freshman year, students would choose whether to pursue an engineering track based on design and production, or a scientific track based on research; as prospective electrical or mechanical engineers separate themselves from physics majors after freshman physics.
Tools That You Crave
A tip of the Plattski cap here. I am noticing as I write this newsletter in Microsoft Expression Web that my productivity seriously depends on certain features in MS Word, to the extent that this will probably be the last semi-serious piece I write in the former application. For example, I really miss Word’s automatic correction, when i make a mistake such as writing 'hte' for 'the', or failing to capitalize the second word 'i' in this sentence. “What is this silliness? I shout at Expression Web. “A red underscore? To tell me I misspelled a word? You know what I mean, dimwit. Just fix the damn thing like your brother does.” But it doesn’t, and I find that it breaks the flow of my writing. I also miss the way Word instantly shows a floating format toolbar right at my mouse pointer when I highlight a block of text. I don’t have to move my mouse to the top toolbar to underline or italicize.
You know that UI designers have done a really good job when you don't notice them helping you, but only notice their absence. In fact, I missed Word’s ease of use so much that I switched back to it after I wrote the last paragraph. And if you think about the features that I most miss, you’ll notice one unifying thread: they don’t make complex and sophisticated things possible. They make simple things simple to do. They make software come closer to Just Working™ . I really loved the way I just typed (tm) and word automatically converted it into the capitalized superscript. See what I mean?
Until next time, as Red Green would say, "Keep your stick on the ice."
New Book from David S Platt
Why Software Sucks (and What You Can Do About It)
Sample Chapter Online at www.whysoftwaresucks.com
It's finally out! Anyone whose spoken with me in the last couple of years probably got an earful about the latest bee in my bonnet, the book entitled Why Software Sucks. I’m sure that I’ve inflicted sample chapters on just about everyone I know.
It's gotten a storm of publicity, primarily from a Reuters wire service article that ran during the first week of the new year. It was picked up in the electronic editions of such publications as the such as the New York Times (http://www.nytimes.com/reuters/technology/tech-software-platt.html) , Fox News, (http://www.foxnews.com/story/0,2933,241578,00.html), and PC Magazine (http://www.pcmag.com/article2/0,1759,2078820,00.asp).
I've started a new blog based on it, at www.suckbusters.com . It's dedicated to the notion that software shouldn't suck. Instead, software should Just Work.
The title was originally my idea, but I also love the subtitle, suggested by my editor at A-W. I’ve always thought that the right subtitle can really make a book. Like the 60’s bestseller Everything You Always Wanted to Know About Sex (But Were Afraid to Ask). Or Werner von Braun’s autobiography, entitled I Aim for the Stars. Humorist Mort Sahl suggested that its subtitle ought to be, But Sometimes I Hit London. (If you don’t get that last one, go look up von Braun online. As Tom Lehrer famously sang about him in the sixties: “ … A man whose allegiance is ruled by expedience … ‘Once the rockets are up, who cares where they come down? That’s not my department,’ says Werner von Braun.”)
This is my first book aimed at end users, not programmers. Early returns from this market are highly positive. My barber, the librarian at my local public (dead tree edition) library, and the contractor who built my house, all report that early chapters are informative, entertaining, and easy to read.
I’m still working on the “what you can do about it,” piece. If you have any thought as to how ordinary users can make their voices heard, I’d like to hear them. Use the contact info link of this web site, if you don’t already have my email. Thanx.
Annabelle And Lucy's Latest
And now, the moment for which I know you've all been waiting -- the pictures of my two girls. Lucy just turned 6, and Annabelle is 8 1/2. Whose idea was that, I ask you? Certainly not mine.
Annabelle insisted that I teach her to play chess, which I did. She hasn't beaten me yet, though she probably will soon. After a visit to the Madame Alexander doll factory in New York City, she announced that she wants to go to college at the Fashion Institute of Technology and become a doll designer.
Lucy has been watching the Olympics on TV, especially (you guessed it) the gymnastics. She's been playing Olympic gymnast with her American Girl doll, using the kitchen stool as an uneven parallel bar set. She has also learned chess, and when I wasn't paying attention, she actually beat me twice, albeit with advice.
The thought of these brilliant girls choosing my nursing home scares the living crap out of me.
Thunderclap is free, and is distributed via e-mail only. We never rent, sell or give away our mailing list, though occasionally we use it for our own promotions. To subscribe, jump to the Rolling Thunder Web site and fill in the subscription form.
Thunderclap does not accept advertising; nor do we sell, rent, or give away our subscriber list. We will make every effort to keep the names of subscribers private; however, if served with a court order, we will sing like a whole flock of canaries. If this bothers you, don't subscribe.
Source code and binaries supplied via this newsletter are provided "as-is", with no warranty of functionality, reliability or suitability for any purpose.
This newsletter is Copyright © 2009 by Rolling Thunder Computing, Inc., Ipswich MA. It may be freely redistributed provided that it is redistributed in its entirety, and that absolutely no changes are made in any way, including the removal of these legal notices.
Thunderclap is a registered trademark ® of Rolling Thunder Computing, Inc., Ipswich MA. All other trademarks are owned by their respective companies.