What is work in progress?

The work that has started but is not yet finished, such as items on the shop floor or tasks in the middle of being done.

Work in progress diagram example

Public diagram from the Machinations Community. Open it on its own page

Work in progress, or WIP, is everything that has been started but not yet completed: parts on a factory floor, patients mid-treatment, features partly built. It ties up money and attention without yet producing value. Keeping it under control shortens the time work takes to finish and exposes problems earlier.

How it works

WIP is linked to speed through Little's law: WIP = throughput x time in the system. If throughput stays the same, more WIP means each item waits longer. This is why limiting WIP shortens delivery times without needing anyone to work faster. Large WIP also hides problems, delays feedback, and raises the cost of changes of plan, since much started work may need to be redone or scrapped.

There is a floor to how low it should go. Too little WIP leaves a step starved of work and lowers throughput. The aim is enough work to keep the bottleneck busy, and no more.

Example

Say a team finishes 5 tasks a week and carries 30 tasks in progress. Each task takes on average 30 / 5 = 6 weeks to finish. If the team caps WIP at 10 tasks and still finishes 5 a week, each task takes 10 / 5 = 2 weeks. Customers get results three times sooner with no extra staff, provided the cap does not starve the team of work. The numbers are an illustration.

How to model it in Machinations

Use Pools or Queues for the steps between start and finish, and count total WIP with a Register that adds their contents. Limit WIP with a state connection that closes the entry Source when the Register reaches a cap. Make the cap a Lever. Play and chart throughput and the Pools to compare completion time at different caps.

See work in progress in a system you can Play

Build the rules in a Machinations diagram, change a value and Play it to watch how the system responds.