Software Development Waste

Context: Since software development is a complex socio-technical activity that involves coordinating different disciplines and skill sets, it provides ample opportunities for waste to emerge. Waste is any activity that produces no value for the customer or user. Objective: The purpose of this paper is to identify and describe different types of waste in software development. Method: Following Constructivist Grounded Theory, we conducted a two-year five-month participant-observation study of eight software development projects at Pivotal, a software development consultancy. We also interviewed 33 software engineers, interaction designers, and product managers, and analyzed one year of retrospection topics. We iterated between analysis and theoretical sampling until achieving theoretical saturation. Results: This paper introduces the first empirical waste taxonomy. It identifies nine wastes and explores their causes, underlying tensions, and overall relationship to the waste taxonomy found in Lean Software Development. Limitations: Grounded Theory does not support statistical generalization. While the proposed taxonomy appears widely applicable, organizations with different software development cultures may experience different waste types. Conclusion: Software development projects manifest nine types of waste: building the wrong feature or product, mismanaging the backlog, rework, unnecessarily complex solutions, extraneous cognitive load, psychological distress, waiting/multitasking, knowledge loss, and ineffective communication.

[1]  Paul Ralph,et al.  Practice and perception of team code ownership , 2016, EASE.

[2]  J. Sweller,et al.  Cognitive Load Theory and Complex Learning: Recent Developments and Future Directions , 2005 .

[3]  John Sweller,et al.  Cognitive Load During Problem Solving: Effects on Learning , 1988, Cogn. Sci..

[4]  S. Monsell Task switching , 2003, Trends in Cognitive Sciences.

[5]  Paul Ralph,et al.  Sustainable Software Development through Overlapping Pair Rotation , 2016, ESEM.

[6]  Aaas News,et al.  Book Reviews , 1893, Buffalo Medical and Surgical Journal.

[7]  James P. Womack,et al.  Lean Thinking: Banish Waste and Create Wealth in Your Corporation , 1996 .

[8]  Kai Petersen,et al.  FLOW-assisted value stream mapping in the early phases of large-scale software development , 2016, J. Syst. Softw..

[9]  H. Selye,et al.  [Stress without distress]. , 1976, Bruxelles medical.

[10]  Kieran Conboy,et al.  Impediments to Flow: Rethinking the Lean Concept of 'Waste' in Modern Software Development , 2014, XP.

[11]  Mary Poppendieck,et al.  Lean Software Development: An Agile Toolkit , 2003 .

[12]  Mary Poppendieck,et al.  Implementing Lean Software Development: From Concept to Cash (The Addison-Wesley Signature Series) , 2006 .

[13]  B. Glaser Theoretical Sensitivity: Advances in the Methodology of Grounded Theory , 1978 .

[14]  Eric Allman,et al.  Managing technical debt , 2012, Commun. ACM.

[15]  新郷 重夫,et al.  A study of the Toyota production system from an industrial engineering viewpoint , 1989 .

[16]  Brian A. Nosek,et al.  A Decade of System Justification Theory: Accumulated Evidence of Conscious and Unconscious Bolstering of the Status Quo , 2004 .

[17]  B. Glaser Doing grounded theory : issues and discussions , 1998 .

[18]  Paul Ralph,et al.  Grounded Theory in Software Engineering Research: A Critical Review and Guidelines , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[19]  K. Charmaz,et al.  Constructing Grounded Theory , 2014 .

[20]  Kai Petersen,et al.  Waste and Lead Time Reduction in a Software Product Customization Process with Value Stream Maps , 2010, 2010 21st Australian Software Engineering Conference.

[21]  J. Sweller Element Interactivity and Intrinsic, Extraneous, and Germane Cognitive Load , 2010 .

[22]  Tony Gorschek,et al.  Extending value stream mapping through waste definition beyond customer perspective , 2014, J. Softw. Evol. Process..

[23]  A. Artino Cognitive Load Theory and the Role of Learner Experience: An Abbreviated Review for Educational Practitioners , 2008 .

[24]  Jeffrey K. Liker,et al.  The Toyota way : 14 management principles from the world's greatest manufacturer , 2004 .

[25]  大野 耐一,et al.  Toyota production system : beyond large-scale production , 1988 .

[26]  Eric Allman,et al.  Managing Technical Debt , 2012, ACM Queue.

[27]  Esther Derby,et al.  Agile Retrospectives: Making Good Teams Great , 2006 .

[28]  Arthur Todd Sedano,et al.  Sustainable Software Development: Evolving Extreme Programming , 2017 .

[29]  Jonathan Grudin,et al.  Personas, Participatory Design and Product Development: An Infrastructure for Engagement , 2002 .

[30]  Kent Beck,et al.  Extreme Programming Explained: Embrace Change (2nd Edition) , 2004 .

[31]  D. Etzion,et al.  The impact of vacation and job stress on burnout and absenteeism , 2001, Psychology & health.