Blog

All posts

41 articles on continuous delivery and DevOps, 2014–2022.

2022

  1. A Metrics Framework for Continuous Delivery

    Here’s a framework I like to start with when I discuss what types of metrics can help or harm you in your journey to continuous delivery: Lagging Indicators At the organizational level, unit tests are usually part of a…

  2. Video: Lies, Damned Lies and Metrics

    I spoke about what types of metrics and KPIs (including OKRs) you can use with continuous delivery, and which ones you might want to stop using, during my talk at GOTO 2019. Also discussed: Leading and Lagging…

2020

  1. If a Build Takes 4 hours, Run It Every 4 Hours

    (Note: You might need to fix your environment bottlenecks first before being able to act on this blog post) Builds (i.e. compile + run tests + deploys + more tests etc…) represent a bottleneck for getting feedback on our…

2019

  1. Co-Ops: Enabling True Continuous Delivery with Cooperative Pipelines & Processes (Title Feedback Needed)

    “Co-Ops” is a term that one of the attendees at a talk I was giving about cooperative pipelines came up with. I wish I knew his name. I asked him to email me afterwards so I can credit him but he never did. Co-Ops…

  2. Video: The Pipeline Driven Organization - Enabling True Continuous Delivery (Oredev 2019)

    Roy Osherove — The Pipeline Driven Organization| Øredev 2019 · YouTube

  3. Continuous Delivery Israel Meetup - First Meeting June 24 2019

    I’m pleased to announce that we will have the first ever meeting Continuous Delivery Israel meetup, in the AWS Floor28 offices in Tel Aviv, June 24th, 2019, at 6PM. The Group’s page is located at CDIsrael.com If you…

  4. "Pipeline Driven" vs. "We have Jenkins Jobs"

    High performing and continuously delivering organizations such as Netflix, Amazon, Google, Wix and others don’t just have pipelines. They don’t just automate stuff and put jobs on it. That’s the easy part. Many…

  5. Delivery Pipelines and Discovery Pipelines

    In a previous post I discussed the notion of having two seperate pipelines. I want to revisit this, with a bit more details. When we’re talking about Continuous Delivery, we’re very interested in the speed of the…

  6. Red Pipelines and Build Whisperers: Getting to a Trustworthy Noise Free Test Pipeline

    People wonder why it takes such a long time to transform the way a large organization works. Here’s just a small nugget, a small tip of a small iceberg, in a small corner of a large building in a large state, filled IT…

  7. A Pipeline Friendly Layered Testing Strategy & Recipe for DEV and QA

    The key point of running a pipeline is to get feedback which in turn is supposed to provide us with Confidence. That’s because a pipeline is really just a big test - it’s either green or red; and it’s composed of…

2018

  1. Always start with a "Why" when transforming to DevOps.

    I’ve been to quite a few DevOps and Agile transformations, big and small. Some just want to up the coverage of their tests (not recommended!), others want to revamp their team structures, and some want to change their…

  2. Ten Devops & Agility Metrics to Check at the Team Level

    When I coach teams that are getting into the DevOps and Continuous Delivery mindset, a common question that comes up is "What should we measure?" Measuring is a core piece of change - how do you know you're progressing…

2017

  1. Ephemeral Environments for DevOps: Why, What and How?

    In the previous post I discussed the issues with having static environments . In this post I cover one of the solutions for those issues: Ephemeral environments. Ephemeral environments are also sometimes called “Dynamic…

  2. The four biggest issues with having static environments

    An environment is a set of one or more servers, configured to host the application we are developing, and with the application already installed on them, available for either manual or automated testing. What are static…

  3. Continuous Delivery Values

    I mentioned in my last post about the toolchain needing to respect the continuous delivery values . What are those values? Many of them derive from lean thinking, eXtreme Programming ideas and the book " Continuous…

  4. Guidelines for selecting tools for continuous delivery toolchains

    If the tool you use does not support continuous delivery values , you're going to have a bad time implementing CI/CD with fully automated pipelines. Here are some rules for the road: The first rule is: Don't select your…

  5. The first rule of continuous delivery toolchains

    Continuous delivery transformations are hard enough in many areas already: changing people's behavior, changing policies, architecting things differently - all these things are difficult on their own. Having a toolchain…

  6. The four most common root causes that slow down enterprise continuous delivery

    In my journey as a developer, architect, team leader, CTO, director, coach and consultant for software development, the two most common "anti patterns" I come across int he wild that generate the most problems are:…

2016

  1. DevOps Metric: Amount of Defects and Issues: definition.

    Important to : VP of QA, Operations Definition : How many bugs or tickets are found in production/ how many recurring bugs in production. As well as - how many deployment issues during release are encountered. How to…

  2. DevOps Metric: Frequency of Releases Definition

    Important to : Release Manager, CIO Definition : How often an official release is deployed to production, in paying customer's hands How to measure : If no pipeline: release schedule. Otherwise, history data for…

  3. DevOps Metric: Mean time to recovery (MTTR) Definition and reasoning

    Important to: VP Operations, CTO Definition :When a production failure occurs, how long does it take to recover from the issue? How to measure: Different between systems. Common metric is production downtime avg over…

  4. DevOps Metric Definition: Mean time to change (MTTC) (vs change lead time)

    Also called "time from concept to cash". Important to : Everyone, especially the CEO, CIO and CTO. Definition : How long does it take a new average feature, idea, fix or any other kind of change to get into a paying…

  5. What is Enterprise DevOps?

    To understand Enterprise DevOps, we have to first define what "regular" DevOps is. Here is my current definition of DevOps. Let's call it "DevOps 0.1" What is DevOps? (Version 0.1) DevOps is a culture that drives and…

  6. Interview on Devops and Cloud Infrastructure

    I've had the pleasure of being part of a panel on Devops and various patterns and anti patterns relating to cloud operations and continuous delivery. You can listen to the podcast (called "Continuous Discussions" hosted…

2015

  1. Devops is...

    Infrastructure & Code Treated as software, where Software Is created with fast feedback cycles, where Cycles Do not require monkey work by people, where People Share knowledge, and work creatively, with repetitive work…

  2. BBBCTC - Branching, Binaries, Builds, Coding and Testing Culture

    As part of a major drive to push for faster "time to main" you might need to change things in the following five areas (that end up affecting how long people take to get their code checked into "trunk": Branching…

  3. Time to Main - Measuring Continuous Integration

    A.k.a "Time to Trunk". How do you measure your progress on the way to continuous integration(we're not even discussing delivery yet)? How do you know you are progressing towards the goal incrementally? Assuming you're…

  4. Pipeline Disintegration (Post Build Pipeline)

    Other Names: Post Build Hand off, Time Capsule, Strangler Application Symptoms: It is very complicated to add features to the current build process, because the current tooling deficiencies, process bureaucracy or the…

2014

  1. Split and Parallelize

    Other Names: Split Work Symptoms: The build is taking too long Problem: It could be that one or more tasks or build steps that are comprised of many actions are taking too much time. For example: running 1000 regression…

  2. Irrelevant Build

    Symptoms: The team doesn't seem to care that one of the builds is failing A build is red, but might not be failing. Only one person from a different team or role can tell whether it actually failed or not. Problem: One…

  3. Parallel Firehose

    Pattern: Parallel Firehose Other Names: Build Environment Per Stakeholder Symptoms: You can't deploy a new version of the application to your test or staging environment because it's in use by other people in the…

  4. Build Pattern: Deploy by Proxy - Added to the book

    It's been a couple months of other work. but there's finally new material in the book and more coming soon. First: I've now grouped the chapters under "parts", that start telling a story, grouping the patterns under the…

  5. Use Version Aware Build Scripts

    I am thinking of writing a small booklet about better builds . this blog post might end up as a part of it . Let me know if you’re interested by taking a look here. While I do love to use Continuous Integration Servers…

  6. Avoid XML Facing Build Tools

    Having your build scripts in XML is one of the worst things you can do for maintainability and readability. Treat your build scripts like you treat your source code (or, how developers should treat their source code) –…

  7. Start Products with an Empty Build and Deploy Pipeline

    Builds can be nasty beasts when It’s finally time to organize and do them. There are so many things you did not think about, that it can take days or weeks to come up with a build for an existing system. To avoid the…

  8. Rolling Builds and the Plane of Confidence

    When I check in code I have been working on, I feel: 1. I want to wait for the build result 2. I don’t want to waste time waiting for the build results, doing nothing 3. But I fear doing something in the code until I’m…

  9. How to make your builds FAST using DRY and SRP Principles

    (this will become part of my upcoming booklet on beautiful builds ) One of the things that kept frustrating me when I was working on various types of build configurations in our CI server, was that each build in a…

  10. Pattern: Script Injection

    I am slowly realizing that perhaps my concepts for the build book could be better serving as reusable patterns for creating builds, solving specific problems. This is a test to see how well this idea holds up in…

  11. Pattern: Shipping Skeleton

    I am slowly realizing that perhaps my concepts for the build book could be better serving as reusable patterns for creating builds, solving specific problems. Pattern: Shipping Skeleton other names: “Hello World”,…

  12. Build Pattern: Location Agnostic Script

    Symptoms: Running the build script on a machine where it was never run before requires extra pre-work to make the machine ready, such as mapping drives, creating a special build script folder etc. Problem: The build…

  13. Release Compilation

    Imagine you could only compile once a week. Once every two weeks. Once a month. Scary? All that code that you write blindly, not knowing whether it even compiles. All those hidden errors lurking, accumulating in the…