Designerly thinking: what software methodology can learn from design theory

Design lies at the core of software creation and construction. Software methodology has traditionally conceptualised design as an engineering process, and attempted to express the design act as process steps and model transformations. The paper examines design from the rather different perspective of the non-software domains: architecture, industrial design and the academic design disciplines that have spawned 'design science'. This community dealt with design methods in the 1960s and 70s, and has subsequently moved on to more relative and holistic views of design that integrate artefact and context closely. Three themes dominate the comparative exclusion into this territory: the inappropriateness of process to prescribe the act of synthesis, the need to consider the product's wider context including its history and social context, and the need to legitimise and manage internal ways of transferring designs, design expertise and design languages. A case is made for a broader based notion of software design, a kind of 'designerly thinking' to help balance the intense demands on modern software product development, quality, and use.