In two minds: how reflections influence software design thinking

We theorize a two‐mind model of design thinking. Mind 1 is about logical design reasoning, and Mind 2 is about the reflection on our reasoning and judgments. The problem solving ability of Mind 1 has often been emphasized in software engineering. The reflective Mind 2, however, has not received much attention. In this study, we want to find out if Mind 2, or reflection, can improve design discourse, a prerequisite of design quality. We conducted multiple case studies with 12 student groups, divided into test groups and control groups. We provided external reflections to the test groups. No reflections were given to the control groups. We analyzed the quality of the design discourse in both groups. We found that reflection (Mind 2) improves the quality of design discourse (Mind 1) under certain preconditions. The results highlight the significance of reflection as a mean to improve the quality of design discourse. We conclude that software designers need both Mind 1 and Mind 2 to obtain a higher quality design discourse, as a foundation for a good design. Copyright © 2016 John Wiley & Sons, Ltd.

[1]  D. Schoen,et al.  The Reflective Practitioner: How Professionals Think in Action , 1985 .

[2]  John M. Carroll,et al.  Synthesis by Analysis: Five Modes of Reasoning That Guide Design , 1996 .

[3]  Jacob Cohen,et al.  Weighted kappa: Nominal scale agreement provision for scaled disagreement or partial credit. , 1968 .

[4]  Bill Curtis,et al.  A field study of the software design process for large systems , 1988, CACM.

[5]  Ayse Basar Bener,et al.  An analysis of the effects of company culture, education and experience on confirmation bias levels of software developers and testers , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[6]  M. Manen Linking Ways of Knowing with Ways of Being Practical , 1977 .

[7]  Antony Tang,et al.  Software architecture review by association , 2014, J. Syst. Softw..

[8]  Mary Shaw The Role of Design Spaces , 2012, IEEE Software.

[9]  Hans van Vliet,et al.  Architecting as a Risk- and Cost Management Discipline , 2011, 2011 Ninth Working IEEE/IFIP Conference on Software Architecture.

[10]  Orit Hazzan,et al.  System Analysis and Design in a Large-Scale Software Project: The Case of Transition to Agile Development , 2006, ICEIS.

[11]  Jae-Won Moon Reflection in Learning and Professional Development: Theory and Practice , 2005 .

[12]  Webb Stacy,et al.  Cognitive bias in software engineering , 1995, CACM.

[13]  Matthew B. Miles,et al.  Qualitative Data Analysis: An Expanded Sourcebook , 1994 .

[14]  H. Rittel,et al.  Dilemmas in a general theory of planning , 1973 .

[15]  Neil A. M. Maiden,et al.  The Reflective Software Engineer: Reflective Practice , 2014, IEEE Softw..

[16]  Venugopal Balijepally,et al.  Theoretical reflections on agile development methodologies , 2007, Commun. ACM.

[17]  Andraž Cej,et al.  Agile software development with Scrum , 2010 .

[18]  Hans van Vliet,et al.  Software Architecture Knowledge Management , 2008, 19th Australian Conference on Software Engineering (aswec 2008).

[19]  Michael L. Begeman,et al.  gIBIS: a hypertext tool for exploratory policy discussion , 1988, CSCW '88.

[20]  Patricia Lago,et al.  A Template for SOA Design Decision Making in an Educational Setting , 2010, 2010 36th EUROMICRO Conference on Software Engineering and Advanced Applications.

[21]  Thomas P. Moran,et al.  Questions, Options, and Criteria: Elements of Design Space Analysis , 1991, Hum. Comput. Interact..

[22]  Christine Nadel,et al.  Case Study Research Design And Methods , 2016 .

[23]  Jon Whittle,et al.  Supporting Reflective Practice in Software Engineering Education through a Studio-Based Approach , 2014, IEEE Software.

[24]  Antony Tang,et al.  Software designers, are you biased? , 2011, SHARK '11.

[25]  N. Epley,et al.  The Anchoring-and-Adjustment Heuristic , 2006, Psychological science.

[26]  Mary Lou Maher,et al.  Formalising Design Exploration as Co-Evolution , 1996 .

[27]  Antony Tang,et al.  Design Reasoning Improves Software Design Quality , 2008, QoSA.

[28]  John McAvoy,et al.  The role of project management in ineffective decision making within Agile software development projects , 2009, Eur. J. Inf. Syst..

[29]  David Budgen,et al.  Software design , 2020, International computer science series.

[30]  Frank Leymann,et al.  Managing architectural decision models with dependency relations, integrity constraints, and production rules , 2009, J. Syst. Softw..

[31]  A Donner,et al.  The estimation of intraclass correlation in the analysis of family data. , 1980, Biometrics.

[32]  Bashar Nuseibeh,et al.  Weaving Together Requirements and Architectures , 2001, Computer.

[33]  Rick Kazman,et al.  The architecture tradeoff analysis method , 1998, Proceedings. Fourth IEEE International Conference on Engineering of Complex Computer Systems (Cat. No.98EX193).

[34]  Bashar Nuseibeh,et al.  Relating software requirements and architectures using problem frames , 2002, Proceedings IEEE Joint International Conference on Requirements Engineering.

[35]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2000, The Kluwer International Series in Software Engineering.

[36]  Bo Brinkman,et al.  Using Rationale to Assist Student Cognitive and Intellectual Development , 2010 .

[37]  Antony Tang,et al.  A Constraint-Oriented Approach to Software Architecture Design , 2009, 2009 Ninth International Conference on Quality Software.

[38]  J. Ciardi Fast and Slow , 1975 .

[39]  J. Habermas Theory of Communicative Action , 1981 .

[40]  Tua Björklund,et al.  Initial mental representations of design problems: Differences between experts and novices , 2013 .

[41]  Raymond McCall,et al.  CRITICAL CONVERSATIONS: FEEDBACK AS A STIMULUS TO CREATIVITY IN SOFTWARE DESIGN , 2010 .

[42]  Marilyn Lamoreux Improving agile team learning by improving team reflections [agile software development] , 2005, Agile Development Conference (ADC'05).

[43]  Richard Paul,et al.  The Thinker's Guide to Engineering Reasoning , 2013 .

[44]  J. Lockyer,et al.  Knowledge translation: the role and place of practice reflection. , 2004, The Journal of continuing education in the health professions.

[45]  Antony Tang,et al.  Modeling constraints improves software architecture design reasoning , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[46]  Henry Mintzberg,et al.  Opening up Decision Making: The View from the Black Stool , 1995 .

[47]  D. Boud,et al.  Reflection, turning experience into learning , 1985 .

[48]  John S. Gero,et al.  The Situated Function — Behaviour — Structure Framework , 2004 .

[49]  Donald A. Sch The reflective practitioner: how professionals think in action , 1983 .

[50]  Jeffrey V. Nickerson,et al.  Going Meta: Design Space and Evaluation Space in Software Design , 2012 .

[51]  Robert L. Nord,et al.  Generalizing a Model of Software Architecture Design from Five Industrial Approaches , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[52]  A. Tversky,et al.  Subjective Probability: A Judgment of Representativeness , 1972 .

[53]  S. Sonnentag Expertise in professional software design: a process study. , 1998, The Journal of applied psychology.

[54]  Hans van Vliet,et al.  RCDA: Architecting as a risk- and cost management discipline , 2012, J. Syst. Softw..

[55]  Philippe Kruchten,et al.  Building Up and Reasoning About Architectural Knowledge , 2006, QoSA.

[56]  L. Franklin,et al.  Exploratory Experiments , 2005, Philosophy of Science.

[57]  Peter Lloyd,et al.  Storytelling and the development of discourse in the engineering design process , 2000 .

[58]  Orit Hazzan,et al.  Reflections on reflection in agile software development , 2006, AGILE 2006 (AGILE'06).

[59]  Luiz Fernando Capretz,et al.  Why do we need personality diversity in software engineering? , 2010, SOEN.

[60]  Isabelle Reymen,et al.  Levels of expertise in design education , 2004 .

[61]  Rashina Hoda,et al.  Embedding Reflection and Learning into Agile Software Development , 2014, IEEE Software.

[62]  A. Tversky,et al.  Judgment under Uncertainty: Heuristics and Biases , 1974, Science.

[63]  Antony Tang,et al.  Design Strategy and Software Design Effectiveness , 2012, IEEE Software.

[64]  Antony Tang,et al.  Software Designers Satisfice , 2015, ECSA.

[65]  Maryam Razavian,et al.  Feminine Expertise in Architecting Teams , 2016, IEEE Software.

[66]  Antony Tang,et al.  Software Architecture Design Reasoning: A Case for Improved Methodology Support , 2009, IEEE Software.

[67]  R. J. Bogumil,et al.  The reflective practitioner: How professionals think in action , 1985, Proceedings of the IEEE.

[68]  Helen Sharp,et al.  A pattern language for inter-team knowledge sharing in agile software development , 2013 .

[69]  Carey K. Morewedge,et al.  A simple remedy for overprecision in judgment. , 2010, Judgment and decision making.

[70]  Nigel Cross,et al.  Creativity in the design process: co-evolution of problem–solution , 2001 .

[71]  N. McGlynn Thinking fast and slow. , 2014, Australian veterinary journal.

[72]  Twan Basten,et al.  A domain-independent descriptive design model and its application to structured reflection on design processes , 2006 .

[73]  Herbert A. Simon,et al.  The Sciences of the Artificial , 1970 .

[74]  P. Lago,et al.  Explicit assumptions enrich architectural models , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[75]  Herbert A. Simon,et al.  The Structure of Ill Structured Problems , 1973, Artif. Intell..

[76]  L. Tribe,et al.  Confirmation bias , 2009 .

[77]  Christoph Burger,et al.  Biased Evaluation of Abstracts Depending on Topic and Conclusion: Further Evidence of a Confirmation Bias Within Scientific Psychology , 2010 .

[78]  Mary Lou Maher,et al.  Formalising Design Exploration as Co-Evolution , 1996 .

[79]  Bill Curtis,et al.  Breakdowns and processes during the early activities of software design by professionals , 1987 .

[80]  Torgeir Dingsøyr,et al.  Rationale promotes Learning about Architectural Knowledge , 2006 .

[81]  Hans van Vliet,et al.  What makes software design effective , 2010 .

[82]  Mike Chiasson,et al.  A model of design decision making based on empirical results of interviews with software designers , 2007, Inf. Softw. Technol..

[83]  Ac Rianne Valkenburg,et al.  The reflective practice of design teams , 1998 .

[84]  Kees Dorst,et al.  The core of ‘design thinking’ and its application , 2011 .

[85]  Kees Dorst,et al.  Design Problems and Design Paradoxes , 2006, Design Issues.

[86]  Hans van Vliet,et al.  Software Architecture Design Reasoning , 2009, Software Architecture Knowledge Management.

[87]  Per Runeson,et al.  Guidelines for conducting and reporting case study research in software engineering , 2009, Empirical Software Engineering.

[88]  Shari Lawrence Pfleeger,et al.  Preliminary Guidelines for Empirical Research in Software Engineering , 2002, IEEE Trans. Software Eng..