DevOps is a team sport, but getting people assembled to think and work as teams -- versus separate pools of specialists -- can be difficult. DevOps proponents not only need to be adept at the two core aspects of IT management -- development and operational issues -- but also be team-builders as well.
That's because DevOps "is not an organizational structure; rather, it defines a way to organize independent teams, a culture, a set of Lean principles, and a set of practices," according to a report entitled Full-Stack Teams, Not Engineers, released by IT Revolution. To succeed with DevOps, it's essential to have a "full-stack" or diverse team, rather than handing it to a single or small group of DevOps engineers, the report's team of authors, led by Jason Cox, director of platform and SRE at Disney, urge. The idea of having a full-stack engineer "is more myth than reality. Instead of hunting and waiting on the perfect full-stack engineer, a more sustainable paradigm would be for organizations to create full-stack teams. This balanced team is filled with people possessing a core set of skills plus different specialties."
The report is part of a series that came out of IT Revolution's fifth annual DevOps Enterprise Forum, held in in Portland, Oregon.
A full-stack team brings together a combination of skills from across the enterprise, Cox and his team explain. This enables the team to deliver the full-stack advantage of DevOps -- designing, building, deploying, and operating software throughout all development cycles of their deliverables -- "without the challenges of recruiting, developing, and sustaining full-stack developers or engineers." Such a full-stack team, for example, may be focused on delivering "an internal customer health dashboard that is used by all customer-facing teams. It has two back-end engineers, a front-end engineer, a data scientist, a data analyst, a designer, and a product manager. Each team member is essential, but rotation between roles and teaching within the team is strongly encouraged. Each specialist role also is active in communities of practice across teams to share and build deeper expertise."
Or, a full-stack team may be comprised of functional experts embedded into product teams, the authors add. "The team members have two reporting relationships, the primary one being their product team leader and their secondary one being the functional area manager in charge of ensuring functional skills and career development. These embedded teams are responsible for learning from the rest of the team, taking ownership of the overall delivery and operational reliability of the product, but also ensuring the rest of their team has a grasp of their functional area as well."
Another team-building activity that will boost DevOps effectiveness is the creation of "Dojos," a separate report out of IT Revolution urges. A Dojo -- which means "place of the way" in Japanese -- is essentially a center of learning that can help foster DevOps thinking and collaboration among various team members. "Think of Dojos as your transformation immersion center, according to Ross Clanton, executive director of technology modernization at Verizon, and his co-authors.
Hmm... Perhaps Dojo could also serve as an acronym for "DevOps Journey Orchestration"?
Dojos are core to building a DevOps culture at Target. Mike McNamara, CIO at Target, is quoted in the report:
The Dojo at Target "is an immersive, six-week session where teams execute their normal work with Agile coaches on site to support them and provide anything they need from a DevOps point of view. The Dojo has been fantastic in getting teams engaged with Agile and DevOps, removing the natural resistance and fear of change, and then supporting the team through the changes while maintaining productivity. It's been a huge success for Target. And as we move through the journey, we continue to use the Dojo to refine, reinforce and strengthen our engineering capabilities."
Clanton and his co-authors outline the following steps to form a Dojo that energizes DevOps initiatives:
- Create a space for learning and fun. "Try to put your Dojo in a high-traffic area so that you can broaden the exposure of what teams are experiencing. This helps create curiosity within the organization and in driving future demand for your Dojo services. The Dojo should be open, inspiring, and fun."
- Arrange team tables that optimize collaboration, and employ whiteboards to foster visualization of ideas. "For instance, you can install individual desks grouped together that include dual monitors at each station. A company may also have a 'family-style' table with no monitors, allowing for boundaryless communication. The most important factor to consider with the layout of the table is that everyone sits within close proximity to one another, hopefully allowing for in-person collaboration to become inevitable."
- Design open spaces that enable inter-team collaboration. "Teams learning from others in the Dojo is a great way to get people out of their silos. Some of this learning will happen naturally as teams overhear other conversations that may be relevant to their own progress. Additionally, some of the learning will happen as people begin networking with other teams, as well as learning how they can help support one another and what further opportunities may exist."
- Set up a communication and collaboration hub. These "demo lounges" should include a projector or large monitor surface, comfortable and informal seating, sound amplification, and a way to video conference with other Dojos or organizations, Clanton and his co-authors state. "A demo lounge creates a space for all teams in the Dojo to meet and share their work. This is another great way to get your stakeholders who aren't in the Dojo, such as management and business partners, to come in and participate in the team's learning and progress."
As Cox and his co-authors explain in the Full-Stack Team report, "it takes years of hard work to become a master of anything, and DevOps skills are no different." The ability to tap into the potential of diverse teams is the key to a smoothly flowing DevOps organization.