Continuous integration the key to Agile and DevOps transformations
What is the key to getting both Agile and DevOps transformations right? It would appear that successfully implementing a system of continuous integration is key.
Continuous integration and delivery have emerged as the next set of concepts following the interest in Agile and DevOps. Implemented correctly, the principles of CI can streamline and optimize the software lifecycle from start to finish. The Server Side interviewed a number of players in the software development space about the tools and methodologies that make CI and CD work for the enterprise.
Why should the enterprise keep a close eye on tools and solutions that further enable continuous integration? Key benefits include shorter delivery times, better quality, and a high level of adaptability to deal with security, compliance, and availability challenges.
What's in the pipeline for Jenkins CI?
Many organizations are failing with a transformation that's driven by whatever fashionable trend their CIO bought into.
Mik Kersten,
Tasktop CEO
According to Andre Pinto, vice-president of marketing for CloudBees, one of the trending plugins for Jenkins is Pipeline, formerly known as Workflow. It started to become popular in 2014 and took off last year. "It's a very powerful way to build full continuous delivery pipelines. You can actually go from code check-in by developers through the build and compile stages and on through unit tests, functional tests, user tests, etc. You can deploy to a staging environment, run more tests there, even deploy to production if you want. It has real world capabilities around branching, looping, and restarting."
It's this type of tooling that is enabling enterprises to take steps toward becoming a CI oriented organization. "People are not getting their head around what continuous delivery means for them. They are trying to go through some kind of DevOps transformation and they're seeing that as a way to automate the application lifecycle. Pipeline offers an easy way to move in that direction."
Providing CI configuration to the masses
Sid Sijbrandij, co-founder and CEO of GitLabs, is bringing democracy to Jenkins. With the GitLab repository, everyone has access to the capabilities they need to get the job done—without going through a gatekeeper. "Our mission is that everyone can contribute. It used to be your CI configuration was inside Jenkins in some setting there. You had to ask the Jenkins person to change it. That doesn't make sense anymore."
In the brave new world of continuous integration, the everyday programmer will have more autonomy to build and test in ways that make sense for any given project. "If you make a new function in your program, maybe you need to change something. There might be a new dependency or Docker service that needs to be run. You should be able to specify that inside the repo, have it on the version control, and have your feature branch tested differently than the master branch. If somebody pushes an old commit from a stable release, the configurations should reflect that state at that time. We think CI configuration belongs in the repo."
Continuous Integration goes beyond Agile
Enterprises face challenges in implementing lean processes when these methods must scale across the entire organization to be effective. Tasktop CEO Mik Kersten also shared his experience. "Many organizations are failing with a transformation that's driven by whatever fashionable trend their CIO bought into. Agile is an example. They've put a lot into it, they aren't getting results, and they don't know why. Right now, it's a DevOps transformation. They find they can't scale it after the first successful project. They can't bring it to the hundreds or thousands of other applications in their portfolio. Some things just aren't working."
Using Agile as an example, he went on to outline the primary problem with focusing only on development. "It's a local optimization of your value stream. The problem is that the organization hasn't defined their value stream. They have no concept." Keeping an eye on the prize is critical. "All that matters in the end is those great business ideas or strategies and how you bring them into the market to your users to turn a profit."
He pointed out that being able to do a lot of coding doesn't do much for the business if it's not responding to the market. The fast, ongoing feedback mechanisms that tend to be in place for Continuous Integration can help address this shortcoming in Agile (as long as the backlog remains manageable). Continuous delivery also goes hand in hand with a successful DevOps transformation. Yet without a higher level perspective, it's easy for CI to become just another buzz word rather than a driving force for profitability.
For businesses with a well-defined value stream and a desire to lead the market in innovation, properly implemented CI really can deliver on its promise. Here is a final note from CloudBees: "When you enable cheap, low-risk experimentation through continuous delivery, you can direct business investments with more information, and uncover opportunities you would otherwise completely miss." In the end, having good ideas to implement and integrate is what will make CI worthwhile.
What do you see as the big trends in the world of continuous integration and DevOps? Let us know.