1 Introduction
-
Q1: What is the usage rate of practices in actual software development projects?
-
Q2: Is there any difference between the usage rate of technical and organizational practices?
2 Related Work
Categories | Meyer | Kropp | Pantiuchina |
---|---|---|---|
Technical | Technical | Technical | Quality |
Non-technical | Organizational (Managerial) | Collaborative | Speed |
3 Methodology
3.1 Technical and Organizational Categorization
-
Technical Practices: Continuous Integration, Emergent Design, Pair Programming, Test Automation and Test-Driven Development.
-
Organizational Practices: Frequent Release, Iterative Process, Retrospectives, Collective Ownership and Self-Organization.
Practice | Category | Rationale |
---|---|---|
Continuous integration | Tech | Continuously integrated software version is verified automatically, by tests and static analysis |
Emergent design | Tech | Design decisions about the product are software specific |
Pair programming | Tech | Programmers write and review software in pairs with the purpose of improving code quality and shared knowledge |
Test automation | Tech | Automated tests are software created to verify other software under test |
Test-driven development | Tech | Is a very precise method for developing software |
Collective ownership | Org | Determines that any developer may modify any part of the code base, promoting team robustness. The goal is to ensure that no one person becomes a bottleneck for changes |
Frequent release | Org | Completed work is frequently delivered to end users to obtain feedback and maximize value |
Iterative process | Org | The final product is created by successive refinements |
Retrospectives | Org | The team meets periodically with the purpose of reflecting and committing to improving the process |
Self-organization | Org | Team members are responsible for assigning themselves tasks and managing their process |
3.2 Study Description
Property | Stage 1 | Stage 2 | Stage 3 |
---|---|---|---|
Conference | Agile Open Camp 2016 | Agile Open Camp 2017 | Ágiles 2017 |
Location | Bariloche, Argentina | Cajón del Maipo, Chile | Santiago de Chile, Chile |
Data points collected after depuration | 44 | 49 | 107 |
Date | March 2016 | May 2017 | October 2017 |
Participants in the Conference | 98 | 79 | ~800 |
Number of practices under study | 6 | 8 | 10 |
-
The project should be representative of the organization
-
It should be a project in which the person had been actively involved
-
It should be a recent project, that means the project should have been completed within the past year
4 Results and Findings
4.1 Demographics
4.2 Ranking of Practices
Practice | % usage | Category |
---|---|---|
Iterative process | 83 (89/107) | Organizational |
Frequent release | 83 (89/107) | Organizational |
Retrospectives | 71 (76/107) | Organizational |
Self-organization | 63 (67/107) | Organizational |
Test automation | 60 (64/107) | Technical |
Emergent design | 44 (47/107) | Technical |
Continuous integration | 38 (40/107) | Technical |
Collective ownership | 38 (40/107) | Organizational |
Pair programming | 35 (37/107) | Technical |
Test-driven development | 20 (21/107) | Technical |
-
Test-Driven Development is the least used practice with just 20%, but there is an additional 28% of respondents that reported that “someone in their teams does Test-Driven Development”. We didn’t consider these answers when calculating the ranking because our unit of study is the project and having someone in the project practicing Test-Driven Development is not enough for us to consider Test-Driven Development a project practice.
-
Iterative process is one of the top practices in our ranking with 83% of usage. In most cases (74.8%) the iteration length is 2 weeks.
-
Test Automation is used by 60% of respondents but it is interesting to note that there is an additional 22% of respondents that reported to have outdated automated tests. That is: they have automated tests that are rarely updated when the features under test are changed. We didn’t consider these cases for the calculation of the ranking because outdated tests do not add value.
-
Collective Ownership is used by 38% of respondents, but we found that an additional 28% answered “No” or “Don’t know/Don’t answer” when asked “Does your team use the Collective Ownership practice?”. At the same time that same group reported that any team member was able to modify any part of the code of the project, which is the core idea of the Collective Ownership practice. This situation leads us to think that this portion of respondents may be using the practice even though they do not know it by name. This additional 28% would round the total usage of Collective Ownership to 66% which would position this practice in the top section of the ranking together with the rest of the organizational practices.
-
Retrospectives are used by 71% of respondents, but an additional 12% answered that they performed retrospectives “At the end of each project phase”. Given that a phase can be an arbitrary long period, we cannot establish cadence so we did not consider these answers as following the standard practice. It is interesting that including these answers would rank Retrospectives at 83%, the same usage rate as the top ranked practices, Iterative Process and Frequent Release.
4.3 Quartile Analysis
Quartile | Avg practices used | Avg org practices used | Avg tech practices used | Org/tech practices used |
---|---|---|---|---|
1 | 2.9 | 2.6 | 0.59 | 4.41 |
2 | 4.7 | 3.4 | 1.2 | 2.83 |
3 | 6.0 | 3.7 | 2.3 | 1.61 |
4 | 8.3 | 4.5 | 3.7 | 1.22 |
4.4 Factors Influencing Practice Adoption
Organizational experience using agile | Average practices used |
---|---|
Less than 1 year | 4.4 |
Between 1 and 3 years | 5.1 |
Between 3 and 10 years | 6.0 |
More than 10 years | 7.0 |