Electric Cloud Reaps Rewards of Continuous Integration and Developer Builds

[article]
Summary:

Electric Cloud, a leading provider of software production management tools, has always employed an iterative, agile approach to its software development. But like many fast-paced technology companies, a script-driven, manual approach and once-daily integration builds could not scale effectively to support its growth. Through a mix of tools and best practices, Electric Cloud was able to deploy an end-to-end build and change management system with fully automated continuous integration (CI). This new software production system has reduced the time Electric Cloud engineers spend on software production by more than 30 percent and has saved the company an estimated $700,000 per year.

Introduction

In most ways, Electric Cloud is a typical Silicon Valley start-up. We have experienced 2X year-over-year growth, mounting pressure to meet market demand for our popular software, and the well-known development "crunch" -- where the need to develop technology faster and with few resources can challenge even the smartest engineers and systems.

Electric Cloud is perhaps unlike many start-ups, because it specializes in developing software for software developers -- specifically, tools for software production management (SPM), or the critical "back-end" of the development process, where code is built, tested, and deployed. Despite this expertise, our development team initially struggled with a manual, script-driven software production process. To improve development productivity, visibility, and quality, we developed and deployed a CI and validation process that ties together automated builds, software configuration management (SCM) and defect tracking.

 

Situation

 

By using our own ElectricAccelerator® build acceleration solution, we have always enjoyed very fast builds, but our developers still had to contend with a script-driven, manual approach and once-daily integration builds, which proved not to scale effectively with company growth. "Like most development teams, we were using homegrown scripts and open source tools for our software build and release processes," said Anders Wallgren, Electric Cloud's CTO. "This was acceptable in the beginning with only a handful of developers, but as our company and products grew, this system became more and more limiting. It was having a negative effect on our overall productivity."

Our homegrown build scripts quickly became strained as the company grew. Initially, the script could only build one version of the product at a time, so "adding a lane," or a new branch, was a major undertaking. Moreover, only the developer who wrote the scripts could understood them completely, making the learning curve for newly hired engineers a long, steep climb.

{sidebar id=1} Broken builds were another recurring issue with script-driven builds. Full of new code that may not have been fully tested prior to check-in, the daily integration builds often had problems, which could cause delays of several hours. Moreover, when something broke, the "black box" system offered very little visibility into the root of the problem, so our engineers spent literally hours parsing log files trying to track down and fix each issue -- resulting in further delays.

Our software production problems were not unique, however. The vast majority of our worldwide customer base is grappling with similar issues -- software production systems that become increasingly problematic as software development grows and becomes more complex. Through our work with developers across a number of industries, in addition to our own internal experience, the problem became crystal clear: building and testing early and often is critical to development productivity. We needed to address these tasks from both a best practice and tool perspective.

To address the widespread customer need for an automated, enterprise-class build management solution -- and at the same time, improve our own production system -- Electric Cloud developed and deployed ElectricCommander.

 

Solution

 

In 2006, we deployed an early version of ElectricCommander to make our own software build and test tasks more efficient, visible, and repeatable. ElectricCommander uses a three-tier architecture and AJAX-powered Web interface, along with build-and-release analytics for reporting and compliance.

In the four years since we started using our initial production scripts, we have grown from a one-product to a three-product company -- each with multiple releases to support. We had always employed an iterative, agile approach to development, but as our development grew larger and more complex, it became clear that we needed a new approach that included automated CI.

We

About the author

TechWell Contributor's picture TechWell Contributor

The opinions and positions expressed within these guest posts are those of the author alone and do not represent those of the TechWell Community Sites. Guest authors represent that they have the right to distribute this content and that such content is not violating the legal rights of others. If you would like to contribute content to a TechWell Community Site, email editors@techwell.com.

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, TechWell.com is the place to go for what is happening in software development and delivery.  Join the conversation now!

Upcoming Events

May 04
May 04
May 04
Jun 01