logo
Kurashizu Blogwhere ideas flow
  • Home
  • News
  • Blog
  • About
  • Home
  • News
  • Blog
  • About

© 2026 Kurashizu. All rights reserved.

Admin·New Post·Service Status
Powered by Cloudflare·01.11.26
← Back to news

The development pipeline is a production system

Original article
sundry.jerryorr.com|137 points|66 comments|by firefoxd|Aug 1, 2026

The Development Pipeline is a Production System

By Jerry Orr (Rewritten)

In the early stages of a software engineering career, one lesson is hammered home immediately: nothing takes precedence over a production outage. When the live system crashes, all other work stops.

However, a strange double standard exists. We rarely apply that same level of desperation to failures in our development tools, build systems, or QA environments.

The Core Thesis: For the engineering team, the software development pipeline is their production system.

The Value Delivery Equation

A developer's primary objective is to generate value for the organization. Whether that involves shipping a new feature or patching a critical bug, the output is the goal. We can represent the ability to deliver value as a simple function:

Value Delivered=Developer Effort×Pipeline Availability\text{Value Delivered} = \text{Developer Effort} \times \text{Pipeline Availability}Value Delivered=Developer Effort×Pipeline Availability

If Pipeline Availability=0\text{Pipeline Availability} = 0Pipeline Availability=0, then the total value delivered is 000, regardless of how hard the developers work.

The "Assembly Line" Perspective

In traditional manufacturing, the assembly line is sacred. There are rigorous protocols to ensure that the line never stops, as downtime is incredibly costly. In software, we often focus exclusively on the "product" delivered to the end-user, forgetting that the process of building that product is itself a machine that can break.

Comparing Production Environments

FeatureCustomer ProductionDeveloper Production (Pipeline)
Primary UserEnd CustomerSoftware Engineer / QA
Impact of FailureRevenue loss / User churnStalled velocity / Zero delivery
Urgency LevelCritical\text{Critical}CriticalOften Underestimated\text{Often Underestimated}Often Underestimated
GoalSystem StabilityFlow of Changes

Anatomy of the Pipeline

To understand why this is a production system, we must map every component that exists between a "customer request" and "delivered value."

1. Request & Tracking

  • Systems like GitHub Issues or Jira.

2. Local Development & Build

  • IDEs and build automation tools (e.g., Gradle, Maven).
  • Package managers and repositories (e.g., npm, Maven Central, or internal mirrors).
  • Local infrastructure: containers and databases.

3. Integration & Deployment

  • CI/CD orchestration (e.g., Jenkins, GitHub Actions).

Pipeline Flowchart

When the Line Stops

If any link in this chain snaps, the team is effectively paralyzed. Consider these scenarios:

  • Compilation Failure: If the code won't build, the developer cannot perform their job.
  • QA Outage: If the testing server is down, the team cannot verify the software.
def can_deploy(tests_passing, qa_verified):
    if not tests_passing or not qa_verified:
        raise ProductionOutageException("Pipeline Broken: Deployment Blocked")
    return True

Pipeline Health Checklist

  • Are the build servers operational?
  • Is the test suite passing?
  • Is the QA environment accessible?
  • Are package repositories reachable?

Final Thought

When a development pipeline breaks, it isn't just a "tooling inconvenience"—it is a production outage. A team that cannot move code from a request to a deployment is a team that cannot produce software.

This raises an interesting question: Is our modern use of the term "production" in software simply a linguistic inheritance from the manufacturing world's "production lines"?