Push, pull, or flow

The optimum depends on your context, but flow-based systems generally perform best for knowledge work and software delivery. Here’s why:

Push Systems: Predictable but Fragile

Push systems work when demand is predictable and processes are stable. Manufacturing assembly lines are classic examples. However, in software delivery, push creates several problems:

– Work queues build up at bottlenecks

– Resources get over-allocated based on plans rather than capacity

– Teams lose autonomy as work is assigned rather than pulled

– Waste accumulates as partially completed work sits waiting

Pull Systems: Responsive but Can Starve

Pull systems like Kanban improve on push by having downstream processes request work when they have capacity. This reduces waste and improves flow, but pure pull can create issues:

– Upstream processes might starve waiting for pull signals

– Overall throughput can be limited by the most conservative puller

– Coordination complexity increases across multiple teams

Flow Systems: The Sweet Spot

Flow-based delivery optimizes for continuous movement of value through the system. Instead of pushing work or waiting for explicit pulls, flow systems focus on:

Limiting work in progress to prevent overload

Identifying and resolving bottlenecks systematically

Maintaining steady cadence without overwhelming any part of the system

Optimizing for end-to-end delivery time rather than local efficiency

The Practical Optimum

Most successful delivery organizations use flow principles with pull mechanisms:

– Teams pull work when they have capacity (pull)

– But work is sized and sequenced to maintain steady flow

– Bottlenecks are actively managed rather than allowed to create starvation

– Metrics focus on flow efficiency (cycle time, throughput) rather than utilization

This hybrid approach gives you the responsiveness of pull with the predictability of managed flow, while avoiding the rigidity of pure push systems.

The key insight: optimize for the speed of value delivery, not the efficiency of individual resources.

Unknown's avatar

Author: Mario Aiello

Hi, I’m Mario – a retired agility warrior from a major Swiss bank, beyond agile explorer, lean thinker, former rugby player, and wishful golfer. What frustrates me most? Poor agile adoption, illusionary scaling, and the lack of true business agility. I believe agility should fit purpose, context, and practice – and continuously evolve. Active in the agile space since 2008, my consulting journey began in 2012, helping a digital identity unit adopt Scrum at team level. That work led to the design of an Agile Operating System for the entire organization. Today, as an independent consultant, I help organizations unlock sustainable agility – guided by adaptive intelligence: sensing challenges, learning fast, and adapting with purpose.