Chapter 10. Dev and Ops Collaboration and Cooperation
MOST ORGANIZATIONS SPLIT THEIR WEBSITE DEVELOPMENT AND SUPPORT into two separate teams. One team is responsible for creating new features and improving existing functionality. The other team is responsible for keeping the site up and running. These teams usually report to different managers and in some cases are in different business units or even different companies.
Splitting responsibilities in this way is common because superficially it makes a lot of sense. The two teams have different goals, and those goals require very different working styles. Software development is best done in long stretches of uninterrupted coding time in a quiet room. In contrast, an operations team needs to respond instantly when something breaks. It can be difficult to find people interested in working in both worlds, let alone people who are capable of doing both in the same day.
In this context, it’s hard to argue against forming two distinct teams. Once that happens, the most obvious way to manage the relationship between these teams is through service-level agreements (SLAs) and a managed handoff of code. At regular intervals, the development team packages its work and hands it off to the operations team to deploy to production. This allows the developers to focus entirely on the most efficient way to add new features and allows operations to maintain control over the production environment. It allows management to clearly assign ...