Agile Project Management Analytics

As companies develop an increasing number of software assets, it is important to understand the process behind the development of these assets. The retrospective view on the development process is an essential part of agile development. With Process Mining, this retrospective evaluation can be quantified, leading to impactful results and a new approach towards Agile Project Management Analytics.

Data Analytics is an integral part of modern business success as it enables companies to make data driven decisions. With Process Mining, there is the unique opportunity to analyze business processes as they happen. In order to analyze these processes it is necessary to evaluate the digital footprints. With data from Enterprise Resource Planning systems (ERP), data scientists are able to uncover these digital footprints. This serves well for classical business processes. Unfortunately, ERP systems do not follow all processes. The software development process is one of these exceptions. Nevertheless, the software development process is getting more and more important as businesses develop an increasing number of software assets.

In order to manage the software development process numerous teams use Jira, a task management tool developed for software development projects. While working with Jira, teams create digital footprints. These digital footprints can be used to analyze the software development process with Process Mining. By analyzing the dataset gathered by Ortu et. al., for example, it is possible to uncover the capabilities incorporated with Process Mining on Jira.

Visualization reveals the complexity of the process

The visualization of the software development process illustrates its complexity. One can observe over 50 000 variants of a process flow. In conclusion, there is no standard process for software development tasks. In order to support the software development team, support functions should be highly adaptive. As there is no typical process one should try to build several distributed systems that support several specific activities.

Another interesting discovery uncovered with Agile Project Management Analytics is the relationship between activities per task and process time. The more activities are done on a specific task the faster the process was finished. This is counterintuitive but plausible noting, that most of the cases with many activities have many watchers. People seem to prioritize tasks that are relevant for several developers, implying that some tasks will be neglected over the course of time. There should be a mechanism to prevent this. Implementing a system that notifies the assignee if a task has been unattended for a certain time could be a solution.

Number of activities plotted against time to resolution. The darker the color, the more watchers we have. (software: Celonis)
Visualization of process flow. (software: Celonis)

Quantification uncovers the workload and bottlenecks throughout a team

If a developer is not able to solve a task on its own, he reassigns the task. 7% of the tasks get reassigned in the dataset. Unfortunately, in a majority of the cases there is no new assignee. Reassigning such tasks would be crucial, as these tasks will not be resolved. The development team needs to make sure that every task has an assignee at any moment. Another danger to the successful completion of a process is the limited number or availability of the developers that might lead to them running out of capacity and eventually delaying the project. A possible solution for both of these problems could be to have a person assigned that is in charge of equally distributing tasks to developers. This person should have an overview of the skills and can ensure that no tasks remain unassigned. Additional tools based on artificial intelligence and predictive machine learning could be able to predict the workload of a single issue. With the help of these tools, recommendations for the best distribution of tasks within the software development team could be quantified.

Analyzing the reassignment activities uncovers the fact, that there are several key contributors in the development team. These contributors are very productive and work on several tasks in parallel. Monitoring these contributors could prevent potential bottlenecks. Especially a loss of one of these contributors could be harmful to the company’s productivity, as their shoes cannot be filled.

Number of assignments per developer. (software: Celonis)

A workflow does not ensure conformance

Unfortunately, not even the key contributors will be able to simultaneously pay attention to all tasks equally. On several days, one single user cleans the whole repository, as illustrated by the graphic “Resolution Date”. On 29th January 2012 one user resolved around 4000 tasks. Such exponential workload could easily be avoided and should be prevented by getting weekly reports on how many tasks are still open. Additionally, the development team should evaluate tasks that have been left untouched in the last few weeks. Classification algorithms could help detecting deprioritized tasks in advance.
Another striking issue is the lack of conformant workflows. Many tasks are not closed after they are resolved. Several actions are measured years after there was the resolving activity. Changing the workflow to close the task when it is resolved, could avoid the cleaning and additional resolution time.

Understanding the process leads to an understanding of assets

Spending time and resources on processes that have been resolved by putting an effort into cleaning the repository should be avoided. Diligent procedures that scan the repository for undetected or neglected tasks and ensure the repository’s condition at any given time will save resources. Managing the software development process is key to the successful development of software assets. One particular challenge is the complexity of the processes. Analyzing the creation process of software assets with Agile Project Management Analytics leads to a better understanding of these assets. This is not only important to optimize inefficiencies; it can help evaluate the effects of support functions and actions.
With the help of artificial intelligence and predictive machine learning, development teams can use dedicated support functions to leverage their productivity on selected pain points throughout the entire process. For businesses, gaining an overview of software development process is essential. Via Process Mining, companies will not only achieve a long-term improvement in the software developing process but also gain a more solid overall understanding of their software.

Number of resolutions per day. (software: Celonis)