Date: Wed, 19 Jun 2013 07:40:07 +0200
- TFS Version Control and more ..
Feature Design and Simplicity- Part 1
As a Program Manager an integral part of our job is designing a great user experience for our customers. One of the most important factors in the design is simplifying the experience so it is ease to use and easy to implement.
As you know, simplicity is one of those things that is very easy to talk about but extremely hard to achieve. I remember spending a lot of days and nights just thinking of a way that I could bring a given feature to the customer without upsetting him because the prototype had him clicking through three modal UI screens to get the task accomplished. Ok I am exaggerating a little bit here, but seriously, look at our old conflict resolution experience and try to resolve a rename version conflict in less than three clicks, aha you can’t.
In my quest for simplicity I came across John Maeda’s Laws of Simplicity and I liked them so much that I wanted to share them with you: (http://lawsofsimplicity.com/category/laws?order=ASC ). Today I will discuss its first law Reduce, in which he states that “the easiest way to simplify a system is to remove functionality”. Wait let’s read that again, to make version control simpler I just have to cut features? Well that does not work too well for me if I want to keep my job. In fact, a big part of it is to make sure that the features our customers want make it into the product and not out of the product. Then, how do we apply this to feature development?
For me, this law is all about the last sentence and specifically the statement “When in doubt, just remove”. At the time I read this law we were designing the new resolve experience (Resolve Spec) and it gave me an opportunity to challenge myself on the features/improvements we were introducing. My approach was simple if I doubted that it provided strong value to the customer then I would remove it and try to come up with another way to integrate the feature. For example, at one time we had in the design a progress indicator that would tell you how far along you were in your conflict resolution. This works great when you are sitting down and resolving all of the conflicts at once without checking in, but the reality is customers not always work this way. They have distractions, they work in waves and at that point we were not able to provide the value we wanted to all of our customers so we just removed it. That was a good decision!
Next time you are sitting at your desk late at night trying to make the design work just follow this rule and challenge all of the functionality presented to the user in that screen. Can you cut anything out and still maintain the value? Ohhh I see some of them that are doubtful, go ahead and cut it, you will fell better at then end and your product will be yes “simpler”.