In his Behaviorally Speaking series, Bob Aiello discusses hands-on software configuration management best practices within the context of organizational and group behavior.
One of the principles of DevOps is to shift left by involving operations, quality assurance, testing, and information security early in the process. But it's also a good idea to have the team shift their knowledge right to help developers understand how the systems behave in real-world scenarios, including scalability, infrastructure architecture, and disaster recovery.
DevOps consists of principles and practices that help improve communication and collaboration between teams that all too often are not exactly on the same page. While the principles are consistent across all projects, the practices may indeed vary from one situation to another.
One of the most effective DevOps practices has become known as “left-shift,” whereby we involve Ops early in the process, ideally having them get involved with the application build package and deployment from the very beginning of the application lifecycle. When I am serving in the role of the build, I always ask to be given the job of deploying from the development test environments all the way through to production. By getting involved early, we share the journey and gain the knowledge that we need in order to be more effective. Many practitioners also embrace left-shift in regards to quality assurance and testing.
DevOps needs to embrace a continuous testing approach that begins with unit testing and evolves to help ensure the quality of the entire system. Systems thinking in DevOps involves taking a broad view of the entire application, from the operating system through every component of the application. Once again, this is an example of left-shift, where QA and testing are involved early in the lifecycle and ideally work directly with the developers to create robust native automated test tools. The information security team has very similar needs in order to protect systems form unauthorized access.
Successful DevOps usually results in deployment processes that are so quick, they can be run every day, several times a day—and even on a continuous basis. Without continuous testing and left-shift, the team is unable to keep up with the rapid rate of change inherent in DevOps and continuous delivery. In my experience, left-shift requires convincing the developers to include their colleagues from operations, quality assurance, and testing earlier in the process. But this isn’t the only situation that requires sharing information and feedback loops.
The technology professionals responsible for infrastructure and operations also need to remember to involve their colleagues from development, and I have seen this overlooked. The operations team often knows more about how the application behaves in the real world than the developers who wrote the code. Issues related to troubleshooting, scalability, and even disaster recovery are often understood by the folks manning the console seven days a week—twenty-four hours a day more than the developers who wrote the code.
Behaviorally, this all comes down to sharing knowledge and expertise. Unfortunately, dysfunctional behavior can sometimes be driven by fear, especially the fear of losing credibility in front of colleagues.
Many times, technology professionals do not want to involve their counterparts from other teams while they are trying to understand new technologies because they do not want to be embarrassed if it turns out they are mistaken. This means that sometimes we work alone to learn new technologies and hold off on sharing until we really understand all aspects of how the technology works. In my opinion, it is essential for everyone on the team to be willing to share the journey of learning new technologies in order for everyone involved to gain the knowledge and expertise essential for getting the job done. In effect, this can be accomplished by shifting right.
Building scalable infrastructure involves a great deal of expertise, and operations needs to share the journey with their development counterparts. Even backup and recovery procedures can involve a great deal of complexity. This requirement includes the need for feedback loops to share information and the journey to solve issues and achieve goals. Silos pose serious threats to the organization and need to be driven out in order to achieve productivity and quality.
Just to be completely clear, organizational structures are often necessary. If you are working in large financial firms such as a big bank or trading firm, structures and separation of controls are often mandated by federal law. But having an org chart does not mean teams cannot communicate effectively.
If you create an environment where everyone feels safe to shift right sometimes and share knowledge and expertise, you will have a much better chance of success. More importantly, if your team feels safe sharing their challenges and asking for help, then you are on your way to creating a high-performance team.
DevOps has extremely effective principles and practices that help improve communication and collaboration. Make sure you embrace left-shift by involving operations, quality assurance, testing, and information security early in the process. Also make sure you ensure that other members of the team shift their knowledge in the other direction to help the developers understand how the systems behave in real-world scenarios, including scalability, infrastructure architecture, and disaster recovery.