" /> DevOPs - Libretech Journal
Libretech Journal

DevOPs

Form Diverse Bonds

  • Posted on

    DevOps is a cultural and professional movement, not a predefined methodology, born from the practical experiences of its practitioners. It's unique to each organization but shares common principles.

    DevOps is practiced by everyone in high-velocity organizations, not just a dedicated team. It fosters collaboration among well-connected specialists.

    Key Principles:
    - Prioritize safety, containment, knowledge access, and freedom for both employees and customers.
    - Value people over products and companies.
    - Embrace lean principles (eliminating waste, pull over push, continuous improvement, small batches, experimentation).
    - Accept failure as normal and focus on rapid recovery.
    - Automate workflows ubiquitously.
    - Foster diversity within the organization.

    Getting Started:
    - Declare your purpose: Publicly state your goals, including the people you serve, the product, and the desired change.
    - Define your beliefs: Outline how specific behaviors lead to positive outcomes, incorporating industry-specific aspects.
    - Build empowered teams: Give teams the authority and context to make decisions, supported by leaders who share the team's purpose and beliefs.
    - Form diverse bonds: Network across departments to build consensus and gather feedback.
    - Develop products with strong value propositions: Focus on solving problems and creating things people love, not just things they want.
    - Build a roadmap: Start with a vision, incorporate customer feedback and innovation, and group features into themes with clear outcomes. Expect features to change, but themes to remain relatively stable.
    - Include "delighters": Add unexpected features that enhance user experience.
    - Build iteratively: Develop features in small, testable increments with frequent customer feedback.
    - Manage risk through small batches: Reduce long-term risk by embracing near-term volatility and frequent validation.
    - Don't worry about scale (initially): Focus on execution and addressing theoretical concerns later.
    - Regularly demo progress: Showcase work weekly to stakeholders to build transparency and address potential concerns.
    - Choose appropriate tools and languages: Employ polyglot programming, selecting the best fit for each task.
    - Utilize source code control, bug tracking, and continuous integration: Maintain short-lived branches with frequent merges to the mainline.
    - Follow the "rule of four eyes": Ensure multiple people review important changes.
    - Write tests incrementally: Don't plan massive upfront testing; write tests continuously alongside development.
    - Practice continuous delivery: Always be ready to ship.
    - Establish a single path for change: Maintain consistency in the process of moving code to production.
    - Focus on availability: Minimize mean time to diagnose and repair failures.
    - Collect meaningful metrics: Use high-resolution data with minimal systems.
    - Plan for capacity: Graph key metrics, set limits, and anticipate future needs; auto-scaling is a reaction to failure, not a preventative measure.
    - Alert only on actionable issues: Avoid excessive alerts that distract teams.
    - Practice incident response: Use the OODA loop (Observe, Orient, Decide, Act) and conduct postmortems after unexpected incidents.
    - Apply principles of scalable systems design: Treat systems as autonomous actors with clear promises and boundaries.
    - Embrace humility: Recognize that others possess greater expertise in various areas.
    - Focus on simplicity, extensibility, and reuse: Prioritize user simplicity, even if implementation is complex.
    - Implement DevOps in a business context: Select a project, gather stakeholders, and apply the DevOps principles iteratively over an 8-week period, demonstrating progress weekly.

    DevOps is a practice, not just a buzzword: It's about consistent application of principles and behaviors, adapted to individual contexts.

"> ');