Yesterday we discussed the first simplicity law: Reduce and went over one example of its use within our feature development.
Today let us talk about the second law: Organize. Organization is a word that I personally dread since I cannot seem to keep my house, my car or my office organized long enough for me to reap the rewards of its simplicity. Last year, I took the Dale Carnegie course and one of my two-minute speeches outlined a plan to get my office organized. The plan included doing something small every day, either throwing a paper out or stacking one of the books, etc. I have to admit that after four months, my office looks a lot better but I think I have one more year before it is truly there. Yes, it takes that much time to organize an 8×10 room.
In software and feature design this law is mainly about asking the question: what goes with what? One of our main organization culprits today is our context menu, which seems to grow with every release. In one hand it makes sense, we got more features, more integration points and the user always wants to have these features accessible; the context menu seems like a perfect place. On the other hand, you end up with a menu with more than 25 options that is almost the entire size of the document window.
How do we balance these two customer needs, how do we embrace simplicity through proper organization? In my opinion the answer lies in combining groups of things that go together (what goes with what?), and/or abstracting things to a higher level in order to combine items or functionality within one concept. A very recent example that combines both of these solutions is the Office Ribbon. Yes I know, you either hate or love the ribbon; but since I am in the love camp, I am going to side with “it was a great solution”, even if you cannot find the Print button at times. The ribbon provides an abstraction by using tabs that speak about the properties or actions of the document and its artifacts. The tab Insert is really an abstraction of all of the functionality that word provides you for this action and inside this tab, you find the groupings by Pages, Tables, Illustrations, etc. Essentially Insert became a first class action in the ribbon.
When applying this concept to TFS and Version Control it results in the abstraction of the branch concept in order to provide a lot more functionality around these objects, which today are just folders. The abstraction will allow users to exercise functionality that before would be scattered across the product, and hence unorganized. In the grouping front, we will be looking at our context menu and rethinking the experience in order to come up with the right groups and user interaction.
Summarizing, use abstraction and grouping effectively to organize the functionality of your design; they can be very powerful!