This bibliography compiles key publications that provide the empirical foundation for the book. It is by no means comprehensive, but we hope that it is a reasonable starting place for anyone wanting to engage with the underpinning literature. It also includes a few texts that present expert reflection on software design – their role here is corroborative.

The bibliography intentionally does not provide a one-to-one mapping of insights to publications, because the insights are distilled from multiple sources. Nor would a simplistic mapping do justice to the papers, which are typically much richer in their content and should be read in their own terms. Anyone who wishes to explore the roots of a particular insight should contact us.


Beck, K. (1999) Extreme Programming Explained: Embrace Change. Addison-Wesley Professional.  ISBN 9780201616415.

            The original book on extreme programming famously challenged the importance of a pre-hoc software design document, instead advocating the recording of design decisions in the code itself.

Baker, A., van der Hoek, A., Ossher, H., and Petre, M. (2012)  Guest editors’ introduction: Studying Professional Software Design. IEEE Software, 29 (1), 28-33. DOI 10.1109/MS.2011.155.

            Anchoring a special issue on the topic of studying professional software designers in action, this paper provides an introduction to the overall subject of what they do and introduces the other papers in the special issue. 

Baker, A. and van der Hoek, A. (2010) Ideas, subjects, and cycles as lenses for understanding the software design process. Design Studies, 31 (6), 590–613. DOI 10.1016/j.destud.2010.09.008.

            This paper showed how designers work in design cycles, progressing in their design work by juxtaposing different design topics for relatively short periods of time.

Boehm, B. (1988) A spiral model of software development and enhancement. ACM SIGSOFT Software Engineering Notes, 11 (4), 61-72. DOI 10.1109/2.59.

            An early attempt at describing an iterative software development process, this paper represents a shift away from more engineering-oriented waterfall-like processes.

Brooks, F.P. Jnr. (2010) The Design of Design:  Essays from a Computer Scientist.  Pearson Education.  ISBN 978-0-201-36298-5.

            A collection of “opinionated essays” from the author of The Mythical Man-Month, who draws on concrete examples from his own experience and on conversations with exceptional designers in framing his overall argument on “what seems to be the underlying invariant process” of design.

Cherubini, M., Venolia, G., DeLine, Rob, and Ko, A. J. (2007) Let’s go to the whiteboard: How and why software developers use drawings. In CHI ’07: Proceedings of the SIGCHI conference on Human factors in computing systems ACM. 557–566.

            This is a study that highlights just how prevalent and transient whiteboard-based software design is, illuminating the central role it serves in the development process.

Curtis, B., Krasner, H., and Iscoe, N. (1988) A field study of software design process for large systems. Communications of the ACM, 31 (11), 1268-1287. DOI 10.1145/50087.50089.

            This was another early demonstration that the linear notion of design being a phase in the life cycle was not always sufficient.

Dekel, U. and Herbsleb, J.D. (2007) Notation and representation in collaborative object-oriented design: an observational study. ACM SIGPLAN Notices – Proceedings of the 2007 OOPSLA conference, 42 (10), 261-280. DOI 10.1145/1297105.1297047.

            This study of how software designers in action noted that collaborative design sessions did not employ formal notations, but utilized diagrams that resembled them.

Detienne, F. (2002)  Software Design – Cognitive Aspects.  Springer.  ISBN 1-85233-253-0.

            This book pulls together research literature on software development from a cognitive perspective, summarising relevant theory.  It addresses both software production and software understanding.

Elrad, T., Filman, R. E.,  and Bader, A. (2001) Aspect-oriented programming: Introduction. Communications of the ACM, 44 (10), 29–32. DOI 10.1145/383845.383853.

            This is an overview of aspect-programming, which represents an early attempt to reconcile the difficulties inherent to using a body of code as both a final specification, and a document for communicating ideas to human uses.

Empirical Studies of Programmers (ESP).

            A series of workshops that began in 1986 (arising from discussions between Ben Shneiderman, Elliot Soloway, and Ram Iyengar) on the premise that:  “By understanding how and why programmers do a task, we will be in a better position to make prescriptions that can aid programmers in their task.” (ESP First Workshop, Volume 1, Part 3 (1986) Intellect Books, p. vii)  The series presented seminal papers in empirical studies of software development.

Fischer, G. and Otswald, J. (2001) Knowledge management: problems, promises, realities, and challenges. IEEE Intelligent Systems, 16 (1), 60-72. DOI 10.1109/5254.912386.

            This paper discusses the ways that knowledge is passed between participants in a given creative project, and indirectly serves to expand upon existing notions of design as an information-processing activity.

Flor, N.V., and Hutchins, E.L. (1991) Analysing distributed cognition in software teams: a case study of team programming during perfective software maintenance. In:  J. Koenemann-Beliveau, T.G. Mother and S.P. Robertson (ends), Empirical Studies of Programmers:  Fourth Workshop.  Ablex Publishing Corporation. 36-64.

            This early application of ‘distributed cognition’ to programming (taking into account not just individuals, but systems of multiple people and artefacts)  demonstrated that “complex cognitive systems engaged in software development tasks possess cognitive properties distinct from those of individual programmers”.

Gamma, E., Helm, R., Johnson, R., and Vlissides, J. M. (1994) Design Patterns: Elements of Reusable Object-Oriented Software. Pearson Education. ISBN 9780321700698.

            This set of design patterns is one of the most well-known pieces of software design knowledge, and represents a series of insights about effective object-oriented design.

Garlan, D., Allen, R., and Ockerbloom, J. (1995) Architectural mismatch: why reuse is so hard. IEEE Software, 12 (6), 17-26. DOI 10.1109/52.469757.

            Because software is an easily reproducible product, there was great optimism among early software researchers about the potential for reusable software components; this paper examines some of the insidious challenges inherent to that goal.

Guindon, R. (1990) Designing the design process: exploiting opportunistic thoughts. Human-Computer Interaction, 5, 305-344. DOI 10.1207/s15327051hci0502&3_6.

            This empirical study of software designers in action focuses on the participants’ use of both structured and opportunistic creative modes.

Guindon, R., Krasner, H., and Curtis, B. (1987) Breakdowns and processes during the early activities of software design by professionals. In Empirical Studies of Programmers: Second Workshop. Ablex Publishing Corporation, Lawrence Erlbaum Associates. 65–82.  ISBN 0893914614.

            Based on an empirical study in industry, the authors summarise some of the breakdowns that occur in the early design of software when addressing problems of realistic complexity.

Jackson, M. (2001). Problem Frames. Addison-Wesley/ACM Press.  ISBN 9780201596274.

            General design researchers often mention the importance of knowledge about problems, in addition to knowledge about solutions; this book is one of the most prominent examples of problem-oriented software design knowledge.

Jeffries, R., Turner, A. A., Polson, P. G., and Atwood, M. E. (1981) The processes involved in designing software. In J.R. Anderson (ed.) Cognitive Skills and Their Acquisition. Psychology Press.  255-283. ISBN 9780898590937.

            This early study compared expert and novice software designers in action, with a particular focus on the ways that designers broke the problem presented them into sub-problems.

Ko, A.J., DeLine, R., and Venolia, G. (2007) Information needs in collocated software development teams.  In ICSE ’07: 29th International Conference on Software Engineering. IEEE Computer Society.  344-353. DOI 10.1109/ICSE.2007.45.

            An analysis of software developers’ information needs, based on observation of 17 groups of developers over 2 months.  “The most frequently sought information included awareness about artifacts and coworkers.”

Lakshminarayanan, V., Liu, W.Q., Chen, C.L., Easterbrook, S., and Perry D.E. (2006) Software architects in practice: handling requirements. In CASCON ’06: Proceedings of the 2006 Conference of the Center for Advanced Studies on Collaborative Research.  IBM Corp.  Article 25. DOI:  10.1145/1188966.1189000.

            Lakshminarayanan presents a study of how software designers structure their work, as derived from a series of interviews with practitioners.

Landay, J. A., and Myers, B. A. (1995) Interactive sketching for the early stages of user interface design. In CHI ’95: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems.  ACM.  43-50. DOI 10.1145/223904.223910.

            This paper examines how user interface design might be supported with a lightweight, interactive drawing tool, providing an overview of some of the challenges inherent to this particular design problem.

Löwgren, J. (1995) Applying design methodology to software development. In DIS ’95: Proceedings of the 1st conference on Designing interactive systems: processes, practices, methods, and techniques.  ACM. 87-95. DOI 10.1145/225434.225444.

            In this paper, Löwgren argues for a design oriented (rather than engineering-oriented) notion of software development, and discusses the ways that software’s non-physical nature makes its design a particularly challenging task.

Mangano, N., LaToza, T., van der Hoek, A., and Petre, M.(2014) Supporting informal design with interactive whiteboards.  In CHI ’14: Proceedings of the SIGCHI Conference on Human Factors in Computing Systems.  ACM Press. 331-340.  DOI 10.1145/2556288.2557411.

            “Through a review of the software design literature, we identified 14 behaviors that characterize informal design at the whiteboard and designed an interactive whiteboard system – Calico – to support these behaviors. Through a deployment of Calico to three groups of designers, we examined how supporting these behaviors impacts the practice of in- formal design.”

Mangano, N., LaToza, T., van der Hoek, A., and Petre, M. (2015) How software designers interact with sketches at the whiteboard.  IEEE Transactions on Software Engineering, 41 (2), 135-156.  DOI 10.1109/TSE.2014.2362924.

            Whiteboard sketches play a crucial role in software development. Based on close analysis of whiteboard design sessions by professional designers, this unpicks how sketches serve as a rich medium for supporting design conversations.

Muller, M.J. and Kuhn, S. (1993) Participatory design. Communications of the ACM, 36 (6), 24-28. DOI 10.1145/153571.255960.

            This article surveys the various ways that user input can be integrated into the design of software systems; these ideas are expanded upon in the remainder of the themed issue of CACM of which it is a part.

Parnas, D. L. (1972) On the criteria to be used in decomposing systems into modules. Communications of the ACM, 15 (12), 1053–1058. DOI 10.1145/361598.361623.

            This is one of the earliest explanations of a software design process, and one which advocates an emphasis on information hiding when choosing how to compose a modular software system.

Parnas, D. and Clements, P. (1986) Rational design process: How and why to fake it. IEEE Transactions on Software Engineering, 12 (2), 251-257. DOI 10.1007/3-540-15199-0_6.

            In this paper, Parnas and Clements describe a traditional waterfall-based approach to software engineering, and cast software design as a task of translating requirements into a plan for later implementation.

Petre, M. (2013) UML in practice. In ICSE ’13: Proceedings of the 2013 International Conference on Software Engineering. IEEE Press. 722-731. ISBN  978-1-4673-3076-3.

            This paper presents a corpus of interviews with 50 professional software engineers in 50 companies and identifies 5 patterns of UML use.

Petre, M., van der Hoek, A., and Baker, A. (2010) Editorial:  Studying professional software designers 2010.  Design Studies, 31 (6), 477-493. DOI 10.1016/jdestud.2010.09.001.

            Anchoring a special issue on the topic of studying professional software designers, this paper provides an introduction to the overall subject of studying developers ‘in action’ and introduces the other papers in the special issue. 

Petre, M. (2010) Mental imagery and software visualization in high-performance software development teams.  Journal of Visual Languages and Computing, 21 (3), 171-183. ISSN 1045-926X.  DOI 10.1016/j.jvlc.2009.11.001.

            Drawing on a series of empirical studies, the paper provides insight into a relationship between how experts reason about and imagine solutions, and their use of and requirements for external representations and software visualization.

Petre, M. (2009) Insights from expert software design practice. In ESEC/FSE ’09: Proceedings of the 7th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on The Foundations of Software Engineering. ACM. 233-242. ISBN 978-1-60558-001-2. DOI 10.1145/1595696.1595731.

            This paper documented a number of strategies that designers use, often subconsciously as part of their design repertoire and experience, for instance using provisionality in designs to leave room for future options.

Petre, M., and Blackwell, A. (1999) Mental imagery in program design and visual programming.   International Journal of Human Computer Studies (special issue:  Best of ESP-7), 51 (1), 7-30.  DOI 10.1006/ijhc.1999.0267.

            This paper reports on two empirical studies about programmers’ mental representations and cognitive processes while they were engaged in a design task.

Petre, M. (1995) Why looking isn’t always seeing:  readership skills and graphical programming.  Communications of the ACM, 38 (6), 33-44. DOI 10.1145/203241.203251.

            This paper reports on empirical research focusing on understanding how textual and visual representations for software differ in effectiveness. Among other things, it observes that the differences lie not so much in the textual-visual distinction as in the degree to which specific representations support the conventions experts expect.

Petre, M. (1994) A paradigm, please—and heavy on the culture.  In D.J. Gilmore, R.L. Winder, and F. Detienne (eds.), User-Centred Requirements for Software Engineering Environments.  NATO ASI Series F:  Computer and Systems Sciences, Vol. 123.  Springer-Verlag.  273-284.  ISBN 3540576533.

            This paper observes that discussions about programming languages are often not just about notations, but about how they should be used. The character of a programming culture is not just the definition of its tools, but the received wisdom of its adherents.

Petre, M. (1991) What experts want from programming languages.  Ergonomics (Special Issue on Cognitive Ergonomics), 34 (8), 1113-1127. DOI 10.1080/00140139108964850.

            This paper considers general-purpose programming language design in terms of evidence about expert problem-solving and programming behaviour. It observes that, whereas language designers emphasize well-foundedness and correctness, expert programmers emphasize utility, control, and efficiency.

Psychology of Programming Interest Group (PPIG).

            PPIG is an international, interdisciplinary group, established in 1987, in order to explore the psychological aspects of software development.  It organises annual workshops that emphasise discussion and early dissemination of results.

Randell, B. (1996) The 1968/69 NATO Software Engineering Reports. Dagstuhl-Seminar 9635: History of Software Engineering.

            The articles in this issue largely focus on the creative side of software development; in contrast, this paper describes how many early software researchers were focused on making the software process as predictable, regimented, and generally engineering-like as possible.

Raymond, E.S. (1999) The Cathedral and the Bazaar. O’Reilly.  ISBN  9780596553968.

            A discussion of the implications of open-source software design, this paper also indirectly serves to illustrate some characteristics of software design that make it unusual among design fields.

Sonnetag, S. (1998) Expertise in Professional Software Design. Journal of Applied Psychology, 83 (5), 703-15. DOI 10.1037/0021-9010.83.5.703.

            This study 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.

Taylor, R.N., and van der Hoek, A. (2007) Software design and architecture: The once and future focus of software engineering. In L. Briand and A.L. Wolf (Eds), FOSE ’07: 2007 Future of Software Engineering. IEEE Computer Society Press. 226–243. DOI 10.1109/FOSE.2007.21.

            In this agenda-setting paper, “Design is presented as being an activity engaged by a wide range of stakeholders, acting throughout most of a system’s lifecycle, making a set of key choices which constitute the application’s architecture.” The paper draws on a rich research literature to summarise thinking about software design, identifying key concepts and trends, and relating it to other design disciplines, and thereby to identify the challenges facing software design.

Taylor, R. N., Medvidovic, N., and Dashofy, E. M. (2009) Software Architecture: Foundations, Theory, and Practice.  Wiley.  ISBN 9780470167748.

            This book on software architecture takes a more design-oriented approach to describing software development than most similar books before it.

Teasley, S., Covi, L., Krishna, M., Olson J. (2000) How does radical collocation help a team succeed? In CSCW ’00: Proceedings of the 2000 ACM Conference on Computer Supported Cooperative Work.  ACM Press.  339-346.  DOI 10.1145/358916.359005.

            Describes the benefits of radical co-location, when team members work together in a shared space or ‘war room’ for the duration of a project, giving them ready access to teach other and to work objects.

van der Hoek, A., and Lopez, N. (2011) A design perspective on modularity. In AOSD ’11 Proceedings of the tenth international conference on Aspect-oriented software development. ACM Press. 265-280. DOI 10.1145/1960275.1960307.

            This paper “dissects” typical activities in which designers engage and analyses how they relate to modularity. The authors conclude “that our current techniques to achieve modularity fall short in a number of critical ways”.

van der Hoek, A., and Petre, M. (Eds) (2013) Software Designers in Action.  CRC Press / Taylor & Francis. ISBN 978-1-4665-0109-6.

            This book documents the results of Studying Professional Design (SPSD) 2010, a workshop in which design researchers from a variety of perspectives analysed video recordings of a number of two-person software teams working together at a whiteboard on the same design task.


Winograd, T. (1996) Bringing Design to Software. ACM Press. ISBN 978-0201854916.

            This collection of essays leverages lessons from non-software design fields and considers how they might be applied to the design of a software system’s interface.

Zannier, C., Chiasson, M. and Maurer, F. (2007) A model of design decision making based on empirical results of interviews with software designers. Information and Software Technology, 49, 637-653. DOI 10.1016/j.infsof.2007.02.010.

            Based on a series of interviews with practitioners, this paper describes software designers’ movement between rationalistic and naturalistic modes of thinking.


Alexander, C. (1979) The Timeless Way of Building. Oxford University Press. ISBN 9780195024029.

            Perhaps the earliest prominent example of another design field’s ideas cross-pollinating to influence software design, this book helped inspire software design patterns.

Ball, L. J., and Christensen, B. T. (2009) Analogical reasoning and mental simulation in design: two strategies linked to uncertainty resolution. Design Studies, 30 (2), 169-186. DOI 10.1016/j.destud.2008.12.005.

            The two main techniques described by this paper, analogical reasoning and mental simulation, were repeatedly observed in the SPSD corpus’s designers’ processes.

Christensen, B. T. (2005) Creative Cognition: Analogy and Incubation. Doctoral dissertation, University of Aarhus.

            This book describes the creative process in terms of preparation, incubation, illumination and verification, providing a context for the kinds of creative activities observed in the workshop corpus.

Csikszentmihalyi, M. (1991) Flow: The Psychology of Optimal Experience. Harper Perennial. ISBN 9780061876721.

            Design is a creative activity; this book describes the ways that creative flow can be enabled, and how it can be disrupted.

Conklin, J. (2006) Wicked problems and social complexity. Dialog Mapping: Building Shared Understanding of Wicked Problems. Wiley.  ISBN 9780470017685.

            Software design is often described as a “wicked” problem; this book expands upon the wicked problem concept first presented by Rittel and Webber in 1973.

Cross, N. (2007) Designerly Ways of Knowing. Springer.  ISBN 9781846283017.

            In this book, Cross describes design problems as ill-defined, and characterizes the design process as an iterative and fluid one.

Cross, N., Christiaans, H., and Dorst, K. (1997) Analysing Design Activity. Wiley.  ISBN 9780471960607.

            A collection of papers from the Delft Protocols Workshop, where a community of researchers used protocol analysis to study a single, shared data set.

Dorst, K. (2003/2006) BIS Publishers. Understanding Design:  175 Reflections on Being a Designer. ISBN 978-1-58423-365-0.

            This book offers 175 short, reflective essays by Dorst about the nature and practice of design, based on his experience in product design, but also addressing issues and problems that apply to multiple design disciplines.

Dorst, K. and Cross, N. (2001) Creativity in the design space: co-evolution of problem-solution. Design Studies, 22 (5), 425-437. DOI 10.1016/S0142-694X(01)00009-6

            This paper presents the results of an empirical study of product design processes, and examines the correlation between a designer’s understanding of a problem and the creativity of their resulting solution.

Ericsson, K. A., and Simon, H. A. (1985) Protocol Analysis: Verbal Reports as Data. MIT Press. ISBN 978-0262550239.

            This is the seminal work on the protocol analysis research method, which was used, directly and indirectly, by many of the researchers involved in the SPSD workshop.

Fish, J., and Scrivener, S. (1990) Amplifying the mind’s eye:  sketching and visual cognition.  Leonardo, 23 (1), 118-126. DOI 10.2307/1578475.

            A seminal work on the role and importance of sketching in design.

Gero, J. S., and Kannengiesser, U. (2004) The situated function-behaviour-structure framework. Design Studies, 25 (4), 373-391. DOI 10.1007/978-94-017-0795-4_5.

            Gero presents a model of design as it exists across disciplines, defining a series of eight processes that underpin any design process. 

Goel, V. and Pirolli, P. (1992) The structure of design problem spaces. Cognitive Science, 16, 395–429. DOI 10.1207/s15516709cog1603_3.

            Goel describes design in terms of two phases: problem structuring and problem solving, the latter of which is broken into preliminary design, refinement, and detail design.

Goldschmidt, G. (1991)  The dialectics of sketching.  Creativity Research Journal, (2), 123-143. DOI 10.1080/10400419109534381.

            “This study [of architects] investigated the process of sketching and revealed that by sketching, the designer does not represent images held in the mind, as is often the case in lay sketching, but creates visual displays which help induce images of the entity that is being designed.”

Jones, J.C. (1970) Design Methods. Wiley. ISBN 9780471284963.

            Consisting primarily of a collection of rigorous methods for designing, this book is most valuable for its discussion of design in general, explaining it in terms of divergent, transformative, and convergent activities.

Krippendorff, K. (2005) The Semantic Turn: A New Foundation for Design. CRC Press. ISBN 9780203299951.

            This broad book takes a broad, theoretical look at design, casting it as an act of sense-making and examining the meanings inherent to design acts and artifacts.

Lawson, B. (2003)  Schemata, gambits and precedent:  Some factors in design expertise.  Design Studies, 25 (5),  443–457. DOI 10.1016/j.destud.2004.05.001.

            Combining evidence from empirical studies, interviews with expert designers, and research literature on expertise, this paper “explores the significance of experience in expertise, focussing on the way precedent stored in the form of episodic schemata is used by experts to recognise design situations for which gambits are available”. 

Lawson, B. (2006) How Designers Think, fourth edition.  Architectural Press.  ISBN 9780750660778.

            Lawson reflects on 40 years of research in this classic on design thinking.

Lawson, B. (2004) What Designers Know. Architectural Press.  ISBN 9780750664486.

            Lawson examines how expert designers store and use knowledge, comparing them to novice designers and experts in other domains.

McDonnell, J., and Lloyd, P. (2009) About Designing: Analysing Design Meetings. Taylor & Francis.  ISBN 9780415440585.

            This is a collection of articles analyzing a single corpus of design activity from a variety of angles.


Mehalik, M., and Schunn, C. (2007) What constitutes good design? A review of empirical studies of design processes. International Journal of Engineering Education, 22 (3), 519-532.

            This survey of design research publications has a particular emphasis on exploring the nature of expertise in design.

Newell, A., and Simon, H. A. (1972) Human Problem Solving. Prentice Hall. ISBN 978-0134454030.

            This book describes design in general as an information-processing activity, in which a space of possible designs solutions is explored in search of a satisfactory one.

Norman, D. A. (2002) The Design of Everyday Things. Basic Books.  ISBN 9780465072996.

            In this book, Norman describes how the design of objects affects their users’ interactions with them, and how these interactions can be improved.

Olson, G. M., Olson, J. S., Storrøsten, M., Carter, M., Herbsleb, J., and Rueter, H. (1996) The structure of activity during design meetings. Design Rationale:  Concepts, Techniques and Use.  Lawrence Erlbaum Associates 217–240.   ISBN 0-8058-1567-8.

            This is one of the most prominent examples of a close analysis of videos of software designers in action.

Petre, M. (2004) How expert engineering teams use disciplines of innovation.  Design Studies, 25 (5), 477-493.  DOI 10.1016/j.destud.2004.05.003.

            Based on observations in 12 engineering consultancies, this paper describes strategies that expert designers use to ‘get out of the box’ of familiar thinking, and the supportive engineering culture in which these strategies are embedded.

Petroski, H. (1994). Design Paradigms:  Case Histories of Error and Judgement in Engineering. Cambridge University Press. ISBN 9780521466493.

            Petroski has written several pertinent design texts; this book focuses on design failures and the attitudes and approaches that contributed to them.

Restrepo, J., and Christiaans, H. (2003) Problem structuring and information access in design. The Journal of Design Research: Expertise in Design, 4 (2). DOI: 10.1504/JDR.2004.009842.

            In an effort to inform the development of tools supporting early design, this paper investigates designers’ interaction with various information sources during their design process.

Ritter, H., and Webber, M. (1973) Dilemmas in a general theory of planning.  Policy Sciences, 4, 155-169.  DOI 10.1007/BF01405730.

            Articulates the notion of ‘wicked problems’.

Schön, D. A. (1984) The Reflective Practitioner:  How Professionals Think in Action. Basic Books. ISBN 9780786725366.

            Schön describes design-like activities as involving a fluid interplay between actions and reflection upon those actions’ results.

Simon, H. A. (1996) The Sciences of the Artificial (3rd Edition). The MIT Press. ISBN 2900262691917.

            This book discusses design as a solution-finding activity, and proposes a program on the theory of design, with the broad aim of making design more scientific and repeatable.

Staffer, L., and Ullman, D. (1988) A comparison of the results of empirical studies into the mechanical design process. Design Studies, 9 (2), 107-144.  DOI 10.1016/0142-694X(88)90036-1.

            This survey discusses the goals, evidence, and conclusions of six studies of mechanical designers, providing a high-level look at some of the research of this kind being done at the time.

Suwa M., and Tversky B. (2002) External representations contribute to the dynamic construction of ideas. In Hegarty M., Meyer B., Narayanan N.H. (eds) Diagrams 2002:  Diagrammatic Representation and Inference. Lecture Notes in Computer Science, vol 2317. Springer.  341-343. DOI 10.1007/3-540-46037-3_33.

            This paper pulls together theory and evidence to explain how the vagueness, ambiguity and instability of sketches contribute to design creativity through an interplay of perception and reasoning, encouraging new discoveries and interpretations.

Visser, W. (2006) The Cognitive Artifacts of Designing. Taylor & Francis. ISBN 9780805855111.

            This cognitive-science-oriented look at design focuses on the representations that designers generate and the ways that they influence the creation of design solutions.

Vincenti, W.G. (1990) What Engineers Know and How They Know It:  Analytical Studies from Aeronautical History.  Johns Hopkins University Press. ISBN 9780801845888.

            Discusses the various processes (scientific, theoretical, practical, craft) that contribute to engineering design knowledge, and thereby considers the nature of engineering knowledge. 

Walker, D. (1993) The soup, the bowl, and the place at the table.  Design Management Journal, 4 (4), 10-22. DOI 10.1111/j.1948-7169.1993.tb00368.x.

            Walker’s summary of common characteristics among three pioneering consultancies highlights factors that stimulate creativity in terms of ‘the soup’ (creative people, small teams, the right mix of skills, the right environment), ‘the bowl’ (a management structure that nurtures creativity), and ‘the place at the table’ (the leadership and vision which provide motivation and focus).