Should software development and user Interfaces model to the following statements:
Given my set of keys and a description of where it is, almost anyone I work with could find my car, start it up, and drive it home -- without a user manual.
So you're saying it has an automatic transmission then?
Not necessarily, the stipulation was based on people the car owner knew, and that they did not have access to a user's manual.
Would reading the user's manual actually help someone drive a clutch? Must be a far better manual than when I learned to drive.
This has a hidden assumption - that the task for the computer was one as common and well-represented on TV, in books, and movies, and seen being done by others, as driving is. Even 2 year-olds know that the steering wheel makes the car go left and right, and 9 year-olds know about brakes and accelerators. Very few computer tasks have that level of support in society.
Ever read the user manual for an elevator, or for the latest video game?
And when you want to drive a car legally you have to be trained and licensed. You don't need manual when you get training.
So if one receives training and becomes licensed, or the manner and mode of software operations are universal and well exposed, you don't need a manual. I would add a third: If you wrote, compiled and distributed the software, you don't need a manual.
What about the other cases:
If you don't receive training - and you have to learn on your own (as many who use software and program can attest)
If you are not licensed (how many ComputerProgrammer?
utilizers, and JustaProgrammer
s are licensed, let alone formally trained?)
Not to mention the buyer who is considering whether or not to purchase, integrate and utilize the product?
While it might be easier for a developer to dispense with the manual and tell the eventual user to just press the button to install. It is never that simple. What if the button I need is on another screen or becomes visible after I perform some other action? Wouldn't a User's Manual be helpful if not essential (given the product support nature and costs?). Particularly if you didn't write the software or are not conversant with all of the methods, libraries, components, the environment and inter-relationships of modules, classes, etc.
Given that most users never read the manual, the "what ifs?" don't seem to be that important. Try to dispense with the user's manual.
Given that some users find the user's manual essential when the interface and help mechanisms fail. Try to dispense a user's manual.
Is this behavior due to basic human behavior, or decades of bad manuals? Or perhaps, it is due to good software?
Microsoft has pretty much dispensed with printed user's manual with Software installed on computers before purchase. Is this because it is such good software? Or is it something else?
Is this page a subtle defense of SelfDocumentingCode
? No, it is intended to point out the need for user manuals for the intricate, complicated and inter-related software transactions and maintenance required on modern computers. If all you have in your hand is a CD with a title on it, do you think that is enough? I don't. Try installing a new printer under any version of Linux without a User's Manual, even with it you will have problems with the installation.
is for programmers who have source code and will compile or interpret to execute. Those of us who use binaries and executables want User's Manuals (preferably written by professional writers and user aware professionals). Some maintain that the problem could be solved within the same time and cost constraints by fixing the software rather than carefully documenting how to use the flawed software. They maintain that at best, a User's Manual should be viewed as no more than a short term patch, but are often viewed as the long term solution. There is truth to both perspectives, though even the best and most intuitive software will likely require some sort of manual. Software almost universally has a range of functions far greater and more varied than an elevator for evample, which can be easily operated by a novice with no instruction.
Even complex software can be without a manual. Unlike physical machines, manuals can be integrated into software. In great software, the manual and the functions are as one. However: Writing software intuitive for anyone obviously takes much longer than making it intuitive for experts. Don't confuse the two.