Processes versus people: How should agile software development maturity be defined?
Graphical abstract
Introduction
A number of agile software development methods with different properties and applications have been proposed in recent years. All are people-focused, communication-oriented, flexible, speedy, lean, responsive and learning-oriented (Qumer and Henderson-Sellers, 2008b). These characteristics, disclosed in the Agile Manifesto (Beck et al., 2001), have brought changes to software engineering as never before, including a variety of new software methods, tools, techniques and best practices (Dingsøyr et al., 2012).
These new methods encompass different aspects of software development. Scrum and Internet-speed Development (ISD), for example, emphasize project management practices; Agile Modeling, Extreme Programming (XP) and Pragmatic Programming cover aspects related to software development; and others, such as Adaptive Software Development, Crystal Family, Dynamic Systems Development Model (DSDM) and Feature-driven Development (FDD), support both project management and software development processes (Abrahamsson et al., 2003). Scrum is one of the most widely adopted methods, but usually with significant tailoring, i.e., teams usually adapt practices to their own contexts (Bustard et al., 2013).
One specific context in which agile methods must be adapted is when they are implemented along with software process improvement (SPI) initiatives (Lukasiewicz and Miler, 2012, Baker, 2006, Jakobsen and Johnson, 2008, Sutherland et al., 2007, Cohan and Glazer, 2009, Anderson, 2005, Paulk, 2001). These SPI initiatives are based on the ISO/IEC 15504 (ISO/IEC, 2004) international standard or the Capability Maturity Model Integration for Development (CMMI-DEV), which defines a model that focuses on process definition and control to provide stability and maximize productivity in software development (SEI, 2010). CMMI-DEV requires that processes be formally defined and controlled, which is not usual practice in agile software development environments. Hence, there is a need to adapt agile practices to suit CMMI-DEV requirements.
This need for adaptation brings into focus the fact that the current concept of maturity defined by CMMI-DEV cannot be directly applied to agile methods: it is not possible to maintain agility at higher maturity levels (Lukasiewicz and Miler, 2012, Paulk, 2001). SPI initiatives based on CMMI-DEV or ISO/IEC 15504 focus on improving software productivity rather than on delivering higher value to stakeholders (Boehm and Turner, 2003), which highlights differences between the principles behind SPI initiatives and those behind agile methods (Bhasin, 2012, Siakas and Siakas, 2007). We believe that these differences encourage thinking about other forms of software development maturity; otherwise, agile teams could never achieve maturity without shifting their focus from people to processes.
This paper therefore describes an exploratory study that seeks to discover whether agile maturity is the same as maturity defined by current SPI models. The question we posed was: how do agile software development practitioners define maturity? We conducted a survey among Brazilian agile software development practitioners to identify to what extent they classify certain practices as mature and how they define maturity. We applied statistical cluster analysis and content analysis to analyze the data.
In Section 2 we discuss how maturity in agile software development has been described in the literature. Section 3 describes the research approach, Sections 4 Quantitative data analysis, 5 Qualitative analysis show the results of the data analysis, and Sections 6 Discussion, 7 Conclusion report our understanding of the findings and conclusions.
Section snippets
Maturity in agile methods
Maturity models are instruments used to rate capabilities, and based on this rating, initiatives can be implemented to improve the maturity of an element—a person, an object or a social system (Kohlegger et al., 2009). In each model there is thus an underlying concept of the maturity of an element. According to Maier et al. (2012), current maturity models in the field of software engineering and elsewhere have been defined mainly in terms of structured and measurable processes, i.e., maturity
Research approach
This section shows how we conducted our research (Section 3.1) and analyzed the resulting data (Sections 3.2 Method used to analyze the maturity of practices, 3.3 Method used to analyze the open-ended question) and includes a discussion on the validity of the results (Section 3.4)
Quantitative data analysis
In this section we present the results of the analysis of the maturity classifications that respondents assigned to the 85 practices in our questionnaire. Table 4 shows how the cluster analysis algorithm grouped the practices.
We named each cluster based on the characteristics of the practices contained in it. Table 4 also shows the percentage of respondents that associated each practice with a maturity classification. The percentage of respondents who answered that the maturity for a specific
Qualitative analysis
The codes created during content analysis (Bardin, 2011) are the practices or achievements—which we will call concepts—that respondents used to define maturity in agile software development. The fifty-two key concepts that we found in the analysis are listed in Table 5 and classified into categories and subcategories. When cited in the text, concepts, categories and subcategories are shown in italics to ease identification.
This section is divided into three subsections: 5.1 Key concepts, in
Discussion
We found that practitioners define maturity in agile software development in terms of agile community values rather than process definition and control, as CMMI-DEV and ISO/IEC 15504 do. The highest-maturity clusters of practices and the concepts that emerged from the practitioners’ definitions enabled us to propose the following definition of agile software development maturity:
Maturity in agile software development means having an experienced team that:
- -
collaborates on projects by
Conclusion
This was an exploratory study to discover whether agile maturity is the same as that defined in current SPI models. We conducted a survey with Brazilian agile practitioners and analyzed quantitative and qualitative data. Our findings allowed us to propose a definition for agile software development maturity that includes not only the definition and improvement of processes, but also some more subjective capabilities such as collaboration, communication, commitment, care, sharing and
Rafaela Mantovani Fontana has a Bachelor's degree in Computer Science and a Master's Degree in Systems and Production Engineering. She is a doctoral student at the Pontifical Catholic University of Paraná and a professor at the Federal University of Paraná. Her research interests include agile software development methods, project management, software process improvement, software quality and complexity theory applied to management.
References (72)
- et al.
Reconciling perspectives: a grounded theory of how people manage the process of software development
J. Syst. Softw.
(2012) - et al.
Are you biting off more than you can chew? A case study on causes and effects of overscoping in large-scale software engineering
Inform. Softw. Technol.
(2012) - et al.
Investigating software process in practice: a grounded theory perspective
J. Syst. Softw.
(2008) - et al.
A decade of agile methodologies: towards explaining agile software development
J. Syst. Softw.
(2012) - et al.
Empirical studies of agile software development: a systematic review
Inform. Softw. Technol.
(2008) What's up with software metrics? – a preliminary mapping study
J. Syst. Softw.
(2010)- et al.
A framework to support the evaluation, adoption and improvement of agile methods in practice
J. Syst. Softw.
(2008) - et al.
An evaluation of the degree of agility in six agile methods and its applicability for method engineering
Inform. Softw. Technol.
(2008) - et al.
Acquiring and sharing tacit knowledge in software development teams: an empirical study
Inform. Softw. Technol.
(2013) - et al.
Contribution of agile software development methods to business – IT alignment non-profit organizations
Commun. IIMA
(2012)
Using factor analysis to generate clusters of agile practices – a guide for agile process improvement
New directions on agile methods: a comparative analysis ICSE’03
Stretching agile to fit CMMI level 3 – the story of creating MSF for CMMI process improvement at microsoft corporation
Formalizing agility. Part 2: How an agile organization embraced the CMMI
Are we wielding this hammer correctly? A reflective review of the application of cluster analysis in information systems research
J. Assoc. Inform. Syst.
Análise de Conteúdo
Agile Manifesto
Extreme Programming Explained: Embrace Change
Quality assurance in agile – a study towards achieving excellence
Statistics notes: Cronbach's alpha
BMJ
Observations on balancing discipline and agility
Social Research Methods
Light Maturity Models (LMM): an agile application Profes’11
The maturation of agile software development principles and practice: observations on successive industrial studies in 2010 and 2012
An investigation of the role of communication in IT projects
Int. J. Oper. Prod. Manage.
An agile development team's quest for CMMI maturity level 5
A cluster separation measure
IEEE Trans. Pattern Anal.
Maturing in agile: what is it about?
Survey research in operations management: a process-based perspective
Int. J. Oper. Prod. Manage.
The relevance of strategy research: practitioner and academic viewpoints
J. Manage. Stud.
Requirement reprioritization: a multilayered dynamic approach
Int. J. Softw. Eng. Appl.
Multivariate Data Analysis
Self-organizing roles on agile software development teams
IEEE Trans. Softw. Eng.
Software quality and agile methods
Information Technology – Process Assessment. Part 1: Concepts and Vocabulary
Mature agile with a twist of CMMI
Cited by (53)
Mastering scrum with a focus on team maturity and key components of scrum
2023, Information and Software TechnologyCitation Excerpt :The recurring and time-boxed events ensure regularity, consistency, predictability, and opportunity to inspect and adapt [10,58]. Several studies combine the concepts of agile practices and maturity models and discuss the development and application of agile maturity models [11,24,34,43,60,79]. Agile maturity models are applied to evaluate the implementation [4] and address perspectives of agile teams’ practices [3] and as a diagnosis and improvement tool to provide recommendations in relation to Scrum roles, events, and artifacts [62].
Agility as a force to emerge from the darkness to better days
2022, Procedia Computer ScienceFood SMEs’ open innovation: Opportunities and challenges
2021, Innovation Strategies in the Food Industry: Tools for Implementation, Second EditionBuilding a hierarchical structure model of enablers that affect the software process improvement in software SMEs—A mixed method approach
2019, Computer Standards and InterfacesBeyond Dashboards: Operationalising a Measurement Framework for Agile Teams
2023, Communications in Computer and Information ScienceAchieving software development agility: different roles of team, methodological and process factors
2023, Information Technology and People
Rafaela Mantovani Fontana has a Bachelor's degree in Computer Science and a Master's Degree in Systems and Production Engineering. She is a doctoral student at the Pontifical Catholic University of Paraná and a professor at the Federal University of Paraná. Her research interests include agile software development methods, project management, software process improvement, software quality and complexity theory applied to management.
Isabela Mantovani Fontana is a doctoral student in Industrial Engineering at the University of São Paulo. She has a Master's degree in Design from the Federal University of Paraná, a Bachelor's degree in Industrial Design—Product Design from the Pontifical Catholic University of Paraná and an MBA degree in Business Management (FGV-ISAE). She has research experience in the fields of collaborative design, product-service systems and the mass customization process.
Paula Andrea da Rosa Garbuio has a Bachelor's Degree in Civil Engineering from the Federal University of Paraná and a Master's Degree in Systems and Production Engineering from the Pontifical Catholic University of Paraná. She is a Lean Six Sigma Black Belt certified professional and has experience in transportation logistics, with a focus on quality management.
Sheila Reinehr has a Bachelor's Degree in Mechanical Engineering, a Master's Degree in Informatics and a Doctorate in Engineering. She is a professor at the Pontifical Catholic University of Paraná and an experienced researcher in the following areas of computer science: software engineering, software process improvement, software quality, project management, software product lines and metrics.
Andreia Malucelli has a Bachelor's Degree in Informatics, a Master's Degree in Electrical Engineering and a Doctorate in Electrical and Computing Engineering. She is a professor at the Pontifical Catholic University of Paraná and an experienced researcher in the following areas of computer science: software engineering, artificial intelligence, organizational learning, ontologies, multiagent systems and healthcare information systems.