ABSTRACT

The user interface of an open source software product is the main point of interaction between the user and the software. The interface provides the glue that holds all the other elements togethernot only in the code base but also during the development process. That is, all developer-user discussions about a particular functionality, bug, or new feature begin and end at the user interface. The user interface is also the place where system integrity and usability

are established and maintained. Any Web-based software artifact that has a clumsy user interface, fails to enforce restrictions on access to sensitive data, or prevents different users from exercising the system simultaneously, is relatively useless. This chapter introduces both the principles of user interface design and

the practice of user interface development. Our main source of examples is again the code base for the RMH Homebase software. However, the principles and practice discussed here apply to all open source software projects, both client-oriented and community-oriented.1