CHI 97 Electronic Publications: Tutorials
CHI 97 Prev CHI 97 Electronic Publications: Tutorials Next

Practical User Interface Design: Developing within Real-World Constraints

Debra Herschmann
Lehman Brothers
3 World Financial Center
New York, New York, USA
+1-516-378-0083

ABSTRACT

User interface designers are trained to strive for the ultimate interface, one that is usable, effective and engaging. However, in a commercial production environment, there are rarely sufficient resources to achieve the ultimate interface. Tight deadlines, limited budget and staff, shifting priorities and conflicting agendas all affect the final product design. In such a setting, designers must revise their vision of the ultimate interface to provide the best implementable and affordable user interface, one that can be realized with the given resource constraints.

KEYWORDS

Constraints, production environment, cost estimation, reducing implementation cost.

© 1997 Copyright on this material is held by the authors.



FACTORS INFLUENCING USER INTERFACE DESIGN

This overview describes factors influencing user interface design when developing software in a commercial environment. These factors include:

DESIGNING USABLE AND AFFORDABLE FRONT ENDS

In commercial environments, designers must frequently put aside lofty design goals and define the best implementable and affordable user interface, one that can actually be realized with the given resources. Defining the best implementable interface for a software application requires:

EXPLOITING DEVELOPMENT TOOLS

Interface designers are rarely involved with the selection of development tools used for a project. But the choice of tools, as well as programmers' expertise with the selected tools, greatly impact the final application design. Once a tool is selected, designers must understand which capabilities are supported easily or for free, which can be achieved at a higher implementation cost, and which capabilities might be precluded. Designers must work within the technical limitations of the tool, and consider exploiting easily supported capabilities.

SURVIVING THE ESTIMATION PROCESS

Functionality to be included in an application is usually determined when the scope of the work is estimated, at the beginning of a project. Project managers weigh necessity against affordability and either include or eliminate features. Arguing reasonably for interface components, and recommending alternate, less costly interface behavior is critical to salvaging components that might otherwise be eliminated during estimation.

Recommendations for surviving the estimation process include:

COMMUNICATION WITHIN AND BETWEEN TEAMS

Effective development teams should consist of people from a variety of disciplines, including human factors, programming, graphic design, documentation, marketing and management. While these people bring different areas of expertise to a project, they frequently have different agendas. Ideally, team members will communicate to reach a common ground, and work towards a shared vision of the final product. Communication problems and lack of consensus within a diverse group can hinder the design in its initial stages, and as development progresses. After decisions are finalized, poor communication can prevent design decisions from being applied. Issues should be resolved clearly, and decisions enforced, to reduce implementation error and costly revisions.

Schedules and requirements of departments external to development frequently impact the flexibility of the design as documented. The importance of coordinating schedules and communicating design revisions with departments supporting application development should be understood by designers. Revision once development is underway may be limited or precluded by the needs of departments such as Documentation, Graphic Design, Marketing, and Quality Assurance.

FUNCTIONAL SPECIFICATION

Preparing accurate and comprehensive functional specifications is critical to communicating designs with management and development. As projects and designs evolve, revisions must be incorporated into the functional specification. This helps insure accurate implementation of the user interface. Techniques for creating and maintaining accurate specifications throughout product development include:

DESIGN REVISION

Once the initial design has been finalized and development has begun, design revisions are inevitable. This is due to many factors, including usability analysis, changes in platform standards and client or industry demands, project re-estimations once development is underway, budget, schedule and staffing changes, and oversight or flaw in the initial design. These factors may result in revision of existing features, addition or enhancement of features previously cut, or (more likely) scaling down or elimination of features included in the initial design. These revisions can improve or detract from the final product design.

TRACKING THE UI THROUGH DEVELOPMENT

After the design has been defined and documented, the designer's job is not finished. The user interface should be tracked through implementation, with focus on:

The best way to track the interface is to work with the code as it is developed, rather than waiting for a product that is almost completed. While working with preliminary code does not provide exact feedback, it points to problematic designs, and deviations from specification. Designers should also periodically work individually with programmers to discuss the progress of particular features, and confirm the direction in which they are moving.

WORKING WITH DEVELOPERS ON UI AWARENESS AND SELF SUFFICIENCY

A long term goal in team product development is to provide programmers with an awareness of user interface design, and tools for implementing designs accurately. Programmer awareness will result in better front end design, reduce the number of bugs in the software, and result in lower development cost per feature. Programmers should be assigned responsibility for correct implementation of front end design, as well as back end functionality. Minimally, programmers should understand interface issues well enough to know when to raise design issues during implementation, rather than ignoring them or implementing them incorrectly. Optimally, the front end should appear as if developed by a single programmer, not by a variety of programmers with varying skill levels and sensibilities.


CHI 97 Prev CHI 97 Electronic Publications: Tutorials Next

CHI 97 Electronic Publications: Tutorials