How to Speed Up Software Development with Build and Test Acceleration Tools

Written by: Tim Johnson

6 min read

Stay connected

It's been 10 years now since Marc Andreessen made his famous statement that software is eating the world. And in the decade since then, I think we've really seen just how true that statement has turned out to be. Most everyone would now agree that every business is a software business. 

But there was more to Andreesen’s statement. He also said that cycle time compression – that is, how fast you can build that world-eating software – may be the most underestimated factor in determining winners and losers in tech. Think about it: These days, everybody is building software into their products. So how much of a competitive advantage is it really? 

What remains a competitive edge, though, is how quickly you can turn around updates, enhancements and fixes, especially in an environment like today, where sudden, unexpected catastrophes can massively disrupt your workforce and your supply chain. Your ability to respond quickly to those events is critical. And that's where CloudBees Accelerator comes in.

CloudBees Accelerator is fundamentally a software build and test acceleration tool. It's used by your developers to speed up software development. That means speeding up the process of taking source code and turning that into a final product that's delivered in any embedded system, such as a car or mobile phone.

The way Accelerator does that is by combining a variety of patented technologies for parallelization, distribution and caching that allows you to execute build and test processes more quickly, but still guarantee the correctness of the final result. 

Accelerating business

What is the impact to your business when you speed up software development? I’ve worked with some companies where it literally took several days to execute a build. So you might start on Sunday and not finish until the following Saturday. When your software development life cycles are that long, it seriously impacts your ability to be agile and deliver software to customers in a timely fashion. 

Now add CloudBees Accelerator into the process. Take a 14-hour long build, which might sound outrageously slow to some people – or maybe pretty fast to others! Either way, when you bring in Accelerator, we’ll typically see a reduction in build cycles by about 5x to 10x or more. That means a 14-hour build shrinks to about two hours. And if you have a six-hour build, Accelerator can bring it down to about 30 minutes.

For your business, this translates into getting your products to market faster, boosting developer productivity, and gaining more capacity to innovate.

Benchmark tests

These improvements aren’t just theoretical. They’re based on benchmark testing of typical use cases in automotive software.

For example, we tested the speed of a build of the Android Open Source Project with a 32-core system. This is a situation in which somebody has already spent an enormous amount of time and energy trying to optimize the build. In this case, that somebody is Google, which wields vast resources and entire teams dedicated to making things go as fast as possible. 

The result: Without CloudBees Accelerator, the Android build clocked in at about 24 minutes. With Accelerator, it came in at about 13 minutes. That’s nearly twice as fast. Again, this takes a process that’s already accelerated and makes it even faster.

A second benchmark test was on Yocto, a commonly used tool chain for building embedded Linux systems. Without Accelerator, the build time was a bit more than 26 minutes. With Accelerator, the build took about 18 and a half minutes, or about 40 percent faster.

A third test measured the speed of running Motor Industry Software Reliability Association (MISRA) compliance checks using CPPCheck, an open source utility for doing a variety of static analysis. This build took about 48 minutes without Accelerator, and only 39 seconds after adding CloudBees technology – an astonishing 70-times faster. That may seem unbelievable, but these are not uncommon results for Accelerator. The reason the MISRA results are especially compelling is that it involves what’s called an embarrassingly parallel problem, which lends itself extremely well to the caching technology built into Accelerator. 

What are your options?

But let’s say you’re not using Accelerator. What could you do instead? The answer is: not a lot. Still, there are a few Band-Aid solutions you could try. Let’s quickly take a look at some of them.

  • You can try to parallelize your builds and tests by hand. But to do this right is easier said than done. Plus, this type of grunt work is a waste of your developers’ time. Better to focus their efforts on projects that produce value for your customers, not just fixing infrastructure.

  • You can buy bigger, faster hardware, or bigger VMs in the cloud. But let’s face it, this is a very expensive option and it's hard to efficiently utilize those extra resources. It just doesn't scale well. You can't easily share a bigger machine across a team of 100 developers, for example. And you're not going to buy a 64-core machine for every one of them.

  • You can reduce the amount of building or testing you do. Yes, you could cut down on the number of builds and tests, but this is going to cause your developers to become overly cautious, and your customers end up doing your QA for you.

  • You can just live with things the way they are. Sure, you could simply accept your currently long CI cycles. But this will cost you in competitive advantage by making it difficult to rapidly respond to unplanned events and crises like the one that we're living through right now.

What if you didn't need to bother with all that?

Well, that's what CloudBees Accelerator is all about. Accelerator gives you intelligent fault tolerant workload distribution across a variety of compute resources. It optimizes the dependencies and guarantees the correctness of your build, even if you’re not sure your dependencies are all completely specified. And it can help you avoid doing work that's been done in previous builds by reusing outputs from other workloads. 

Moreover, Accelerator can dynamically provision resources to scale your compute resources up or down as needed. Typically, we see that this results in a significant reduction in the infrastructure required for your development team. And finally, Accelerator provides sophisticated analytics that enable you to do capacity planning and fault analysis.

Marc Andreesen was right about the competitive advantage of compressed cycle times. CloudBees Accelerator is the tool that makes that a reality. 

Learn more how CloudBees can help you speed up software development and testing like never before.

Stay up to date

We'll never share your email address and you can opt out at any time, we promise.

Loading form...
Your ad blocker may be blocking functionality on this page. Please disable for an improved experience.