DevOps is a set of practices that combine software development (Dev) and IT operations (Ops) to shorten the system lifecycle and provide continuous delivery of high-quality software. According to a report titled Full-Stack Teams, Not Engineers, released by IT Revolution , DevOps is not an organizational structure, but rather a way to organize independent teams, a culture, a set of Lean principles, and a set of practices. The report is part of a series from IT Revolution’s fifth annual DevOps Enterprise Forum held in Portland, Oregon. DevOps is a “team sport,” but getting people to think and work as teams, as opposed to separate teams of experts, can be a challenge. DevOps advocates must not only be skilled in the two core aspects of IT management—development and operations—but also be teambuilders.
According to a report by a group of authors led by Jason Cox, director of platform and SRE at Disney, for DevOps to succeed, it is essential to have a “full-stack” team or a diverse group, rather than a single or small team of DevOps engineers. Rather than aiming for the perfect full-stack engineer, it would be better for organizations to create full-stack teams that are balanced and consist of people with a core skill set and different specialties.
Cox and his team point out that a full-stack team brings together a mix of skills from across the enterprise. This allows the team to leverage and deliver the full-stack benefits of DevOps—design, build, deploy, and operate software—throughout the development lifecycle of their deliverables, without the challenges of hiring, deploying, and supporting full-stack developers or engineers. In addition, such a full-stack team can focus on providing an internal customer health dashboard that is used by all customer-facing teams. In addition, the team has two back-end engineers, a front-end engineer, a data scientist, a data analyst, a designer, and a product manager. All team members are essential, and role rotation and mentoring within the team are encouraged frequently. All specialized roles also engage in communities of practice across teams to share and develop deeper knowledge. A full-stack team can also consist of functional experts who are integrated into product teams. Team members also have two reporting relationships. The primary is the product team lead, and the secondary is the functional area manager, who is responsible for ensuring functional skills and career development. These integrated teams are responsible for learning from the rest of the team, taking ownership of the overall delivery and operational reliability of the product, and ensuring that the rest of the team understands their functional area.
The effectiveness of DevOps will be further enhanced by the creation of “Dojos”. A Dojo, which means “part of the path” in Japanese, is essentially a learning center that can help promote DevOps thinking and collaboration among various team members. Dojos are key to building a DevOps culture at Target.
Ross Clanton, executive director of technology modernization at Verizon, and his colleagues outline the following steps for forming a Dojo that enables DevOps:
- Create a space for learning and fun. Try to place your Dojo in a “high traffic area” to spark curiosity within the organization and facilitate future demand for your Dojo services. The Dojo should be open and fun.
- Organize team boards that optimize collaboration and use whiteboards to visualize ideas. For example, you can set up individual desks that include dual monitors at each location. A company can also have a “family-style” table without screens, allowing for more direct and easy communication and interaction.
- Design open spaces that allow for collaboration between teams. For teams that learn from each other, Dojo is a great way to “team train.”.
- Create a hub for communication and collaboration. These “demo lounges” should include a projector or large screen, comfortable seating, sound reinforcement, and a means of video conferencing with other Dojos or organizations. A “demo lounge” creates a space for all Dojo teams to meet and share their work. The ability to leverage the skills of different teams is the “key” to making DevOps work smoothly.
