Introduction
Today, I had some time to think about the contents of my upcoming Software Analytics workshop series. I came up with a Maturity Model to give students some hints to what extent they’ve adopted Software Analytics already in their environment. It’s a first draft that I want to share with you. So, here are the stages of my very first maturity model:
Stages of the Software Analytics Maturity Model
1. Known
Characteristics:
- You are aware that it is possible to gain insights into software development by using situation-specific data analysis on software data
- You are familiar with possible sources of software data that you have at hand
Preconditions to advance to the next stage:
- Produce clean software data: Create atomic changes, use unique identifiers across different data sources, structure your software development process
- Establish data-driven, problem-oriented thinking: Speak about the problems you have, identify the root causes and think about how you could measure the pain points
2. Used
Characteristics:
- You made use of software data to show a problem
- You ran a script for gathering the data and/or executing the analysis
Preconditions to advance to the next stage:
- Document your analysis: Create a readable script that other developers can understand
- Show analysis: Share your raw data, your script and well as your results
3. Defined
Characteristics:
- You use the same set of tools for data analysis across your teams
- You know which data sources you have at hand and how to access those
Preconditions to advance to the next stage:
- Automate analysis: Find ways that allow you to run your data analysis automatically
- Share analysis: Commit your analysis to a repository so that others can reproduce or adapt your analysis
4. Repeatable
Characteristics:
- You use the same set of data analysis tools across your teams
- You know which data sources you have at hand and how to access those
Preconditions to advance to the next stage:
- Gain budget: Maintain a program that thrives on continuous improvement based on data analysis
- Share insights: Create a community of software development analysts that discuss their findings and share their experiences
5. Integrated
Characteristics:
- You take the use of data analysis tools to analyze problems for granted
- You deploy measurement facilities in your environment to gather additional data
Usage
The Software Analytics Maturity Model should give you some orientation and a rough roadmap on how you could leverage data analysis to improve software development.
Discussion
How much have you adopted Software Analytics? What do you think about the model?