While organizations may aspire to a modern, cloud-based pipeline, the division between departments and their agendas can have the process take months, or stall. The main obstacle to achieving a modern pipeline boils down to culture and people. Getting alignment between people on a course of action is difficult.
At first glance, the solution seems to be the DevOps approach, which encourages alignment by creating a culture of mutual accountability, thereby increasing speed. If you have agreement on the goals of a pipeline then, in theory, you should be able to proceed forward quickly, creating a pipeline that fulfills those goals. However, in practice when we attempt to achieve those goals, we often find details where we are not aligned. What goes into which repository? Who owns Infrastructure as Code? How do we manage secrets? At what security vulnerability level will we fail a build?
We may think we’re aligned, but we discover misalignment as we go deeper into the solution. The time to create the pipeline drags on. Meetings. Waiting for approvals. Rework. More meetings.
Mobbing Your Way Toward a DevOps Pipeline
We’ve been using a new approach that has been effective: workshops where people use mob-programming to create a fully-functioning cloud pipeline, making progress in days or weeks instead of months. Here’s how it works.
We start with multiple participants working on one computer – as a tool for building alignment and building pipelines. We bring together people from development and multiple operations groups (security, infrastructure, networking, support) to jointly build a cloud-ready pipeline. The first step is to create a simple, representative application using your desired technology. This can be a single-page application front end, making service requests, with a document database back end. This is as simple as possible.
You then work on the pipeline, starting at the beginning, with source control and the build. As you design, process, and build the pipeline, everything is done via code, checked into source control, with automated tests. If there are technology or process issues, you can try multiple approaches, getting immediate feedback from the entire group as to what approach fits best. The process is iterative and incremental. You might build a simple end-to-end pipeline first, then add to it. Or dive deeper into one area when the group has interest. Time between sessions can be used to investigate and resolve issues that can’t be resolved in the workshop, and/or to invite additional participants with specific input to a following session. Everyone is hands-on. If there’s expertise in the room, that gets used, but equally often you might be searching the web for examples of how to solve the problems you encounter and collaboratively modifying them to fit your evolving solution.
Benefits of Mobbing in Pipeline Programming
How does mobbing help move the group to an effective and accepted solution?
- People trust the solution. They had a hand in building it from end-to-end.
- You build deeper alignment. When you work at this level of detail, you get to see each other’s thinking, challenge approaches, and ultimately arrive at a solution. Instead of being aligned on theory, you become aligned on practice.
- You move faster. Instead of taking decisions to a review board, the reviewers are already in the room, discussing options and making decisions as part of the process.
- You learn how to work more effectively with each other. Everyone uses the keyboard – installing and configuring software, and debugging problems. Everyone makes mistakes. Everyone learns from their peers.
- You develop the stamina to work through challenging problems. Often, when difficult items come up in a meeting, people suggest they get taken “offline” for resolution. But this resolution may never happen. In these mobbing sessions – lasting several hours – when a difficult problem comes up, you solve it. You stay focused. You work through issues in hours or days instead of weeks, months, or never.
- This process is a great beginning to cross-training in the organization. Each individual has a better understanding of each other’s goals and concerns; of the various technologies and roles required in the solution.
How to Make it Work
If you are interested in this approach, we several tips for success:
- The group participating should be 10 or fewer people, with cross-functional skills, and the authority to make and implement decisions.
- Everyone has the tools on their machine and access rights to work on the pipeline. Everyone participates.
- Expertise and experience building a pipeline. This can be within the team or brought in from the outside.
- Previous experience with mobbing or a willingness to try it. One or more people in the group having had experience working this way make it easier for others to start.
- Understanding pre-existing constraints within the organization.
- Blocks of four hours, two or three times per week.
To get started, meet with the leadership team from the groups who would be involved. Get agreement to try the approach. Identify the team, create the schedule, and get started.