Wednesday, December 19, 2007

Design anti-patterns: Serial jigsaw puzzle

Anti-patterns describe approaches to problem solving that can potentially work well in one domain but are applied to inappropriate domains, leading to negative outcomes. I refer the reader to Wikipedia's excellent description and collection of anti-patterns.

Nearly every project I've worked on has employed some sort of issues list that is used to track project issues that need to be resolved. An issue usually includes a number, issue name, date opened, priority level, name of a responsible party, and due date. Project leads work the issues list on a regular basis, usually starting with the oldest issue, pushing the responsible parties to provide solutions so the issues can be closed. This is a good technique for ensuring that issues are resolved on a timely basis and the project is kept on track.

A problem occurs when the technique is applied to the early stages of user interface design. Design is by nature iterative. Good designers sketch high level solutions to design as requirements are gathered, but resist making a commitment on some individual aspect of a design until the framework is understood. Designers also produce alternative designs to one problem as a way of exploring different solutions to a single problem.

Project team members who want to "help" with design will often place design issues on the issues list early in the project. Where will the navigation bar go? How many sections will this web site have? Will we offer help on every page, and for which fields? In the worst-case scenario, a business contact is named as responsible party, bypassing the designer completely. The project lead then works the issues list, pushing to close the interface issues before the design framework is complete.

Imagine trying to construct a jigsaw puzzle this way: you're handed a bag of puzzle pieces. You don't know the dimensions of the puzzle, nor what the completed picture looks like. You're allowed to reach into the bag and take one piece, then place it on the table in front of you. Once you've placed the piece you can't move it. You take the next piece, and place it on the table. Proceed in this fashion until the bag is empty. What do you think the picture will look like?

That's the issues-list approach to user interface design. If you find yourself on a project with a project lead that doesn't understand design take the time to explain how design works, with reassurances that the dates can still be met. And, in the early stages of design, keep those design issues off the issues list.

No comments: