The Continuous Delivery Pipeline Problem


A Perspective on the Current State of Continuous Delivery

Modern software teams need better tools for managing their Continuous Delivery pipelines. Today's CD pipeline ecosystem is fragmented, rigid, and inefficient. We believe pipelines should be code-first, developer-friendly, and designed to handle the complexities of modern engineering workflows.

1. A Single Source of Truth


What's Broken:

Pipeline definitions are scattered across multiple tools—GitHub Actions, Jenkins, ArgoCD, Kubernetes—and environments. This fragmentation leads to confusion, configuration drift, and duplicated effort.


The Fix:

Your pipelines need a single, version-controlled source of truth—a unified definition that's easy to understand, audit, and evolve.


2. Reusable, Typesafe, and Composable


What's Broken:

Pipelines are often duplicated across projects, leading to redundant code and maintenance overhead. Each pipeline must be rewritten for each project, even if the core logic is the same. Without types, it is difficult to compose pipelines together.


The Fix:

Build pipelines like software. Modular, reusable components allow teams to share jobs, templates, and logic effortlessly. Leverage proper typesafe languages to ensure safety and composition.


3. Pipelines Should Be Dynamic and Flexible


What's Broken:

Most pipelines today are static, unable to adapt to dynamic inputs, environment changes, or complex dependencies. Conditional logic and runtime decisions are hacked together (e.g. using shell scripts or conditionals in YAML).


The Fix:

Pipelines need the power of real code: loops, conditionals, runtime logic, standard libraries, and more. Flexible pipelines adapt dynamically to a team's needs without hacks.


4. Transparent, Visual, and Debuggable Pipelines


What's Broken:

YAML and text-based pipelines are opaque. Visualizing workflows, understanding dependencies, and debugging failures is tedious and error-prone. A view of the entire flow is not easily provided as there are many tools and services involved.


The Fix:

Pipelines should be transparent, visual, and debuggable. Teams should be able to see the flow, understand the logic, and easily debug issues via a single pane of glass.


5. Pipelines Are Evolving and Change Can Lead to Instability


What's Broken:

Whether the boundaries between components in your pipelines are explicit or not, they exist and are ever changing. Failing to identify all the places that need updating when one component is changed is an easy mistake to make. With other software, automated testing is established to defend against regressions and unexpected behaviour. The same should be possible with our pipeline definitions.


The Fix:

Use a full modern programming language, with its existing testing frameworks and tooling.


6. Slow Feedback Loops, Lead to Slow Recovery and Slow Progress


What's Broken:

Many will be familiar with the pain of a slow remote build system or release pipeline. Having to make a small fix or improvement, add, commit, push, wait for a build, wait for it to be published, wait for it to get deployed and so on, all add up. Often, due to limitations of the tools we use, this is the only way to understand if a change behaves as expected


The Fix:

Have the ability to run and debug the entire end-to-end process on our local machines with minimal configuration and without unexpected side effects.


FAQ

Who Are You?

We're a small team of engineers behind Flipt, passionate about creating better tools for software teams. With experience working at companies like GitHub, InfluxData, and Cloudbees, we've witnessed firsthand how broken CD pipelines can be—and we're committed to fixing them.