I'm sitting in a half-day seminar being given by FotM (Friend of the Magazine), David Platt. The topic is "Programming the Composite UI Application Block." And herein lies a lesson for attending conferences.
When you see the title of the seminar, it seems a bit dry. Important information, perhaps, but not the most engaging topic on earth. However, it's also being presented by David, who is a very engaging speaker. He knows what he's talking about, he sidetracks for the benefit of the attendees, and he gives very clear demos.
A couple of years ago, David came by our offices and told us about a project he wanted to take on, a book called "Why Software Sucks." He's been around long enough to understand why it sucks, and the idea was picked up and published this winter. He'll also be giving a keynote tomorrow about sucky software. But unlike the rest of us, who just gripe about software problems and file an occasional bug report, David is actually doing something about it by reaching out to the rest of us.
A key quote from his current session:
Programmers love flexibility and configurability. But in production, everything should be locked down - your user isn't you, and flexibility leads to problems. I get calls in the middle of the night when software breaks, and the client says "I didn't touch anything! I just..."
In other words, an end user touched the flexible configuration and broke it. As you're designing your software, ask yourself what options a production user really needs, and what can just make things worse.
- Josh T