Thursday, July 21, 2005

The search for storage Part II (Editorial)

Part II: Default Consistency In part I, I talked about that the object storage needs to be simple if it wants to even be implemented, not even talking about using it. I do alot of research and here is one of the articles called "The Anti-Mac Interface" http://www.acm.org/pubs/cacm/AUG96/antimac.htm which goes over alot of issues but the one I want to focus on is consistency. While complete consistency is quite impossible if the storage is going to be useful (if it was totally consistent, there would be no such thing as links because deleting an object would always remove its data) but thier are basic rules which are needed to be kept especially in the removal area. Having removing an object in one place, removing it from another does not sound like a good idea and many times I have created a shortcut to a file instead of a copy just to find it out when I delete the original. Ways to solve this is by using references where removing the last reference, removes the actual object. The problem with this is that current reference designs are very limited where links are either included in the reference count or not. WinFS is built this way and its not even released yet. The reason this is a problem is just a plain idea of categories. If I put references to a document in multiple categories and I want to delete the document, I dont want to have to remove it manually from all categories. A way to solve this is by allowing objects to list thier references and then just remove all references, but then you have lost the whole idea of references in the first place which is to allow data to exist in multiple locations shared. So you need a way to have references to references where you can have basiclly a tree of reference points so deleting the last reference of the original object will delete all the child references. The problem with this is that its not very consistent. Why should it be? That is exactly what the Anti-Mac article talks about. These known things like "the user should be in control" or "Metaphors" are what cause problems with this design. If I reference to a reference which references to a reference which references data, doesn't this sound a bit complex. Well yes... but I dont normally need this depth of referencing anyway but it would be useful if the time came up. How has this got to do with consistency? Not much... just kidding... The thing to understand here is that sometimes consistency can limit you. I am not saying that things like the OK & Cancel buttons should have different positions in different dialogs, I am saying that consistency should be a default, not a forcing rule. Think of it that consistency is the way a bar of metal should be, straight and strong but bendable if needed to be. This comes to the first word of the title of this editorial which is Defaults. Defaults are a very powerful feature. It allows a normal user to use an application or system and feel that its small and comfortable but if he wants he can unlock the power of the system when he needs that power. Users dont like modifying techincal options very much. They might do some tweaking for performance sake but most of the time the options you want to modify have a look & feel written all over them. These should be the default options displayed consistently throughout anything. Dont tell me I need to enter a port number if you know the one to use in the first place. I might want to use a different one, but since 'I might' is less important than 'I mostly use', the default should be non-technical options which make changes in the way I work, not in the way the computer works. This design should be applied to the file system as well. I dont need to care about providing a 'save' name to every document just because the file system is dependent on it. Names should be optional. If you are dependent on some unique name, create one yourself and allow the user to change it LATER IF he wants to. The same goes with the documents location. Dont force the user to search for a location if you know the most common one to use. No, Its not the last used location because probably I chose a different location because I made an expection, not because I wanted to make it the default next time I save a document. It drives me nuts when I save a new document on a floppy but next time I save another new document, it shows me the floppy to save it in! Floppy is a temporary storage and you dont create multiple documents just to save them to the floppy and if that is the matter, allow the user to jump to the last used location but the default should still be 'My Documents' or such. Defaults can be a great factor if a user is happy or not. Before you prepare to make a user make a decision or choose an option, think about if it is realy and totally neccessery to ask him. Its like these installation wizards which most of the time you press next, next, next, next, next and another 7 times next just to install a product where it should show you a single finish button with a great button called 'Options' on the side. Now wouldn't that cut the need for a wizard just to install applications.

No comments: