11 minute read

image-center

Takt

In the Toyota Production System (TPS), Takt (or Takt Time) is one of the foundational flow concepts. It comes from the German word Takt, meaning rhythm, beat, or meter — like the steady beat that keeps an orchestra in sync.

Takt is also the name of an Open Source GitHub CLI extension that you can use in your current flow. It enables you to evolve a Quality-by-Design compliant workflow free of blocking Pull Requests while keeping you main branch always shippable.
Get Takt from GitHub

In Lean Manufacturing Takt is the rate at which a product must be produced to meet customer demand. It synchronizes production with real demand so the system neither overproduces (muri) nor starves downstream processes (mura).

Takt is often described a heartbeat:

  • If the heartbeat is too slow, customers aren’t served.
  • If it’s too fast, the system is stressed or overproduces.

A Lean principle is to keep the heartbeat steady and healthy.

The takt time is calculated as:

Takt Time = Available Production Time / Customer Demand

Asking “How many production hours do we have available on the workforce and how many cars do we have to deliver?”, divide and you get the takt time.

Intuitively this formula appears to makes more sense in manufacturing than it does in Software Development, so let’s try to translate the semantics into what it means in our realm; Software Development.

The takt time helps us shift thinking from “how long will this take?” to “what pace must we maintain?”

Takt Is Not the same as cycle time (how long the work takes), and it’s also not the same as lead time (end-to-end time) and it’s definitely not an encouragement to “work faster”.

Takt Is a core concept to understand the fundamental difference in a push-system (Theory of Constraints) as opposed to a pull-system (Minimize Work In Progress, One-Piece flow, Kanban)

🧩 How Takt, Cycle Time, Lead Time, and WIP Fit Together

A common challenge in Software Development is the dreaded “Iron Triangle” where time, quality and cost are all locked in as non-negotiable. It’s the driver for Brooks Law:

“adding manpower to a late software project makes it later”

Brook even argues that his own law doesn’t apply to Open Source software products simply because; …there are no deadlines. — time is not a factor.

More often than not, the iron triangle implode, reality won’t play along and a new budget and new deadline is offered. Now Software Developers are locked down in estimation of new features or re-estimation of existing ones to be able to update and communicate the new variables in the Iron Triangle.

Only to find themselves — a month from now — getting a new push, making new estimates and new adjustments in the Iron Triangle variables because, as we know; “no battle plan survives encounter with the battle field”.

What if we could escape this Iron Triangle trap?

Concepts connectedLimit WIP → stabilize flow → improve cycle time → match takt → shorten lead time. — It's all connected

The Toyota Production System and Lean principles defies this way of thinking and replaces this relentless push with a pull

Take offset in your own current situation, ask yourself “how much can we produce”. Measured against the actual demand; “how much should we produce” and contemplate “is there any way we can optimize the internal workings of our Value Stream to reach that pace”.

Four core concepts are connected as system:

👉 Takt = the pace you need
👉 Cycle Time = the pace you actually work at
👉 Lead Time = the customer-felt wait from request to delivery
👉 Work In Progress (WIP) = the amount of stuff in progress that affects everything above.

1. Takt Time — Required Output Pace

The rate at which you must complete items to meet customer demand.

Software analogy:

Imagine that you managed to have that difficult conversation with business, that the Iron Triangle is crap and you need a different approach and you make them accept that your team can do 40 deployable changes per week, and your calculate that your team team has 200 effective hours of work per week, your takt is simply:

200 hours / 40 changes ≈ 5 hours per deployable change

This becomes the desired rhythm. The takt time.

2. Cycle Time — Actual Work Time per Item

How long it takes to do the work — including idle time and waiting.

Software example:

The following are just imagined chores involved in completing a deployable change, they may vary in different teams and projects, but the point is that includes both process time and idle time.

                             Problem analysis
+                                        idle
+                              Developer time
+                                        idle
+                     Meet quality thresholds
+                                        idle
+                                Peer reviews
+                                        idle
+                        Update documentation
+                                        idle
+                          Update audit trail
+                                        idle
+                         Update release note
+                                        idle
+                         CI workflow runtime
+                                        idle
+                 Deployment workflow runtime
   ------------------------------------------
=                                  Cycle Time
   ==========================================

If your Cycle Time is longer than the Takt Time you cannot meet demand → You have a bottleneck. You will have to optimize your Value Stream.

In low performing systems, it’s often the idle time that is the bugger, It’s easy to imagine that the more bureaucratic red-tape, impractical tooling, unfruitful discussions about cost and deadlines, continuous re-estimation of plans and just hand-overs in general, the more time is wasted.

3. Lead Time — Total Duration From Request to Delivery

Does your software development process have a high focus on quality and maybe even compliancy with regulatory rules and Quality-by-Design principles? Does it need a checkup?
   Read my article on Continuous Delivery in regulated, safety-critical or high-risk products and learn how I may be able to help you.
Read the article

It is the customer-felt wait from request to delivery.

This is what matters most to customers. Lead time includes everything: That is, the Cycle Time and everything else:

  • Ideation
  • Gathering requirements
  • Design
  • Time spent on social events among employees
  • Stand up meetings and other team rituals
  • System architecture workshops
  • Setting up extra infrastructure to conduct an experiment
  • Employees Vacation
  • Waiting in queues
  • Resources spent elsewhere to pile up stock
  • Company X-mas lunch
  • All the time spent in Cycle Time
  • Every freaking thing!

Lead time tells you how healthy your system is. If lead time is long, it’s because your Value Stream is ineffective and needs optimization. You must continuously optimize both Muda (wastefullness), mura (unevenness) and muri (overburdenness).

4. WIP — Work in Progress

The amount of stuff in progress that affects everything

One-Piece Flow — Toyota Production System and Lean principles advocates a one-piece flow a process where the cycle time is optimized to deal with exactly one issue a time. The argument is that a one-piece flow will surface problems immediately and enable you to deal with them at the source in context where the problem can be analyzed. This ensures that no flaw or defect is passed on the the next process. Jidoka is a commonly used term, often referred to as build-in quality — as opposed to the alternative; to glue it on later as an afterthought.

Minimize Work in Progress — The ideal to minimize Work In Progress allows us to ovoid task switching, to keep focus, to minimize the cognitive load, to constantly reflect and Continuously Improve (Kaizen). It prevents us from building up stock (which we don’t need) and it allows us to see and argue for S.M.E.D.1 sized improvements.

High WIP →

  • longer lead times
  • worse quality
  • more context switching
  • slower feedback
  • unpredictable delivery
  • higher cognitive load
  • more burnout

Low WIP →

  • shorter lead times
  • fewer defects
  • stable flow
  • easier forecasting

WIP is the “lever” that enables takt and cycle time alignment. The one piece flow forces problems to surface early and to control the quality at the source.

Limit WIP → stabilize flow → improve cycle time → match takt → shorten lead time

How to Continuously Optimize

When we argue for Lean Software Development it’s a devotion to pull over push and to a relentless continuous improvement of flow, with a bias to Long-term system thinking.

⭐ Step 1 — Define “customer demand” (Takt)

You need to break the evil spell of the Iron Triangle. Whoever the customer translate to in your context you must school them to understand that “I want all my features, within budget, on time and with stellar quality” isn’t how it works. Everybody wins when the team use time on optimizing flow instead of re-estimating fantasy deliveries.

⭐ Step 2 — Map your value stream

Investigate; Where does all the Cycle Time in the Value Stream go? Value Stream Mapping is the tool used for this, it specifically maps idle time and process time. It’s not a once-over discipline, you continuously map the Value Stream to continuously improve.

⭐ Step 3 — Look for the bottlenecks and pseudo work

What can you optimize? A lot of things probably, but look for the low-hanging fruits first. That would be idle time. Like the time that passes from someone requests a review and until someone else finally get’s around to do it.

It’s also likely that pseudo work is stealing time from you pool of effective hours per week. Even if developers are employed 40 hours per week it doesn’t mean that they have 40 effective hours per week to attend to software development. So even time outside the Cycle Time loop is worth investigating.

DevX optimization examples (in a team of eight developers):

  • Daily stand-ups that always start five minutes late and run five minutes over = 6.7 hours per week
  • IT department pushes Microsoft updates to developers PC’s, which crashes their dev tools it take 30 mins to reinstall, happens every month: ~1 hour per week
  • Manually filling out extensive forms in Jira for each single issue; 5 mins peer issue, ~12 registrations per week: =8.3 hours per week.
  • Forcing Developers to work on corporate standard Windows PC with active virus scan, it takes 30 mins to rebuild a Devcontainer, done daily, on Mac or Linux it takes 4 minutes: 17,3 hours per week

If you could clear ~33 hours and add that to the pool of effective hours per week. then it would mean either more time available per cycle (less need for optimization) or if you maintain the takt time; more deployable changes per week.

Original calculation

200 hours / 40.0 changes ≈ 5.0 hours per deployable change

After the optimization

233 hours / 40.0 changes ≈ 5.8 hours per deployable change
233 hours / 46.6 changes ≈ 5.0 hours per deployable change

To get started at home, try to interview the developers about their perspective, what wastes their time?

When all your low-hanging fruits are pricked. You switch to only fix the most important problems before the insignificant ones. Recall the S.M.E.D analogy mentioned earlier. Maintaining the priorities despite high costs is how long-term system thinking works.

⭐ Step 4 — Align cycle times to takt

Inside the cycle loop, even when idle times are weeded out, process time can be optimized.

Examples of stuff to improve:

  • Parallelize CI runners
  • Cache for build avoidance
  • Improve static code analysis
  • Improve test automation
  • Automate IaC
  • Automate Deploys
  • Control quality at the source, skip the peer-reviews
  • Improve Developers Experience (DevX)
  • Remove review batching
  • Reduce batch sizes (atomic commits)
  • Pull work only when capacity exists (Minimize WIP)
  • Reduce WIP limits per stage
  • Introduce swarming (kaizen blitz) on blocked items
  • Automate release-notes
  • Build audit trail as you go
  • Prioritized focuses on resolving a single, high-priority, or complex issue
  • …you get it right, this list never ends!

⭐ Step 5 — Use Lead Time as the overall system health indicator

  • If lead time shrinks as you improve your flow and weed out waste in the Value Stream things are working.
  • If lead times grows, a hidden constraint appeared. Map your Value Stream again. Get your priorities straight.

It’s a mind game

This article argues for Continuous Delivery and lean software development.

DORA — DevOps Research and Assessment institute release an annual “State of DevOps”. report. They have curated four core metrics that they use to divide development teams into four performance levels: Elite, High, Medium and Low.

The four DORA metrics:

  • Change lead times
  • Deployment frequency
  • Change failure (and rework) rate
  • Failed deployment recovery time
DORA 2024Lead time up 127 times when comparing Elite and Low performers, The DORA survey from 2024 relies on 39K respondents. Click on the image to go to the post, scrutinizing the results of the 2024 State of DevOps report

The distance between Elite and Low performers is mind blowing, so from that perspective everybody should want to become an Elite performer. But in reality lean concepts — and even DORA — argues that the shift is not achieved by simply doing something differently, it’s achieved by thinking differently.

Of course long-term system thinking is the foundation of this mental shift, but also the pull that must replace the push and the recognition of Developer Experience as a core performance factor and the effect of transformational leadership which opens up a whole new field of lean management principles and problem oriented didactics are all examples of thinking that does not always play well with the established short-term Iron Triangle approach.

It’s not necessarily a quick fix, but it is definitely a fun one.

If you are in a position where you think you could use a second opinion on your Software Development Life Cycle don’t hesitate to reach out and let’s have a chat - no charge!

Book a call


  1. Toyota’s SMED (Single-Minute Exchange of Die) principle is a lean manufacturing methodology designed to drastically reduce the time it takes to complete equipment changeovers or production setups. Due to the extremely high (positive) impact on Cycle Time, it’s considered justified even if the development of that improvement may assume quite an extensive effort. 

Tags:

Updated:

Comments