Human Factors in Software Development: A Systematic Literature Review

Background: Software Development Process is a human-centered activity. This fact highlights the impact of human factors on the development process and performance from different perspectives. Aim: This thesis project aims to identify and characterize human factors influencing the software development process from development lifecycle and software management perspectives. Method: The systematic literature review initial search resulted in 401 papers among which 67 journal papers (2000-2010) were picked based on two filtering phases. The selected papers were classified and analyzed according to software development phases, software engineering management, human roles and level of human factors focus. Results: Data extracted from the selected papers was mapped to SWEBOK [125]. Among software development phases (waterfall model) the most common one in human factors studies is “Requirement Engineering” addressed by 67% of the inspected papers followed by “Design” (52%). “Software Project Enactment” is the most common software engineering management phase from human factors perspective (67 papers, 100%) followed by “Initiation and Scope Definition and Software Project Planning” (89%) and “Software Engineering Measurements” (56%). Human plays different roles in development process which has impact on the process performance and success. It can be Customer, Developer or Manager. The main human role was “Developer” covered by 94% of the inspected papers. The highest level of human factors focus among these papers was “Individual” level addressed by 76% papers followed by “Organizational” level. (70%) And finally the most common research method among the selected papers was case study (industrial) being applied in 78% of the empirical studies. Conclusion: Despite of the human factors impact on software development process and its level of success/failure, there has not been enough focus by primary study researchers on the area. Human factors have been overlooked in late phases of development process as well as software engineering management. In contrast with all other areas of business which their highest concern is the customer, among the inspected papers this role has been overlooked by researchers. As transferring from preplanned to agile development process, there will be more “Interpersonal” level of human factors involved that has not been addressed well by researchers so far.

[1]  W. Smith,et al.  Creating high performing software engineering teams: the impact of problem solving style dominance on group conflict and performance , 2008 .

[2]  Bernard Wong,et al.  Understanding Stakeholder Values as a Means of Dealing with Stakeholder Conflicts , 2005, Software Quality Journal.

[3]  Brandon Dixon,et al.  Enhancing the Cocomo Estimation Models , 2000, IEEE Softw..

[4]  Tore Dybå,et al.  The Future of Empirical Methods in Software Engineering Research , 2007, Future of Software Engineering (FOSE '07).

[5]  JørgensenMagne,et al.  The effects of request formats on judgment-based effort estimation , 2010 .

[6]  Daniela E. Damian,et al.  Selecting Empirical Methods for Software Engineering Research , 2008, Guide to Advanced Empirical Software Engineering.

[7]  Reijo Sulonen,et al.  Implementing requirements engineering processes throughout organizations: success factors and challenges , 2004, Inf. Softw. Technol..

[8]  Hany H. Ammar,et al.  A Methodology for Architecture-Level Reliability Risk Analysis , 2002, IEEE Trans. Software Eng..

[9]  Ian Sommerville,et al.  Integrating safety analysis and requirements engineering , 1997, Proceedings of Joint 4th International Computer Science Conference and 4th Asia Pacific Software Engineering Conference.

[10]  Keng Siau,et al.  Technical communication in information systems development: the use of cognitive mapping , 2005 .

[11]  Natalia Juristo Juzgado,et al.  Emphasizing human capabilities in software development , 2006, IEEE Software.

[12]  Tore Dybå,et al.  Empirical studies of agile software development: A systematic review , 2008, Inf. Softw. Technol..

[13]  Tore Dybå,et al.  What Do We Know about Agile Software Development? , 2009, IEEE Software.

[14]  Walt Scacchi,et al.  Process Models in Software Engineering , 2001 .

[15]  Magne Jørgensen,et al.  Identification of more risks can lead to increased over-optimism of and over-confidence in software development effort estimates , 2010, Inf. Softw. Technol..

[16]  R. Yin Case Study Research: Design and Methods , 1984 .

[17]  Tony Gorschek,et al.  Empirical evidence in global software engineering: a systematic review , 2010, Empirical Software Engineering.

[18]  Theresa Beaubouef,et al.  An experimental group for researching and developing software , 2008 .

[19]  Vathsala Wickramasinghe,et al.  Towards workplace flexibility: flexitime arrangements in Sri Lanka , 2007 .

[20]  R. Feldt,et al.  Software Product Line Variability: A Systematic Mapping Study , 2008 .

[21]  Niklaus Wirth,et al.  A Brief History of Software Engineering , 2008, IEEE Annals of the History of Computing.

[22]  Magne Jørgensen,et al.  Software Development Estimation Biases: The Role of Interdependence , 2012, IEEE Transactions on Software Engineering.

[23]  Forrest Shull,et al.  Creating Software Process Capability/Maturity Models , 2010, IEEE Software.

[24]  Walker Royce Software Project Management , 1998 .

[25]  Stephanie D. Teasley,et al.  Rapid Software Development through Team Collocation , 2002, IEEE Trans. Software Eng..

[26]  Kai Petersen,et al.  Systematic Mapping Studies in Software Engineering , 2008, EASE.

[27]  Pearl Brereton,et al.  Cross-domain investigation of empirical practices , 2009, IET Softw..

[28]  C MartinRobert eXtreme Programming Development through Dialog , 2000 .

[29]  Yvonne Dittrich,et al.  ERP Customization as Software Engineering: Knowledge Sharing and Cooperation , 2009, IEEE Software.

[30]  W. W. Royce,et al.  Managing the development of large software systems: concepts and techniques , 1987, ICSE '87.

[31]  Tony Gorschek,et al.  Evaluation and Measurement of Software Process Improvement—A Systematic Literature Review , 2012, IEEE Transactions on Software Engineering.

[32]  Magne Jørgensen,et al.  Avoiding Irrelevant and Misleading Information When Estimating Development Effort , 2008, IEEE Software.

[33]  Mark Staples,et al.  Experiences using systematic review guidelines , 2006, J. Syst. Softw..

[34]  Jeffrey C. Carver,et al.  A systematic literature review to identify and classify software requirement errors , 2009, Inf. Softw. Technol..

[35]  Helen Sharp,et al.  Using Metaphor to Analyse Qualitative Data: Vulcans and Humans in Software Development , 2005, Empirical Software Engineering.

[36]  Kathleen M. Carley,et al.  Who You Know vs. What You Know: The Impact of Social Position and Knowledge on Team Performance , 2006 .

[37]  Luiz Fernando Capretz,et al.  Making Sense of Software Development and Personality Types , 2010, IT Professional.

[38]  J. Calder Survey research methods , 1998, Medical education.

[39]  Pearl Brereton,et al.  Performing systematic literature reviews in software engineering , 2006, ICSE.

[40]  Pearl Brereton,et al.  Lessons from applying the systematic literature review process within the software engineering domain , 2007, J. Syst. Softw..

[41]  Andrew May,et al.  A case study of virtual team working in the European automotive industry , 2001 .

[42]  Magne Jørgensen,et al.  Impact of effort estimates on software project work , 2001, Inf. Softw. Technol..

[43]  Herbert Moskowitz,et al.  Human resource selection for software development projects using Taguchi's parameter design , 2003, Eur. J. Oper. Res..

[44]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[45]  Magne Jørgensen,et al.  The Impact of Lessons-Learned Sessions on Effort Estimation and Uncertainty Assessments , 2009, IEEE Transactions on Software Engineering.

[46]  R. Feldt,et al.  A systematic review on strategic release planning models , 2010, Inf. Softw. Technol..

[47]  Guilherme Horta Travassos,et al.  Cross versus Within-Company Cost Estimation Studies: A Systematic Review , 2007, IEEE Transactions on Software Engineering.

[48]  Marvin V. Zelkowitz,et al.  Experimental validation in software engineering , 1997, Inf. Softw. Technol..

[49]  Didar Zowghi,et al.  Requirements Engineering challenges in multi-site software development organizations , 2004 .

[50]  Kalle Lyytinen,et al.  Large-Scale Requirements Analysis Revisited: The need for Understanding the Political Ecology of Requirements Engineering , 2002, Requirements Engineering.

[51]  George Mangalaraj,et al.  Challenges of migrating to agile methodologies: Organizations must carefully assess their readiness . before treading the path of agility , 2005 .

[52]  Kenneth M. Anderson,et al.  A View of Software Development Environments Based on Activity Theory , 2002, Computer Supported Cooperative Work (CSCW).

[53]  Barbara A. Kitchenham,et al.  Modeling Software Bidding Risks , 2003, IEEE Trans. Software Eng..

[54]  Patricia A. Carlson,et al.  Information technology and the emergence of a worker-centered organization , 2000, AJCD.

[55]  Zahir Irani,et al.  Empirical testing of an information systems evaluation framework , 2002, Int. J. Inf. Technol. Manag..

[56]  Carolyn B. Seaman,et al.  Qualitative Methods in Empirical Studies of Software Engineering , 1999, IEEE Trans. Software Eng..

[57]  Wasif Afzal,et al.  A systematic review of search-based testing for non-functional system properties , 2009, Inf. Softw. Technol..

[58]  Forrest Shull,et al.  Are Two Heads Better than One? On the Effectiveness of Pair Programming , 2007, IEEE Software.

[59]  Guilherme Horta Travassos,et al.  Scientific research ontology to support systematic review in software engineering , 2007, Adv. Eng. Informatics.

[60]  Gordon I. McCalla Software engineering requires individual professionalism , 2002, CACM.

[61]  Bente Anda,et al.  Are We More Productive Now? Analyzing Change Tasks to Assess Productivity Trends during Software Evolution , 2009, ENASE.

[62]  Wilbur Schramm,et al.  Notes on Case Studies of Instructional Media Projects. , 1971 .

[63]  Magne Jørgensen,et al.  How to Avoid Selecting Bids Based on Overoptimistic Cost Estimates , 2009, IEEE Software.

[64]  Georgios Koutsoukos,et al.  Mentality patterns: recurring turns of mind as first-class concerns in software projects , 2008 .

[65]  Munindar P. Singh,et al.  Amoeba: A methodology for modeling and evolving cross-organizational business processes , 2009, TSEM.

[66]  Lars Mathiassen,et al.  Managing Risks in Distributed Software Projects: An Integrative Framework , 2009, IEEE Transactions on Engineering Management.

[67]  Forrest Shull,et al.  What Do We Know about Knowledge Management? Practical Implications for Software Engineering , 2009, IEEE Software.

[68]  Mark Lycett,et al.  Migrating Agile Methods to Standardized Development Practice , 2003, Computer.

[69]  Nils Brede Moe,et al.  The Impact of Employee Participation on the Use of an Electronic Process Guide: A Longitudinal Case Study , 2008, IEEE Transactions on Software Engineering.

[70]  Mike Cohn,et al.  Introducing an Agile Process to an Organization , 2003, Computer.

[71]  Lazaros G. Papageorgiou,et al.  Optimisation-based scheduling: A discrete manufacturing case study , 2005, Comput. Ind. Eng..

[72]  A. Cockburn,et al.  Agile Software Development: The People Factor , 2001, Computer.

[73]  Pearl Brereton,et al.  Large-scale software engineering questions expert opinion or empirical evidence? , 2007, IET Softw..

[74]  James E. Tomayko,et al.  Reflection and abstraction in learning software engineering's human aspects , 2005, Computer.

[75]  Daniela E. Damian,et al.  The impact of stakeholders' geographical distribution on managing requirements in a multi-site organization , 2002, Proceedings IEEE Joint International Conference on Requirements Engineering.

[76]  Will Venters,et al.  Software engineering: theory and practice , 2006 .

[77]  Magne Jørgensen,et al.  Regression Models of Software Development Effort Estimation Accuracy and Bias , 2004, Empirical Software Engineering.

[78]  Johan F. Hoorn,et al.  Requirements change: Fears dictate the must haves; desires the won't haves , 2007, J. Syst. Softw..

[79]  Maurizio Morisio Applying the PSP in Industry , 2000, IEEE Softw..

[80]  Luis Fernández Sanz,et al.  Empirical support for the generation of domain-oriented quality models , 2010, IET Softw..

[81]  Tore Dybå,et al.  A systematic review of statistical power in software engineering experiments , 2006, Inf. Softw. Technol..

[82]  John Moses,et al.  Measuring Effort Estimation Uncertainty to Improve Client Confidence , 2002, Software Quality Journal.

[83]  S. Delanghe,et al.  Using learning styles in software documentation , 2000 .

[84]  Lefteris Angelis,et al.  Links between the personalities, views and attitudes of software engineers , 2010, Inf. Softw. Technol..

[85]  Phillip G. Armour The spiritual life of projects , 2002, CACM.

[86]  Lutz Prechelt,et al.  An Experiment Measuring the Effects of Personal Software Process (PSP) Training , 2001, IEEE Trans. Software Eng..

[87]  Magne Jørgensen,et al.  The effects of request formats on judgment-based effort estimation , 2010, J. Syst. Softw..

[88]  Marco Torchiano,et al.  A State-of-the-Practice Survey of Risk Management in Development with Off-the-Shelf Software Components , 2008, IEEE Transactions on Software Engineering.

[89]  Alain Abran,et al.  The Guide to the Software Engineering Body of Knowledge , 1999, IEEE Softw..

[90]  Joerg Evermann,et al.  An Exploratory Study of Database Integration Processes , 2008, IEEE Transactions on Knowledge and Data Engineering.

[91]  Hans van Vliet Software Engineering: Principles and Practice, 2nd Edition , 2000 .

[92]  Shari Lawrence Pfleeger,et al.  Principles of survey research: part 1: turning lemons into lemonade , 2001, SOEN.

[93]  Kristin Børte,et al.  Software Effort Estimation as Collective Accomplishment: An analysis of estimation practice in a multi-specialist team , 2010, Scand. J. Inf. Syst..

[94]  G. Steven McMillan,et al.  The impact of publicly funded basic research: an integrative extension of Martin and Salter , 2003, IEEE Trans. Engineering Management.

[95]  Magne Jørgensen,et al.  A Systematic Review of Software Development Cost Estimation Studies , 2007, IEEE Transactions on Software Engineering.

[96]  Charlie C. Chen,et al.  Managing ERP Implementation Failure: A Project Management Perspective , 2009, IEEE Transactions on Engineering Management.

[97]  Brian R. Gaines,et al.  Using Different Communication Media in Requirements Negotiation , 2000, IEEE Softw..

[98]  Tridas Mukhopadhyay,et al.  Software Project Duration and Effort: An Empirical Study , 2002, Inf. Technol. Manag..

[99]  Alok Mishra,et al.  Strength of shoulder during one-handed pushing in constrained conditions , 2009 .

[100]  Barry W. Boehm,et al.  Management challenges to implementing agile processes in traditional development organizations , 2005, IEEE Software.

[101]  Helen Sharp,et al.  A systematic review of theory use in studies investigating the motivations of software engineers , 2009, TSEM.

[102]  Frank Maurer,et al.  Requirements engineering and agile software development , 2003, WET ICE 2003. Proceedings. Twelfth IEEE International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises, 2003..

[103]  Norman Chonacky,et al.  3Ms for Instruction: Reviews of Maple, Mathematica, and Matlab , 2005, Computing in Science & Engineering.

[104]  Tufan Koc,et al.  Organizational determinants of innovation capacity in software companies , 2007, Comput. Ind. Eng..

[105]  Robert R. Hoffman,et al.  Human Total Cost of Ownership: The Penny Foolish Principle at Work , 2007, IEEE Intelligent Systems.

[106]  Volker Wulf,et al.  Operational and Strategic Learning in Global Software Development - Implications from two Offshoring Case Studies in Small Enterprises , 2009 .

[107]  Mary Shaw,et al.  Prospects for an engineering discipline of software , 1990, IEEE Software.

[108]  N. Kasabov,et al.  Evolving Intelligence in Humans and Machines: Integrative Evolving Connectionist Systems Approach , 2008, IEEE Computational Intelligence Magazine.

[109]  Netta Iivari,et al.  'Representing the User' in software development - a cultural analysis of usability work in the product development context , 2006, Interact. Comput..

[110]  G. Colditz,et al.  How to use the evidence: assessment and application of scientific evidence , 1999 .

[111]  Magne Jørgensen,et al.  Better sure than safe? Over-confidence in judgement based software development effort prediction intervals , 2004, J. Syst. Softw..

[112]  Chad Saunders,et al.  Cognitive heuristics in software engineering applying and extending anchoring and adjustment to artifact reuse , 2004, IEEE Transactions on Software Engineering.

[113]  Ulf Asklund,et al.  A study of configuration management in open source software projects , 2002, IEE Proc. Softw..

[114]  Sarah Cooper,et al.  The identification and application of knowledge capital within small firms , 2005 .

[115]  Maurizio Morisio,et al.  Success and Failure Factors in Software Reuse , 2002, IEEE Trans. Software Eng..

[116]  Ramanath Subramanyam,et al.  User participation in software development projects , 2010, CACM.

[117]  A Straw,et al.  Guide to the Software Engineering Body of Knowledge , 1998 .

[118]  Tore Dybå,et al.  A systematic review of effect size in software engineering experiments , 2007, Inf. Softw. Technol..

[119]  Susanne Bødker,et al.  Introduction the debate section: A short review to the past and present of participatory design , 2010, Scand. J. Inf. Syst..

[120]  Kjetil Moløkken-Østvold,et al.  Using planning poker for combining expert estimates in software projects , 2008, J. Syst. Softw..

[121]  Barbara Kitchenham,et al.  Procedures for Performing Systematic Reviews , 2004 .

[122]  Magne Jørgensen,et al.  To read two pages, I need 5 minutes, but give me 5 minutes and I will read four: how to change productivity estimates by inverting the question , 2011 .

[123]  Tore Dybå,et al.  A Systematic Review of Theory Use in Software Engineering Experiments , 2007, IEEE Transactions on Software Engineering.