IT organizations looking to start with on their DevOps journeys have to carefully consider who to begin with, how to organize their teams, and how to enable individuals with new DevOps practices. We have to start somewhere, and it’s often through our progress that we find our most compelling reasons to move forward. To help you on this DevOps journey, here are some DevOps fundamental questions answered.
Focusing on Flow
One of the core concepts of DevOps is flow. Organizations will look at a Value Stream Map to consider the performance of entire systems. Starting with a single stream of value can help ease other parts of your organization into adopting new ideas and practices.
Flow refers to the flow of work in your value stream. Work can come from features requests, requirements, defects, and or support tickets. The goal is to ensure that the value stream is always moving forward. Some things that can affect flow include:
- Changing priorities and task switching,
- Lack of visibility around problems and processes,
- Long development cycles,
- And not getting code to higher environments
The book titled Team Topologies authored by Matthew Skelton and Manuel Pais shares a few more obstacles to flow.
Here is a guide to improving the flow of work within a value stream by Gene Kim. It involves creating a dedicated transformation team that’s held “accountable for achieving a clearly defined, measurable, system-level result (e.g., reduce the deployment lead time from “code committed into version control to successfully running in production” by 50%).” This dedicated team should have the resources and freedom to utilize the different DevOps practices to achieve the results.
In an earlier post on the Harness blog, we share how to use Metrics Based Process Mapping to map measurements to your processes. This is a great reference and practice if you are having trouble tracking measurable metrics and people processes within your value streams.
Focus on the foundations
Consider continuous delivery as a foundation for your DevOps journey. Many technology teams fail in their DevOps journeys because they don’t invest in proven team practices and so they fail to deliver any value within the value stream.
Continuous delivery supports various practices around development, automation, testing, and operations. Achieve buy-in from other teams within your organization to scale DevOps and achieve fast flow by treating your pipelines as first-class citizens to all your engineering teams.
A common question that comes up is around team structure is, do I need a dedicated SRE or DevOps team to achieve fast flow? And the typical answer is always it depends. Google introduced an SRE model. Spotify has the ‘Spotify Model.’ Every organization is finding its own way to effectiveness. It is mostly dependent on your organization’s maturity and the comprised individuals. Here are some concepts around team topologies.
- Take advantage of Conway’s Law, which states, “organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.” Optimize your team structure to produce your architecture. This means that not all teams in the organization will look the same.
- Cross-functional delivery teams are essential. Each component of the DevOps loops needs to carry feedback into the next iteration of your design, development, testing, deploying, and operationalizing.
- Recognize how topologies affect flow. Inevitably changing your structure can disruptive, note when you need to introduce enablement, stream-alignment, a subsystem team, or a platform team. These are known as the four fundamental topologies. How you employ those roles will differ across organizations. Here are two figures from the Team Topologies book that illustrate this point.
Before changing your team topology, I would consider some research on what may work for your organization based on the engineering skillsets and maturity within your organization.
How you choose to start on DevOps journey is up to you. Wherever you happen to be, let Harness help you achieve faster flow across your teams.
Harness is a continuous delivery platform that takes the need TOIL in managing brittle pipelines and scripts. Create your most basic or complex pipelines with ease.