Design Thinking and Agile Practices for Software Engineering: An Opportunity for Innovation

Commonly, the instruction of Software Engineering implements processes that are inherent to the theory and practice of software development. Traditional and Agile methods lay the foundation for building "functional software products" that meet the requirements of a system of a larger scope. However, if we consider software as a product that frequently has the mission of satisfying the needs of human users, we can go beyond the typical "analysis - design - implementation - testing" process, to reinterpret it with the "empathize - define - ideate - prototype - testing" proposed by Design Thinking, a development methodology commonly used in creative and innovative professional settings. In this work, we study the use of Design Thinking as a methodological approach for the instruction of Software Engineering at undergraduate level, in courses that have the particular aim of creating innovative software products from scratch. We describe the similarities and differences between Design Thinking and Software Development Processes, taking as instance Agile Practices. We compare evidence on methods and deliverables produced by students in their learning path using Agile Practices and Design Thinking in two different educational environments. Finally, we discuss coincidences, weaknesses, and opportunities to keep investigating in this topic as a research subject, toward finding practices to promote in students both creativity and technical discipline to develop innovative software solutions

[1]  Ilenia Fronza,et al.  Teaching Computational Thinking Using Agile Software Engineering Methods , 2017, ACM Trans. Comput. Educ..

[2]  Jorge L. Díaz-Herrera,et al.  Improving software practice through education: Challenges and future trends , 2007, Future of Software Engineering (FOSE '07).

[3]  Alistair Cockburn,et al.  Agile Software Development: The Business of Innovation , 2001, Computer.

[4]  Magda Huisman,et al.  The Relevance of Software Development Education for Students , 2014, IEEE Transactions on Education.

[5]  Tim Brown,et al.  Design Thinking for Social Innovation , 2010 .

[6]  Christoph Meinel,et al.  Design Thinking: Understand - Improve - Apply , 2010 .

[7]  Barbara Oakley It Takes Two to Tango: How 'Good' Students Enable Problematic Behavior in Teams. , 2002 .

[8]  Christine Tayntor Six Sigma Software Development, Second Edition , 2007 .

[9]  Pekka Abrahamsson,et al.  New directions on agile methods: a comparative analysis , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[10]  Michael A. Cusumano,et al.  Lean Software Development: A Tutorial , 2012, IEEE Software.

[11]  Katja Thoring,et al.  DESIGN THINKING VS. LEAN STARTUP: A COMPARISON OF TWO USER-DRIVEN INNOVATION STRATEGIES , 2012 .

[12]  Mary Shaw,et al.  Software engineering education: a roadmap , 2000, ICSE '00.

[13]  Alberto Sillitti,et al.  Software assurance practices for mobile applications , 2014, Computing.

[14]  M. Brian Blake,et al.  A student-enacted simulation approach to software engineering education , 2003, IEEE Trans. Educ..

[15]  Vishal Chandra,et al.  Comparison between Various Software Development Methodologies , 2015 .

[16]  Narasimha Bolloju,et al.  Designing Software Engineering Courses for Effective Teaching and Learning , 2017, ISEC.

[17]  Christoph Meinel,et al.  Design Thinking: A Fruitful Concept for IT Development? , 2011 .

[18]  Aldo Dagnino,et al.  Agile Software Development in Large Organizations , 2004, Computer.

[19]  Christine B. Tayntor Six Sigma Software Development , 2002 .

[20]  Claes Wohlin,et al.  Global software engineering and agile practices: a systematic review , 2012, J. Softw. Evol. Process..

[21]  Sergio F. Ochoa,et al.  A systematic mapping study on practical approaches to teaching software engineering , 2014, 2014 IEEE Frontiers in Education Conference (FIE) Proceedings.

[22]  Alan M. Davis,et al.  A Strategy for Comparing Alternative Software Development Life Cycle Models , 1988, IEEE Trans. Software Eng..

[23]  Julian M. Bass,et al.  How product owner teams scale agile methods to large distributed enterprises , 2014, Empirical Software Engineering.

[24]  Nancy R. Mead Software Engineering Education: How Far We've Come and How Far We Have to Go , 2008, 2008 21st Conference on Software Engineering Education and Training.