Tracking the Speed of Software Development

speed-up-website

The prime driver for many companies embracing DevOps remains the desire to make the software development process faster. We continually state the following: increased software engineering velocity is a must in today’s competitive business marketplace. Finding the right metrics to track application engineering speed is essential in determining the true return on investment.

What follows is an analysis of a few metrics to help you determine the speed and overall efficacy of your software development team. Perhaps these insights help support the value of your methodology to the executives at your company? Good luck!

Finding the Right Metrics for Software Development

When it comes to tracking software development, finding the right metrics is vital. The continuous integration platform company, CircleCI, published a study looking at some suitable options. An article about their efforts appeared last week in SD Times.

The company’s study leveraged the data from organizations using CircleCI’s platform. It tracked software development efforts from the first half of 2017. CircleCI discovered that three specific metrics reveal a software development team’s overall maturity as well the velocity of their SDLC.

Deploy Time, Deploy Frequency, and Mainline Branch Stability topped the company’s list of metrics. The first two appear to be easily tracked, but what about the third? Jim Rose, CEO of CircleCI, commented on the definition of Mainline Branch Stability.

“If you had to release the most recent version of your code right now, right this second, could you? Is your mainline green and can you deploy whenever you need to?” said Rose. The CircleCI report noted that 80 percent of the companies maintained a deployable codebase 90 percent of the time.

Ultimately, this metric provides a great way to track an organization’s progress towards the DevOps “Holy Grail” of continuous deployment. The top companies using Circle CI – in the 95th percentile – are essentially able to deploy all the time. However, the worst firms – in the 5th percentile – can do so only half the time.

What about Deploy Time and Deploy Frequency?

Deployment time and frequency are traditional metrics used in software development for decades. CircleCI feels they still provide value in a modern Agile or DevOps process. According to Rose, Deploy Time answers this question: “How long does it take between the time you make a commit until it gets into the data center?”

The top companies in their report are able to fully deploy code in less than three minutes. Those denizens of the 5th percentile on average spend a half-hour on each deployment. A smaller deployment time obviously indicates a more efficient and inexpensive process.

Obviously, Deploy Frequency then answers this question: “How often do you deploy and how quickly are you pushing changes?” The top organizations in their survey deploy 32 times a week, while the lowest only are able to deploy eight times each week.

Making Software Development Faster

It helps software development organizations when they understand where they stand compared to other companies in their field. Providing a goal to strive for is essential, especially when CIOs and other execs want to see ROI as quickly as possible. Rose commented on a few best practices for development teams to follow.

“You need to make sure you have a great code review process, pull review process, and a robust set of tests that are automated and constantly run every time someone is making a commit so that you know well before you merge into the mainline that the merge is going to work,” said Rose.

For additional information and advice, check out CircleCI’s report at the following link.

Thanks for reading this edition of the Betica Blog. Stay tuned for additional insights from the software development world.

Making Sense of Agile Metrics

Leveraging the Agile methodology offers organizations a chance to streamline their software development process; ultimately making their business more efficient. Measuring the impact of Agile on an application engineering team becomes easier with the use of metrics. The ultimate question is: what kinds of metrics offer the meaningful information and actionable insights software engineers need?

What follows is a look at some examples of useful Agile metrics and how they are able to truly make this modern methodology work for a software development shop. Perhaps your team needs to look at using them as well?

Useful Agile Metrics for Software Development

An article for Extreme Uncertainty analyzed the use of Agile metrics and offered a few insights on which ones added value to the software development process. Let’s check them out.

A Burnup Chart gives the project manager or Scrum Master a view of a project’s overall progress by displaying a graph of how many stories are completed during each iteration compared to the total number of stories in the project. This is a simple metric able to be shared with business stakeholders curious about the current status of the work.

The article author, Leon Tranter, commented on the need to fully estimate the effort of each story for the Burnup Chart to be meaningful. If that estimation hasn’t been completed, he suggests using an average for any future stories.

Metrics related to Agile Stories

Estimating the development time for stories becomes easier when using metrics aimed at tracking the work spent on these portions of a project. Story cycle time measures the period it takes for a story to go from a ready for development state to its completion. Be sure to take into account the number of resources working on a story for the most accurate view of the overall effort.

Story lead time includes the period between the creation of the story and its ultimate completion. Subtracting cycle time from lead time helps measure the effort spent in analysis.

Story count is essentially the average number of completed stories during a sprint. Once again, combining these three metrics helps to measure the efficiency of a software development team during a project. It also serves nicely when estimating the effort on future projects or sprints.

Use First Time Pass Rate to track Quality

First time pass rate is a percentage used to track the test cases that pass either system integration testing or system testing on their first try. Tranter feels this is an especially vital metric for measuring the overall maturity level of a software development team’s use of Agile. His expectation for teams familiar with Agile is a rate of 95 to 100 percent. It definitely gives teams new to the methodology a goal worth reaching.

Hopefully, this quick analysis of a few Agile metrics offered some ideas on adding them to your own team’s software process reporting. They are especially worthy of consideration for shops embracing Agile for the first time.

Keep coming back to the Betica Blog for future news, stories, and insights from the rich world of software development. As always, thanks for reading!