If you are a digital data-driven company, you will probably rely on big data to track information such as industry trends, social media activity or sales data to get patterns and insights that help you in your decision making. Thus, if you care that much about these activities, and having on mind that software is eating the labor market, why not caring about your software and software development processes?
First of all, what is software development processes? Basically the steps followed during the production of software. Seems easy right? The image below shows an example in the OpenStack ecosystem:
Process followed during software production. Image source from OpenStack developer’s guide
Most companies track data related to their software licenses or code quality when thinking about software development analytics. However, software development analytics is not only that, and we can find a lot of insights by taking a deeper look in our development processes. The following are 3 reasons to start analyzing software development processes.
1- Software invasion
Because of digital transformation, more companies became software firms: Disney, Amazon, Spotify or Netflix are some of these cases. Every software firm relies on their software and development teams to provide the best product and service to their customers. Thus, understanding how this software is developed, being faster to market, and producing high quality pieces of software is of great importance.
2- Competitive advantage
If we understand and manage our software, even if we don’t directly develop ourselves (companies relies on software, so we can’t just ignore it right?) , we will be able to find weak points in how our software is being developed.
For instance, within software development processes, we can measure different timing periods such as time to merge, time waiting for the reviewer or time waiting for the submitter in a code review process. This allows us to find bottlenecks in the whole software development process and take corrective actions to improve efficiency. So, if the period of time a developer submits code to be reviewed is high, maybe those developers might need extra training or mentorship programs to get a better understanding of processes.
3- See the big picture
Taking more that one type of analysis will give you context and meaning to the data you’re gathering
While a few companies probably believe they know how their software is being developed, most of them still falling as they just focused on just one type of software development analysis. As I mentioned before, most companies just focus on the quality of their code for their software. That’s indeed really important data but what about if their time to deploy a new feature takes too long? Do they know in what part are they failing? Is it because of their submitters? or maybe the time that it takes to review those submissions?
More than software development processes…
Software analytics (code quality, licenses, activity, community and processes) needs to appear in the strategic plan of any data-driven firm. In addition to software development processes, you can also analyze software development in terms of activity and community to get other insights related with your IT talent retention, community health, company positioning or project activity. In the following link, you can find some examples of different metrics and insights.
If you want to know more about software development analytics, just contact us, At Bitergia, we provide a wide variety of solutions and tools for open source and inner source projects.