Dev and Ops are separate departments
Organizations typically divide their teams by type of work. They create development departments for writing software. And, because running software quickly and stably requires a different set of specialization, they create a separate operations department. This division of labor simplifies management because each department shares certain characteristics and needs.
| spoon |
Separated departments have conflicting goals
Each department defines goals along division of labor lines. The development department may be measured by the speed of creating new features, while operations is judged by uptime and response time. Unfortunately, operations is considered successful with stable, unchanging metrics, but development is only applauded when lots of things change. Conflict is baked into this system making collaboration unlikely.
Dev and Ops sub-optimize to meet local goals
Instead of optimizing the whole application lifecycle, both Dev and Ops improve their processes to meet their respective goals. Developers do everything to speed up the creation of new features by adopting agile methodologies. Sysadmins do everything to maintain stability and enhance performance by applying ITIL which equates change to risk – something to be avoided at all costs.
In an even crueler twist of fate, when each of these departments are operating at maximum efficiency, the product lifecycle suffers the most. Development is continuously pounding out new features against the walls of Operations which, in turn, has all kinds of defense mechanisms in place to fight change. A huge war is about to break out, and the only way to avoid it is by aligning the goals of these two departments.