Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!husc6!lloyd!kent From: kent@lloyd.camex.uucp (Kent Borg) Newsgroups: comp.sys.mac.programmer Subject: Re: Checking for MF (was Re: Need some MF help) Message-ID: <370@lloyd.camex.uucp> Date: 12 Apr 89 00:24:09 GMT References: <1179@internal.Apple.COM> <2749@pegasus.ATT.COM> <1200@internal.Apple.COM> <1558@husc6.harvard.edu> <38341@bbn.COM> Reply-To: kent@lloyd.UUCP (Kent Borg) Organization: Camex, Inc., Boston, Mass USA Lines: 82 In article <38341@bbn.COM> levin@BBN.COM (Joel B Levin) writes: [In talking about detecting whether MultiFinder is running, whether there are icons along the right edge of the screen, whether the user is running a Finder replacement...] >Let the user set these values and their defaults on the basis of needs >or wants; don't presuppose what they should be based on external >circumstances which you might not be able to get right anyhow. > > /JBL >== >UUCP: {backbone}!bbn!levin POTS: (617) 873-3463 >INTERNET: levin@bbn.com Two comments. 1) Finder replacements seem more-and-more delicate to me. I hope MDTS is working closely with any brave souls who are doing this. 2) ``Let the user set these values...'' No, No, and No. When the Mac user interface was first being designed there were many tough questions: ``Should we go with A or B?''. Engineers have been faced with tough questions for years, and engineers are usually payed lots of money to find good answers. People accept that--nothing new. Now move to the field of user interfaces and people start popping up with the suggestion: ``Let the user decide!!'', ``I know, we'll make it user configurable!!'', etc. No, that's poor engineering. It is not legitimate to pass engineering decisions off to the end user. (I do dub thee ``Kent's Law of User Interfaces'' ~boing~) If you have an engineering problem (``How do I know whether there are icons I might be covering up?''), then come up with a well engineered solution (even ask MDTS for help), do *not* leave it for the user to fix. That is not a legitimate solution with other fields of engineering, it is not legitimate with the Macintosh (IBM users might get a macho buzz out of configuring their own software and hardware--but this is comp.sys.MAC.programmer). Wait! Before you all kill me for locking out the user, I certainly think there should be lots of room for end-user customizing. I'll even say ``as much as possible''. But think first. I can adjust the seat in my car--but I don't need to configure the door latches. I can set how brown I want my toast--but I don't need to reshape the heating elements. = If a user adjustable feature is a cop-out for making an engineering descision, it is a mistake. = If the user adjustable feature will make your gizmo dangerous, it is a mistake. (``Car Crash! ID=-1, Wheels fell off. Sorry, you should have configured to run with lug nuts `on'. '') The bottom line is that you should design a complete, well thought out, and useful product. The user should not have to finish building it for you. Whatever customization you can add within those bounds is great, but even then, stop and look: = What will customization `X' offer? = Is there a way we can give that to user's *without* forcing the user to play with options--sometimes you can get some great ideas this way. Remember, the Macintosh is simple to use, but getting it that way was not simple. Think very hard about user interface decisions you make. Be wary of little, incremental, one-off changes which make the larger design worse. They are one of the causes of `featuritis'. Partial exception: You can sometimes reasonably pass engineering decisions off to other engineers if they are your market and you are building an engineering tool--but even then don't use this as an excuse. Even engineers can sometimes spot that. Kent Borg kent@lloyd.uucp or ...!hscfvax!lloyd!kent