As my desktop wallpaper on my laptop I have an image and a quote from this book, "The Laws of Simplicity" by John Maeda, that says "The simplest way to achieve simplicity is through thoughtful reduction."  Another Senior Web Developer co-worker has a poster with a quote from Leonardo Da Vinci which says "Simplicity is the ultimate sophistication."

Yesterday, I was going over some changes we are going to make to our Find a Doctor application.  We rebuilt it last year and relaunched it last summer with new features including a Google-like single search box, a compare physicians feature (like ebay and Lowes) and a much better underlying data structure.  We added complexity compared to the old application.  To accommodate some issues with adding the comparison feature and a javascript functionality to add physicians to the comparison list, we implemented a javascript that would cause the browser back button to not work.  Which is a major usability issue

This back button disabling also caused issues when a use clicked on a physician’s web site and then was unable to return to eCommunity.com and vice versa.  Also, the user was required to click the New Search link to start a new search and it was somehow possible to hit the back button to the search box page and enter a new search.  The results didn’t change because the old search parameters were stored in the session and the user didn’t click on the new search button.  More usability issues caused by the complexity.

The challenge was to leave in the complexity of the physician comparison functionality but remove the back button disabling and keep the search results state while the user was comparing doctors.  Thoughtful reduction.  We decided to change the application so that the physicians in the comparison list are stored in the session state and will remain in the list between searches.  The user will need to remove them from the list; they are not cleared out when a user clicks on the New Search button and performs another search.

The back button disabling was removed and the storing of the search parameters in the session was changed to be stored in viewstate.  We are removing the javascript that adds the physicians to the comparison list and are using a postback to accomplish this.  And adding more visibility to removing the physicians from the comparison list.  The user can use the back button freely and it fixes all the issues listed above.  We reduced the complexity of application by removing unnecessary accommodations made to add the new features and changing the application requirements so that it is easier and simpler to use and meets the user’s expectations of web usage.

I think good web application design consists of making complex functionality simple for the user.  I think it is telling that both of the Senior Web Developers at Community Health Network are inspired by quotes about simplicity.