Published Nov 9, 2020

The DevOps Handbook - Create Organizational Learning

    Explore the transformative power of organizational learning in DevOps as the episode delves into automating standardized processes, enhancing knowledge sharing, and integrating non-functional requirements in system design. Discover how chat rooms are revolutionizing team collaboration, transparency, and innovation through real-time communication and shared problem-solving.
    Episode Highlights
    Coding Blocks logo

    Popular Clips

    Episode Highlights

    • Non-functional Req.

      Incorporating non-functional requirements into system design is crucial for enhancing operational performance. Alan Underwood explains that when developers are accountable for incidents, applications are designed with better operational capabilities, such as faster deployment and improved reliability 1. Michael Outlaw adds that non-functional requirements include metrics, telemetry, and the ability to trace requests, which are often overlooked but essential for troubleshooting 1.

      Non-functionals are all the stuff that you want to do that your boss doesn't want you to do.

      --- Joe Zack

      By focusing on these aspects, systems become more robust and easier to maintain, ultimately benefiting the entire organization.

         

      Shared Repo

      Maintaining a single shared code repository can significantly enhance consistency and collaboration across an organization. Alan Underwood highlights Google's approach, where a single repository includes not just code, but also configuration standards, deployment tools, and testing standards 2. This strategy ensures that all engineers work with the latest code, reducing dependency issues and improving efficiency 3.

      By building everything off a single source tree, you eliminate the problems you encounter when you use external dependency management systems.

      --- Alan Underwood

      However, Michael Outlaw notes that this approach requires careful planning and agreement on workflows to avoid potential challenges 3.

         

      Build Systems

      Efficient build systems are essential for large organizations to ensure fast and reliable software development. Michael Outlaw discusses the importance of using tools like Bazel, which optimize build processes by understanding dependencies and changes 4. This approach minimizes the time and resources needed for builds, making it ideal for companies with extensive codebases 5.

      If you build from source, you have exactly what it is that you need.

      --- Alan Underwood

      While this method is not suitable for every organization, it offers significant advantages for those that can implement it effectively.

    Related Episodes