.png)
Complete visibility into time & dollars spent
Create meaningful reports and dashboards
Set targets and get notified of delivery risks
Track and forecast all deliverables
Create and share developer surveys
Align and track development costs
A team that’s able to minimize surprises and deliver in a repeatable, forecastable way is a team around which you can build a really exceptional organization.
This article is the second in a four-part series that explores how Allstacks is accurately predicting completion times for software delivery. If you haven’t read part one, check it out to get the background and context for following along in this post.
Here’s what we’ll cover in this post, at a high level:
Previously, we established baseline results indicating that items associated with one (or more) of our alerts take much longer to complete than items that don’t encounter alerts. As a reminder, the Allstacks alerts are as follows:
However, the baseline completion time results were determined through the creation dates of the items. It would be inaccurate to provide completion time forecasts solely based off of the creation dates. After all, the time at which a developer actually begins to work on an item varies greatly. In this post, we’ll examine how Allstacks is using additional sources of data to develop more accurate completion time forecasts.
Allstacks tracks all of the activity of an item, all the way from creation to completion. This includes two significant data points for forecasting purposes: issue states and linked commits. For example, an item may go through the following sequence of events:
Item Activity | Date | In Progress |
---|---|---|
Open | 1/3/2020 12:00:00 | |
Ready for Development | 1/6/2020 11:00:00 | |
Development | 1/7/2020 09:00:00 | Yes |
Commit | 1/9/2020 14:00:00 | |
Ready for Testing | 1/13/2020 16:00:00 | |
Testing | 1/14/2020 09:00:00 | |
Closed | 1/15/2020 12:00:00 |
As it turns out, we can drastically improve predictions for software completion by determining a more precise “start date” than simply using the creation date.
Specifically, the “true” start date could be defined in one of two ways:
Allstacks uses statistical methods to automatically determine each organization’s uniquely defined progress state (since not all organizations use the generic “In Progress” state), as shown in the above table where “Development” is flagged as the first “true” progress state. Additionally, through integration with your organization’s version control platform, we can determine when the first commit occurred.
Now that we’ve provided some context on establishing an item’s “true” start date, we’ll analyze the differences in completion times when using each of the two start date methodologies. Additionally, we will compare the results to the simplistic use of the item creation date from the first blog post.
To begin establishing the final results, we pull together a dataset that looks something like the following table:
Item | Story Points | Completion Time from Progress | Completion Time from Commit | Alert Type |
---|---|---|---|---|
1 | 2.0 | 8.125 Days | 5.917 Days | |
2 | 1.0 | ... | ... | Bounceback |
3 | 0.5 | ... | ... | |
4 | null | ... | ... | |
5 | 5.0 | ... | ... | High Comments |
This table is very similar to the table shown in the first blog post. However, instead of calculating completion times from the item creation dates, we’ve calculated them from the progress and commit dates.
Next, the dataset is further manipulated to group different items by different story point cohorts and different types of alerts.
Lastly, the dataset is further cleaned and transformed through the removal of outliers and log-transformation of the highly skewed completion time data. This ensures that we are working with data that is normally distributed.
First, let’s take a look at a correlation chart that depicts the relationship between completion time (for issues that did not encounter any alerts) and story point estimates:
The above chart shows three different lines with the following interpretations:
And finally, the chart below depicts the full data of the impact that alerts have on completion times. It can be directly compared to the final chart in the previous blog post, with the difference here being that the start date for items has been updated to the first progress date. To avoid redundancy, the full data based on the first commit date is not shown, as the results are pretty similar.
A couple of quick examples of how to interpret the graph are as follows:
In short, there are a few key takeaways from these new results:
However, there’s still more work to be done when it comes to accurately predict software delivery. Stay tuned for the next post, where we’ll explore how Allstacks is using even more sources of data and statistical methodologies to accurately forecast delivery dates for the overall milestones that are being tracked by your organization.
Nonetheless, again, the results presented here are in aggregate. It is important to note that we’ve seen large variations from organization to organization. Our forecasting feature takes into account the fact that different organizations operate differently.
If you are interested in determining how these risks impact your specific team or organization, contact us !