Over the last decade, continuous integration and continuous development (CI/CD) has replaced the traditional approach to software development that started with months of work and ended with a big push of new code.The industry has shifted to making smaller changes more frequently, which has changed the way developers work.
Rob Zuber, CTO of Circle CI, said that his company sometimes ships 500 changes a week into its production environment.
“The notion of a change used to be the annual release but now a change might be a sentence on a page,” he said.
He said that his experience in the telecom world made him reluctant to embrace CI/CD at first, but then he realized that the approach actually lowers stress levels.
“With a Saturday night deploy, we were making it harder to be successful with a giant deploy,” he said. “When my pipeline is 60 seconds, the impact on my customer is low and stress level is low too.”
Zuber that the practice of CI/CD has had three benefits for developers:
- Faster feedback and more fulfilling work
- Less stress overall
- Less wasted effort
Here is a look at how CI/CD has improved the work environment for developers.
Benefits to software engineers
Most software engineers chose the work because they like to build things, Zuber said. The CI/CD approach helps to solve the problem of building something that customers don’t want or need.
“Now you can come up with an idea in the morning and know by the afternoon if it works for customers, so the connection to my customers increased,” he said.
Zuber thinks this approach makes a developer’s connection to a company’s mission that much greater as well because he or she can adjust quickly if a particular approach is not working out.
This fast feedback cycle also reduces the burden of features that don’t get used by customers, but still have to be supported, according to Zuber.
“Unused features are a heavy load of debt, but you have to make sure they still work, even though no one uses it,” he said. “Now I can put energy into what I know is having lift for customers.”
SEE: Top 5 programming languages for systems admins to learn (free PDF) (TechRepublic)
The more traditional release cycle also created a lot of duplicated effort and rework, Zuber said, with developers having to relearn work completed months previously.
“Now you don’t have to stop and go back because you see it through to the end in these really short cycles,” he said.
CI/CD creates a stronger sense of ownership to a feature as well as improving a developer’s ability to resolve problems that come up, according to Zuber.
“When those small issues come up in your cycle it’s easier to fix,” he said.
How CI/CD has changed the industry
Zuber said CI is basically mainstream at this point, but CD is not as widespread.
“You have to have the right tooling in place to do it well, and you need to be comfortable that you understand what’s happening in production,” he said.
Zuber said that implementing CD also depends on a company’s risk profile and product or service.
“The automotive industry has a lot of software running in cars these days and you probably don’t want that in continuous deployment,” he said. “The key is understanding where you are from a delivery perspective, what your risk profile is and how to manage around that.”
In February, the CD Foundation made these predictions for CI/CD trends in 2021 in a blog post by Michael Winser:
- Zero trust approach to security and compliance
- A move toward continuous delivery favoring simple tools
- Continued move toward serverless runtimes
- Declarative approach to CI/CD
- Linking CI/CD metrics to business results
- Tekton emerging as a standard
Zuber said the industry has simply gotten better overall at thinking about change in small ways.
“Breaking things down into small increments has helped us be more creative about solving even big problems,” he said.