• Raymonde Guindon and colleagues were among the first to study in great detail how software designers work through a design problem, showing a relative absence of the exploration of alternatives. 5
• Bill Curtis and colleagues showed how the linear notion of design being a phase in the life cycle was a fallacy. 6
• Mauro Cherubini and colleagues highlighted just how prevalent and transient whiteboard software design is, serving a crucial role in the development process. 7
• Uri Dekel and Jim Herbsleb demonstrated that designers engaged in collaborative design used formal notations much less than expected, although the notations they did use resembled existing notations. 8
• Robin Jeffries and colleagues studied differences between experts and novices, observing that experts tend to work initially to understand the problem at hand and have better insight into how to decompose a problem into subproblems, for example, by choosing the appropriate subproblem to work on next. 9
• Marian Petre documented several strategies that designers use, often subconsciously, as part of their design repertoire and experience (for instance, by using provisionality in designs to leave room for future options). 10
• Alex Baker and André van der Hoek showed how designers work in design cycles, progressing in their design work by juxtaposing different design topics for relatively short periods of time. 11
• Sabine Sonnentag found that high-performing professional software designers structured their design process using local planning and attention to feedback, whereas lower performers were more engaged in analyzing requirements and more distracted by irrelevant observations. 12
• Willemien Visser argued, with empirical support, that the organization of actual design activities, even by experts involved in routine tasks, is opportunistic—in part, because opportunistic design provides cognitive economy. 13
• Linden Ball and Thomas Ormerod, on the other hand, argued that opportunistic design behavior is actually a mix of breadth- and depth-first solution development, and that expert behavior is informed by longer-term considerations of cost-effectiveness. 14
• Carmen Zannier and colleagues proposed an empirically based model of design decision-making in which the nature of the design problem determines the structure of the designer's decision-making processes. The more certain and familiar the design problem, the less a designer considers options. 15
• Commonalities and variations in design approaches across the life cycle. Early design might or might not share techniques, characteristics, and attitudes with maintenance design; similarly, aspects of the design of a set of requirements might or might not reflect the design of a set of test cases. Moreover, the question of how design decisions made in one part of the process influence the design decisions made in other parts is highly pertinent.
• The various modes of working. Design is sometimes solitary and other times highly collaborative. It's sometimes advanced through introspective thought and reflection and at other times through the creation of diagrams, documents, and other artifacts. Design might be wildly creative and free-form, or it might involve the careful analysis of trade-offs. How can each form of design be leveraged? How do they support and interleave? Can we determine what sort of design is appropriate when?
• Different roles and expertise. Substantial work on novice-expert differences in programming has resulted in insights about both the nature of expertise and what sorts of expert strategies might be articulated and transferred to others. We need similar novice-expert comparisons for the design reasoning and practice that takes place elsewhere in the process. Can we learn how experts approach a design task and navigate a design problem—and from that, extract patterns in their behavior that can be described and taught? Are there common mistakes, oversights, or biases that can be recognized, detected, and thus avoided?
ALEX BAKER is a senior software engineer at Visitrend in Boston, Massachusetts. His professional focus is on information visualization and user interface design, and his research interests include empirical study of software design processes and software engineering education. Baker has a PhD in computer science from the University of California, Irvine. Contact him at firstname.lastname@example.org.
ANDRé VAN DER HOEK serves as chair of the Department of Informatics at the University of California, Irvine. He heads the Software Design and Collaboration Laboratory, which focuses on understanding and advancing the roles of design, collaboration, and education in software development. Van der Hoek has a PhD in computer science from the University of Colorado at Boulder. Contact him at email@example.com.
HAROLD OSSHER is a researcher at the IBM Thomas J. Watson Research Center, currently in the Services Innovation Laboratory working on tool support for solution engineering in the smarter commerce domain. His research interests include modularity and separation of concerns, software development tools and environments, and fl exible modeling. Ossher has a PhD in computer science from Stanford University. Contact him at firstname.lastname@example.org.
MARIAN PETRE is a professor of computing at the Open University and a Royal Society Wolfson Research Merit Award holder, in recognition of her research on expertise in software design. Petre has a PhD in computer science from University College London. Contact her at email@example.com.