Agile Software Development — Adaptability vs Predictability
By: Prasadi Abeywardana
Tags: Analytics, Data Science, Predictive Analytics, Agile Methodology

Agile is a heavily practiced project management approach in the software industry which enables better change management and flexibility through inspection and adaptation. It’s a philosophy or a way of working which tries to be aligned with customer needs and organizational goals through self-organizing teams and well-planned iterations. ‘Adaptability’ is a term that has a strong relationship with the Agile way of working and it is the foundation to the success of methodologies like SCRUM. In contrast, ‘big design up front’ models such as Waterfall are known to be predictive. But this predictability comes up with a trade-off — that is the resistance to change.

With the personal experience I possess after working in a couple of Agile projects, I have witnessed that still problems exist despite of their adaptive nature.

Estimates are not accurate

Sprint Velocity is not so good

Finally release delays can occur

With a little touch of predictions most of the above problems can be addressed or rather rectified. If predictability can be embedded into adaptive methodologies like Agile SCRUM which address most of the limitations of traditional sequential models, then that should be of utmost importance. BUT HOW?

The solution is ‘Data Science’.

Data science has the magic power of predicting the future glancing at the past. This same power can be used to predict things that can go wrong, such as estimations and velocity which highly depend on human intervention and heuristics. If there’s a mechanism which can predict the completed velocity of a sprint beforehand, delivery outcomes can be properly organized without waiting till the end.

Data science for agile is a comparatively under focused area with a huge potential. There are many things we can predict such as estimations and velocity. As there are so many agile practitioners and agile projects worldwide, obviously this can be treated as a big data problem.

As a part of my data science course work, I tried applying a few machine learning models on a huge agile data set which was prepared by a set of scholars and made publicly available. This data set contained data queried using JIRA API from a set of projects (Apache, JBoss, MongoDB, Spring) which use JIRA as their project management tool.

Normally in the beginning of an iteration, the team commits to a set of story points. The expectation is these story points will be completed by the end of the iteration. But that never happens. There is always a difference between committed and completed workload, which indicates the health of the iteration. Learning these trends earlier without waiting till the end can be useful in determining corrective actions. So, my attempt was to fit a few machine learning models on the above-mentioned data set and find the capability of predicting the velocity difference at a given point of time of the iteration.

I tried out fitting three machine learning models with RStudio.

1. Random Forest

2. A Gradient Boosting Machine

3. A Neural Network

These models revealed some surprising information and made me realized that there are so many things we can do to accelerate the delivery outcomes of agile with data science.

Correlation plot of the considered features that contribute to the velocity

Think about a JIRA plugin which gives early indications using these models and predict how the completed velocity is going to be before the end of the iteration and help us identify blockers that can ultimately lead to delivery delays and cost overruns.

Predicted vs. Actual Velocity Differences

In an era where data science has become a catchword and practitioners are re-purposing data to derive many unknown insights and predictions, why can’t we do some analysis on our own project data to come up with intelligent tools that will empower the project itself with predictive capabilities. Rather than depending on loud voices and opinions, a well pruned model may give more insights on planning and estimations.