Ramp Metering and the Virtues of Continuous Integration
By: Matt Angerer
In most major metropolitan areas, you’ll encounter a ramp meter that controls the flow of traffic entering the freeway. These meters are designed to control the flow of traffic, prevent accidents, and keep congestion at bay during rush hour. When I think of Continuous Integration (CI) practices for an Agile Development team, I immediately envision a ramp meter for safer merging and reducing the risk of vehicle collisions.
If you’re a seasoned Agile Coach, you might find this article a bit basic. However, if your organization is starting to lean towards Agile – we can help by explaining a few founding principles. For starters, continuous Integration (CI) is really just the practice of integrating your developer’s code changes into the mainline as early as possible. By integrating several times per day in a controlled fashion, risk is mitigated and defects can be uncovered much earlier in the delivery life cycle. Sprinkle in some automated testing with tools like HPE’s LeanFT and you start to add assurances of quality to your build.
Two other common topics in the world of Agile are Continuous Deployment (CD) and Continuous Delivery (CD). At the basic level, both practices refer to ensuring your application is deployable at any given time. The main difference between them is that Continuous Deployment relies heavily on automated testing prior to deploying to production, whereas Continuous Delivery typically requires a manual QA check before deployment.
Either way, we recommend that you start small and focus on establishing a simple CI process from the start. There is an endless array of tools on the market today, including: Jenkins, Bamboo, Codeship, CircleCI, Teamcity and lots of others. What tool your team ultimately decides to use really depends on your existing workflow and technology stack. Many of our customers are trading in their HPE ALM licenses for access to ALM Octane, which integrates directly with Jenkins.
Taking the leap to ALM.Octane and Jenkins has many benefits. For starters, it can help speed up your workflow and empower your developers to continually commit and push their changes into the main line without fear of breaking everything. This isn’t to say that things won’t be broken, but the smaller inflow of code changes to the mainline mitigates the overall risk – just like the ramp meters on the side of the highway reduce accidents.
Don’t take our word for it though – give us a call to setup a demo and let us show you how.