Within a traditional team, team members often focus on their own tasks rather than the big picture. Developers might concentrate on the code without considering infrastructure or testing needs. The Operations team might only consider infrastructure needs without considering impacts on functionality.
DevOps seeks to have each team member consider all aspects of the development process. This practice is known as systems-level thinking. Though this may sound daunting, the shared-responsibility team structure of DevOps makes this possible. When a team has developers, IT specialists, QA testers, and security experts, information is shared and decisions are made as a team. Meanwhile, individuals are given the opportunity to grow and gain knowledge in new domains.
One important outcome of systems-level thinking is the identification and resolution of bottlenecks. A bottleneck is a system’s slowest point, resulting in the slowing down of the entire process. A Development team with a systems-level view can more easily see where these slowdowns occur, resolve systemic issues, and optimize processes.
Resolving bottlenecks requires a team to acknowledge the issues within the system. Teams practicing DevOps view these shortcomings as opportunities for continuous improvement rather than as a concerning failure. In the next exercise, we’ll look at how learning from mistakes and experimentation are essential to DevOps.
Image (2022) retrieved from Integrify