peshkova - Fotolia

CI/CD workflows, IT roles lead to organizational disharmony

Divides between IT teams and roles in an organization can impede software delivery, even if they use the right tools. Some companies have chipped away at those barriers.

NEW YORK -- Application developers want speed, but not merely faster iterations -- organizations must knock down barriers to swift software development and delivery.

IT professionals across different roles seek ways to streamline their workflows, but organizational bottlenecks manifest in a variety of ways, most often with cultural or technological barriers. DevOps and CI/CD workflows, in particular, can be problematic for organizations that seek to standardize how they release products and features. While many organizations use Jenkins, teams can have wildly different CI/CD workflows, which mean code artifacts can go through completely different lifecycles from team to team.

"You're never going to be [CI/CD] right on the first try," said Michael Hamrah, chief architect at Namely, a human resources SaaS provider based in New York, here at last week's O'Reilly Velocity Conference.

As the startup grew, Hamrah sought to get Namely's feature teams on the same page to ease deployment of its services. To do this, Namely's SRE team found common threads in its development process, and created a Jenkins library to automate common steps, such as build, test or publish to Docker, regardless of a developer's programming language.

"Then, we can start developing functions and functionality and shared libraries around that, really simplifying the process for our engineers, and it lets us iterate and evolve in one place," Hamrah said.

We don't just allow teams to do the same monolith code and dump it into microservices. We tell them to start afresh.
Deepank Sharmasenior technical staff and cloud architect, Verizon Wireless

The same approach can help standardize app development for enterprises with even more disparity between teams.

Verizon Wireless used the same tools and repositories across several teams, but the CI/CD workflows varied. Some teams took code to production several times per day, while others lagged, said Deepank Sharma, senior member of the technical staff and cloud architect.

So, the organization switched to a "cookie-cutter" model, to package applications onto containers and deploy them onto a Kubernetes cluster. Using Jenkins with Kubernetes the organization built functions for all steps of a pipeline for every Verizon tool that could contribute to the pipeline, Sharma said. Those functions exist as Kubernetes templates, so developers don't start from scratch on a new build.

"[We] get improved velocity, not only for our team to move code to production faster but to migrate all the existing on-prem applications onto cloud faster," he said. "Imagine the velocity that you can attain when you migrate the second, the third, the fourth and the hundredth team onto those services faster."

Verizon Wireless also adopted test-driven development as a part of its shift from monoliths to 12-factor distributed apps, to take a more proactive approach to testing and refactoring. "We don't just allow teams to do the same monolith code and dump it into microservices," Sharma said. "We tell them to start afresh, so that moving forward software delivery becomes even more Agile [and] it adheres to the quality that is expected."

Know your role, and then forget it

DevOps consultancies and vendor tools abound, but an organization may struggle more to manage and organize how it uses these products than decide which ones to implement. For enterprises, in particular, there are questions around business value and individual dev and ops incentives that keep both groups entrenched in their individual responsibilities, said Christopher Little, analyst at Gartner.

"Culture is probably the hardest thing to abridge," he said. "It requires different management styles, different employee styles, active learning, and it requires a number of changes that, historically, corporations are not set up to facilitate."

Divisions between individual teams, not to mention between development and operations, can ultimately prove costly. Enterprises need to break apart their command-and-control culture, Little said, which serve as barriers to product delivery. But it can't happen with the snap of a finger.

"Just because a leader says, 'Everyone should do all the things all together,' that's not going to just magically happen," said Jennifer Davis, principal site reliability engineer at RealSelf, a Seattle-based company that aggregates reviews for cosmetic treatments and medicine. "You need to have the leadership support, but also the individual contributors caring about how they are part of the story."

Through the years, Davis, whose previous stops include Chef and Yahoo, has seen operability concerns rolled into product and architecture designs, and she's also seen ops feedback rebuffed. The latter, she said, costs companies a ton of money in organizational and tool costs. "I see the pattern over and over again," she said.

Enterprises have begun to show a willingness to bridge this gap, Little said, and DevOps professionals at Velocity seemed to confirm that shift. Davis also said she has received feedback from organizations globally that are in the midst of Agile and DevOps transitions.

But DevOps hires only go so far. Organizations must embrace DevOps principles top to bottom, beyond just CI/CD workflows. Just as many traditional developer and operations job responsibilities have become barriers to swift product releases, so too can a DevOps initiative if it aims to simply bandage problems that require long-term and ongoing treatment.

"The fact that you solved [an] issue 10 years ago doesn't mean that you don't need to keep solving it, because the world keeps advancing," Little said.

Dig Deeper on Agile, DevOps and software development methodologies

Cloud Computing
App Architecture