Hear from the OpenStack expert on how to crush developer cruft

System Overload

Jim Meyer is a VP of Engineering at HP Cloud, Helion OpenStack distribution. His mantra for engineering is three words: Velocity beats everything. Velocity gives your engineering teams the ability to do more in unit time while giving them the power of context and control. He recently visited us at ElasticBox where he shared interesting insights on this engineering approach. We think ElasticBox complements this vision quite well. Here are some of his insights on CI/CD and how it leads to engineering velocity.

One litmus test for good engineering is how long it takes a newly hired developer to be independently effective. If the answer is 3-6 months, you have a problem with cognitive burden. Cognitive burden means that developers have to carry some (usually large) amount of context and history of the codebase in their head, whether they’re long-time team members or brand new. Add to that the context from coding in long release cycles, and this load depletes productive time and energy. It slows down the time to market and innovate.

Release versus delivery

A release is a business activity, not a development one. While developers work to deliver features and functionality, when to release them is a business decision about when there’s enough new value in the work since the last release to make it worth packaging and shipping to customers. This singular difference requires a different way of working. You need to empower developers to deliver a feature completely and move on without a strong, frequent need to engage in release activities weeks (or months) later. How can developers deliver to a continuous delivery endpoint? And let operations take over releasing at a suitable time in the most stable way?

Enterprises don’t have the luxury to build automation tools fast enough as they’re held back by mature processes. But startups do. This symbiotic relationship between them allows enterprises to pull in their DevOps tools and CI/CD workflows.

The question is how to automate CI/CD to remove the developer cognitive burden and give them the power to engineer at velocity. Velocity allows developers to write code, fix code, and test code rapidly and at scale.

CI/CD automation

For most enterprises, automating presents similar challenges:

  • It’s a high cost to maintain an existing homegrown solution.
  • Workflows are personal to the business. But the business of delivering code doesn’t fit the same workflows.
  • It’s difficult to manage application component states across several distributed systems.
  • Developers need to do lots of integration testing in lots of different environments. And none of the environments match the high fidelity of production.

A CI/CD solution must give developers confidence that they can go fast and move on to the next thing. These are some must-haves:

  • Automation provides smooth rollback even if you deploy bad code.
  • Packaging software is not a pain for developers.
  • Developers operate via APIs or command line as well as GUIs.
  • Developers get fast quality feedback so they can fix code while it’s fresh in their minds.
  • Developers run unit tests on their laptop very quickly. They can write a unit of functionality and immediately check for unintended consequences.
  • Code on its way through the continuous integration pipeline gets tested, packaged, and readied to ship.
  • Development and production environments have clearly understood dimensions of fidelity across them. As you add new environments, understand the different kinds of bugs you expect to find here versus your existing ones.
  • Every bug is documented and run as a test case in the earliest possible environment you can reasonably expect to find, preferably the developer’s day-to-day environment.

The ultimate CI/CD solution gives developers full autonomy. The power to not only consume repeatable processes, but reusable ones. The power to let developers take the cruft out of their engineering workflow.

To learn more about how ElasticBox can remove the cruft for your team, try ElasticBox and the Jenkins Plugin for free.

Jim Meyer

About Jim Meyer

Jim Meyer is the VP of Engineering for the Helion OpenStack distribution, with teams spanning half the globe as well as all of OpenStack. Jim has been a technologist since he was eight and is just as comfortable with a soldering iron as a keyboard. He's been solving problems in large-scale distributed computing and virtualization for nearly 20 years for large companies like Walt Disney Feature Animation and Dreamworks Animation, as well as startups like LinkedIn and Wealthfront. When he's not working, you're as likely to find Jim using his kids' Minecraft server or his fantasy baseball team’s daily lineup as an excuse to dig into new technology; working on home improvement projects as an excuse to play with power tools; grilling something for family and friends as an excuse to hang out; or reading nearly anything he can get his hands on (no excuses). Follow him on Twitter @purp.

Categories: Cloud Application Management, DevOps, Industry Insights, Nerd Culture, Thought Leadership
Tags: , , , ,