Book: The inmates are running the Asylum (Chapter 10)
Monday, April 30th, 2007This chapter is all about goals. His major point is that you should work to establish good goals. Goals are things that the user wants, an they might not spring to mind immediately. An example of a goal is to make sure that people don’t get humiliated by your software.
He then goes into a big spiel about the need for software to be polite.
page 161
If the software is stingy with information… the user will dislike the software and have an unpleasant experience.
If software is generous with its information people will not read it. Software should be stingy with information but should provide the right information.
page 163
Every bit of my PC’s personal software should work hard to remember my work habits, and particularly, everything I say to it
Fantastic. So software will now collect this information and make bad guesses based on it. Microsoft makes some seriously bad software because it is not able to identify why people are doing what they are doing. The end result of this approach would be a lot of code would be written and interaction is likely to worse.
page 165
Why can’t it [browser] use that idle time to preload links that are visible?
There are extensions to firefox to do this (eg fasterox). Most pages have a lot of links (hundreds) but only a few will be visited. However the general opinion of this is that it is a waste of bandwidth and it is frowned on by many webmasters and I believe many work to actively block this kind of access.
page 166
Software is always whining at me with confirmation dialog boxes and bragging to me with unnecessary little status bars
I thought you liked software to be generous with information.
page 166
I’ll click on the URL of something I’d like to see, only to get a nasty “404 link no found” error message. Why can’t the search engine periodically check each link to see if it still exists?
They do, you should try using google. However there will always be a difference between the time it last spidered the page and the time you click on the link. It would also be computationally prohibitive to check each link as it is displayed on the page.
page 167
When I use an application, I always maximize it to use the entire available screen. I then use the windows taskbar to change from one program to another. But the applications I run don’t seem to notice this fact, especially the new ones. I frequently tell them to maximize themselves even thought they should be able to see my preference is clear an unequivocal. Other users keep their applications in smaller windows so they can see their desktop.
The problem with this is that Alan is imposing his preferences for computing on other people. I personally prefer some windows to be maximised and others not to be maximised. For example I maximise browsers, editors and IDEs. I open Explorer, MMC tools, putty and winSCP in smaller windows.
In addition it would seem Alan does not know the software he is using. Almost all applications remember what size the window was when you last used the application and open to that size. So Alan’s requirements (since he only works maximised) and mine (mixed) are already met.
Alan then moves on to a case study about a product called Drumbeat. Drumbeat was an automatic code generation tool (using ASP or apparently other options) which also lets you edit the HTML visually.
page 177
The product has been successful, despite the fact that many other Web-site-building programs preceded it to market.
Well gosh golly darn Alan: The product doesn’t really exist any more. The domain now redirects to adobe and from some quick googling around, it would seem that drumbeat was bought by Macromedia, rolled into dreamweaver ultradev and in turn macromedia was bought by Adobe. So I guess it kinda still exists.
As it turns out I actually used the descendant of this product in Dreamweaver Ultradev days. The code generation side of things was horrible. You see this product highlights the problems that occur when you move too far a from technical grounding. Using this kind of product is making a rod for your own back. You get up and running quickly but you soon run into limitations with the tools to generate the code. When you look at the code your discover that it is difficult to modify, verbose and poorly performing. Put simply product like this do not scale well and anything worth much at all will need to scale.