Work in progress (WIP) is work which we have spent effort on which is not returning value. This can clog our places of work and make the time taken for work to get from being started to being finished longer and longer. This is bad when WIP can be seen (half-made cars filling warehouses) and disastrous when it can’t be seen, as with software development.
One way to prevent this from happening is to artificially limit the amount WIP. How to do this is different for different industries. Manufacturers like Toyota have developed ways of signalling back through the supply chain so that only a very small number of parts are being stored at any one time. Cars are, as nearly as possible, being made at the rate that they are needed. Agile software development (Scrum, XP) limits WIP by only planning the work that will be done in a short time frame, typically two weeks. Another approach (Kanban) is to limit the amount of work that can be in any particular stage of the process using WIP limits. For example WIP limits on the number of items that can be worked on in development and WIP limits on the number of items that can be worked on in analysis. The effect of finishing development on an item is that another item can be brought into development from analysis freeing up space in analysis, work gets “pulled” through the system.