Originally published: Apr 01, 2002 Printable PDF Version Articles Archives
With all the press and attention recently given to extreme programming and agile modeling techniques, it seems very little attention has been given to user interface design techniques that will blend, rather than clash, with these new development methods being used to create high quality, industrial strength, and highly usable applications. As an offshoot to the agile modeling techniques, we are proposing teams explore the benefits of agile design to quickly establish a high quality user interface (UI).
Agile design is built upon the principles established by a talented team of professionals who wrote a manifesto on agile development to address the needs of the current development environment we all seem to face. We often attempt to layer usability into a fast moving agile development environment where successive iterations of the code base are commonplace. This approach can backfire if we insist on heavy documentation and human factors studies before getting prototypes in front of users. On the other hand, just putting a few developers in a room with some end users can often result in a product that works for a subset of users on the team, but not a product that truly delivers the benefits of user-centered design. This is because specific design decisions need to be validated with actual usability testing to verify how the users behave, rather than relying on what they think they want.
Unfortunately, UML does not go far enough in providing useful documentation techniques for deriving a world-class user interface. Specifically, it lacks UI models we feel are critical to developing robust web applications. These UI models allow extensive refactoring of the UI before initial implementation. The models form the basis for the prototype and are driven from a starting point of user centered design.
We have been using these techniques on several projects over the past four years and have had success with small teams, as well as very large enterprise application design efforts. In the end, it is really about achieving a successful design with the resources you are given. Please feel free to e-mail me at jimh@classicsys.com with questions or concerns you have experienced applying these techniques, and I will follow up this article with some more detailed examples of how we implemented agile design techniques successfully on our client projects.