Thunderclap, the Newsletter of Rolling
Thunder Computing
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
Feature Article: Brain Droppings, or Nobody Asked Me, But ...
Book from David Platt: Why Software Sucks (and What You can Do About It)
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."
Why Software Sucks (and What You Can Do About It)
ISBN 0-321-46675-6
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.
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.
Legal Notices
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.