DevOps principles and practices for Faster Delivery

The goal of DevOps is to improve collaboration between Dev and Ops, faster delivery, high quality and continuous improvement.

DevOps 3 ways

Principles and Practices for Continuous Delivery

  1. Make our work visible
    • Bad
      • Our work is Invisible.
      • We can’t see where flow is being impeded.
      • We can’t see when work is piling up, where is the waste, & why wait.
      • Not all the team members have up-to-date information of work.
    • Good
      • we need to make our work as visible as possible.
      • Have Visual work boards, such as kanban boards or sprint planning boards.
      • we can also manage our work so that it flows from left to right as quickly as possible.
      • Helps us to measure metrics – WIP, Lead time and throughput.
        DevOps principle – Make our work visible

  2. Limit work in progress
  3. Reduce batch size
    • Bad
      • Waterfall type release.
      • Big bang release.
      • Skyrocketing levels of WIP.
      • Long lead time.
      • Poor quality
      • Late release
      • Wait
    • Good
      • Single-piece flow, where each operation is performed one unit at a time.
      • Tiny batches needed for continuous deployment.
      • Use Trunk-based development.
      • Faster feedback
      • Reduce risk
      • Less overhead
      • Detect and resolve faster
      • Each change committed to version control is integrated, tested, and deployed into production
        DevOps Principle – Reduce batch size

  4. Automate Everything
    • Bad
      • Long deployment lead time months or quarters.
      • Hundreds (or even thousands) of tasks to deploy.
      • Multiple departments to work on a variety of tasks.
      • Too much of WAITS
      • Knowledge loss
    • Good
      • Jez Humble says – Computers Perform Repetitive Tasks, People Solve Problems
      • Code deployment should be automated, repeatable, and predictable
      • Production-like environments at every stage.
      • Enable Continuous integration of code
      • Enable Continuous delivery pipelines
      • Treat Infrastructure as code
      • Environments must be created in an automated manner
      • Make infrastructure easier to rebuild than to repair
      • Environments should be stable, reliable, consistent, and secure.
      • Build a fast and reliable automated validation test suite
  5. Eliminate Waste
    • Bad
      • Partially done work
      • Extra processes
      • Extra features
      • Waiting
      • Motion
      • Defects
      • Nonstandard or manual work:
      • Heroics
    • Good
      • Once the work is done, ship it.
      • Do what is asked
      • No gold plating
      • Eliminate waits in value stream
      • Knowledge should get waste in value stream
      • Reduce defects by enabling faster feedback loops
      • Eliminate manual work
      • Release in business hour
  6. Identify and Elevate Constraints
    • Bad
      • We don’t continually identify Bottlenecks
      • Bottlenecks are ignored
      • Not finding the root cause
    • Good – Apply The Theory of Constraints
      • Step 1: Identify the system’s constraints.
      • Step 2: Decide how to exploit the system’s constraint
      • Step 3: Subordinate everything else to the above decision
      • Step 4: Elevate the system’s constraint
      • Step 5: Warning! If in a previous step, a bottleneck has been broken, go back to step 1


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s