liveBook · Manning

Lead time

As explained in Shipping Go: Develop, deliver, discuss, design, and go again

Lead time is the elapsed time from the initiation or request of work until its delivery to the customer.

A customer raises a feature request. Before it reaches them, the change passes through checks, tests, and review. Lead time is the elapsed time from that request to delivery—not just the time spent running the pipeline. Those checks provide useful feedback, but they can also delay delivery. section 5.4

Each step has a cycle time: the time between its start and finish. Because these steps sit within the overall lead time, reducing a slow cycle time can help shorten the customer’s wait. The goal is not to remove checks indiscriminately; it is to get useful feedback without making delivery unnecessarily slow. section 5.4

Choose how checks run

Suppose a Go pipeline runs formatting, linting, vetting, and tests. Running independent checks at the same time can return results sooner and reveal multiple problems together, but it uses more machines or processes. A team may instead combine parallel and sequential steps to balance feedback speed against compute cost. section 5.4

Listing 5.8 pipeline.yml
jobs:
  test:
    needs:
      - format-check
      - lint                                      #1
    name: Test Application
  lint:
    name: Lint
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Lint
        uses: golangci/golangci-lint-action@v2    #2

The pipeline configuration makes tests depend on formatting and linting. Such dependencies are one place to examine when deciding which checks must finish before the next stage begins. section 5.4

Track delivery time alongside build and response times, then use those measurements to choose process improvements. If a stage is slow, examine its testing approach or pipeline arrangement before changing it. The operational question is whether a change gets sound feedback and reaches the customer sooner. section 5.4 section 11.4.1

How Shipping Go: Develop, deliver, discuss, design, and go again covers it

How deep it goes
Defines the interval, relates it to step-level cycle times, and discusses parallel-check trade-offs without prescribing a calculation method.
Examples
Uses linting, vetting, testing, and a pipeline configuration with test dependencies to illustrate scheduling choices.
What you can do after
Evaluate/understand it by identifying pipeline steps whose cycle times may delay delivery while weighing faster feedback against compute cost.
How it connects
Connects cycle time, continuous integration pipelines, static code analysis, and testing to delivery speed.

Also explained in

Compare how 6 books explain lead time →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Shipping Go: Develop, deliver, discuss, design, and go again. The section links point to the parts of the book it draws on.