DevOps & Manufacturing: Streamlining Processes for Success

It seems like the biggest buzzword in IT now is DevOps. According to recent statistics, attendance at the DevOps Enterprise Summit has increased by 20% annually over the past three years.

DevOps revolves around the concept of the three ways:

  1. Pushing from left to right – This involves getting our applications out to production. In this post, I will focus on the first way of DevOps.
  2. Establishing a feedback loop – This entails monitoring how our applications are performing in production and gathering feedback from users and application architects.
  3. Providing consistent feedback from our applications and facilitating smooth transitions from left to right, supporting continuous innovation from our product teams.

If you’ve read “The Phoenix Project,” much of what I’m discussing won’t be new, but I’m sharing insights from my own experience. My background lies in manufacturing. In the late 80s and early 90s, I worked on the production floor of a corrugated box plant. We received raw materials such as paper and starch, and the final product was bundled boxes on pallets ready for shipment.

So, what does manufacturing have to do with application development? Primarily, it’s about understanding the value stream. In a box plant, the focus is on creating corrugated board from three layers of paper and starch, then sending it to a printer or die-cutter to produce the final product for shipment.

Much of the manufacturing process involves automated flow using conveyors, a concept that gained traction in the 80s with lean manufacturing principles. Automation increased production flow from the corrugator to the shipping docks, reducing bottlenecks caused by manual tasks such as transporting materials or loading pallets. The goal was to ensure continuous flow throughout the production line, as any bottleneck could lead to costly downtime.

When a bottleneck occurs, attention must shift to that point in the production line to prevent backed-up products and potential errors. This concept aligns with the DevOps principle of “subordinating to the constraint,” focusing efforts on removing obstacles to maintain a smooth flow of work from development to deployment.

In the world of DevOps, bottlenecks may not be as tangible as jammed conveyor belts, but they still exist. It’s essential to assess your current processes to identify blockers in the development stream. Questions to consider include:

  • Do you have a CI/CD pipeline in place? Are deployments and testing automated, including security policies?
  • Are environments provisioned automatically, either on-premises or in the cloud, or do you rely on manual provisioning that can lead to delays?
  • Are your team members equipped with the necessary skills, or do they require additional training or support?
  • Are there organizational barriers affecting the development process that need to be addressed?

Continuous evaluation of the value stream is crucial for identifying and eliminating bottlenecks to support efficient workflow. While it may be challenging to pinpoint constraints without solid data, early perceptions can lead to significant improvements. As automation is implemented, deployment frequency may increase dramatically, necessitating a focus on feedback to refine processes and maintain quality.

Regarding technology solutions, there are numerous options available, such as Jenkins, TeamCity, Ansible, Chef, and Puppet, containerization among others. The choice depends on your organization’s specific needs and preferences, but remember, tools are just one aspect of the DevOps journey.

Transitioning from quarterly to daily deployments requires a robust feedback mechanism to ensure continuous improvement. This topic warrants further discussion in a future article. Enjoy your journey in DevOps!