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.
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 begin pipeline programming, starting 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.
How does mobbing help move the group to an effective and accepted solution?
If you are interested in this approach, we several tips for success:
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.
If you’d like help with mobbing your way toward a smooth delivery pipeline, you can learn more about our DevOps and Cloud Services Consulting offerings.
Stay tuned for our upcoming webinar, "Agility at Speed Through DevOps and Cloud."