Solomon Hykes, co-founder of Docker, is back with a fresh perspective on solving one of the most persistent challenges in modern software development: the chaotic state of developer workflows. In his recent talk about Dagger, Hykes articulates a vision for bringing order to the fragmented world of CI/CD, where developers constantly juggle multiple tools, environments, and configurations just to ship code effectively.
Hykes frames the developer workflow problem through an agent-centric perspective that feels both novel and intuitive. After revolutionizing containers with Docker, his focus has shifted to addressing what he sees as the next major friction point in software development. The core challenge isn't just technical—it's about bringing harmony to increasingly complex, distributed workflows that drain productivity and create frustrating inconsistencies.
The agent problem: Development workflows suffer from a proliferation of disconnected agents (CI runners, local dev environments, build systems) that don't share context or capabilities, creating friction between environments.
Configurability trap: Today's CI/CD systems offer nearly unlimited configurability but at the cost of mounting complexity and maintenance overhead, leading to specialized "pipeline engineers" just to manage the tooling.
Dagger's approach: Rather than creating yet another CI system, Dagger functions as a portable development engine that runs workflows consistently across environments, providing developers with reliable "it works on my machine and in production" experiences.
Unified programmable interface: Dagger implements a coherent, code-based approach where workflows are defined in general-purpose languages rather than specialized YAML or DSLs, making them easier to maintain and extend.
The most compelling insight from Hykes' presentation is his distinction between configuration and programming as approaches to workflow management. While CI systems have grown increasingly configurable, they've often done so through increasingly complex configuration formats and DSLs. These configurations become unwieldy "configuration programs" without the benefits of actual programming languages—debuggers, proper testing, and modularity.
This matters profoundly because it represents a fundamental rethinking of how developers should interact with their tools. Rather than learning specialized configuration formats for each tool in their chain, Dagger allows developers to define workflows in