Wednesday, August 26, 2009

Software Architecture in Practice Chapter 4

The three most important qualities are, without a doubt, Availability Modifiability, and Reliability. While all the qualities discussed are very important these three represent a solid foundation from which more expansive software can be grown. If a user installs a new piece of software they expect it to work they launch the program and quickly become irritated if that basic operation doesn’t succeed. If the program is plagued by constant errors, crashes, and other interruptions of service the complaints will begin to pour in, just as would be expected. Lastly modifiability is extremely important as this can be a way to measure the lifespan for a piece of software. Businesses or other software creating entities that do not make modifiability a concern early on will have more trouble as time goes on and new technologies or practices are introduced. By nailing these three qualities we ensure that the user’s expectations of a functioning program are met, and that as time goes on the software will change to keep pace with new technologies or simply with the necessary repairs to ensure solid use.

However, the quality I have found to be the most difficult in practice is Usability. Each quality listed in the chapter carries its own unique challenges, but many of them are relatively easy to overcome, in that hard documentation exists or many opportunities in school and in the workplace exist to practice overcoming these challenges. With Usability, however, so many small adjustments can have such a wide ranging effect on the user’s flow that capturing even a few major helpful practices is difficult. I know that in my own experience some of the longest discussions I have concerning features I am working on have to do with how things will be presented to the user and how that impact's their workflow. Another big issue that separates Usability from the others is that a single program may have to be used by people with a wide range of abilities, and making the program complex gives the power users the control they desire but may render the system unusable for those without the skills. I once heard about a system that used an auto-hiding taskbar to hide the menu options from the user. An elderly operator was so unfamiliar with this convention that in order to close the program he would actually hold down the computer’s power button and force a restart! And this doesn’t even begin to cover other usability concerns such as simple icon placement, color choices, and a host of other things that have added many minutes to many meetings.

No comments:

Post a Comment