Software Development Cycle Time as a Key Performance Indicator

Published 2018-10-26

Here in our software development shop, our internal "cycle time" makes a significant impact on our ability to release updates reliably and on time. A fast cycle time means we can test, validate, and get feedback on changes rapidly, and it is an element of project management just as much as it is for software engineering.

When cycle times are low, it means new features and issues are going from concept to closed, without sitting backlogged in a TO-DO list or on a Kanban board. Long cycle times can lead to cascading problems in a software project, eventually leading to missed schedules, cost over-runs, or even total project abandonment, if it is not managed well.

The Costs of Long Cycle Times

Developers

Excessive cycle times can be demoralizing and burdensome to developers, who may have to wait many hours, days, or weeks to have their code tested in an environment integrated with the ecosystem it is made to run in. When cycle times are long, developers are forced to "juggle" more concurrent features/bugs/branches, since they have to squeeze as much work into a single build/test/release cycle as they can, since the cycle is expensive to perform. Defects will increase, due to the infrequency of the test and validation cycle, eagerness to test unfinished work, and also because the developers will lose focus by having to continuously juggle what they are working on, having to "refresh" their working memory of previously completed work, when feedback is finally available at the close of the cycle.

Quality Assurance Teams

In organizations with QA teams, the QA function can be an element in stalling the cycle time, but also a victim of it. With longer cycles up and down stream from them, the QA team will have larger lists of items (features, bugs, regressions) to validate, which will only elongate the total time in series from concept to release. The corollary to this, in a long cycle time, is that the QA team, after they have completed a particular validation set, will now have much more downtime in waiting for the next batch of work to come in from their developers.

Project Management

Long cycle times become especially difficult for project managers, SCRUM leaders, and organizational leaders to control. These managers are tasked to keep the flow of work moving, and reduce stalls in the pipeline which cause overall team productivity to suffer, in quantitative terms, and slows the velocity of features delivered and issues resolved.

When cycle times get long, the project manager, like the developers, is forced to juggle more issues at a time, which increases the time spent in meetings, and increases load and stress on all of the team members. Releases get increasingly "batched," as more individual ticket items are crammed into each cycle, and the risk of executing the release into production likewise goes up.

In the worst cases, we have observed that entire release cycles will be held back due to a singular risky feature, perhaps incomplete or otherwise problematic, which has tainted the entire release and can further stall the cycle time, until the problem can be reverted, disabled, and make it's way back through QA and into the next release candidate.

What Can We Do About It?

As software project managers, we must understand the impact that each element in the software development life cycle has on overall cycle times, and how keeping it controlled affects the performance of the organization at large. For teams which are struggling to deliver on time, or falling behind as their queue of work builds up behind the business' demands, assessing the cycle time is a first approach to resolving the situation and improving the health and functionality of the team. We want to keep developments flowing quickly through the pipeline and moving from one stage to the next with as least friction as possible.

Check back with us next time as we discuss some of our techniques used to minimize software development cycle times, in order to deliver our customers' projects on-time and on-budget, and to provide effective advice to our clients.

Discussion