LackOfProgress

Workers are slack or thrashing

Description

Either workers are not making progress because they have no work to do, or they are thrashing, expending effort in swapping tasks while making little progress in the tasks themselves.

Discussion

Many of the causes of lack of progress are covered by other risk topics.  SlackResources covers workers that have no work to do.  BarriersToProgress covers the case where the holdups are external to the project.  CriticalPathProblems addresses holdups that affect the rate-limiting development tasks, and most of the approaches could apply to all tasks as long as one takes care not to cause undue interruption to high priority work.  DecisionsNotForthcoming deals with lack of progress owing to decisions not being made.  DysfunctionalTeam deals with team problems that could contribute to lack of progress.  GrowingPains deals with the limits to growth of a team; growing too fast or too slow could both limit overall progress.  IncompleteRequirements deals with making progress despite incomplete requirements.  LackOfDirection deals with knowing which way to go to make progress.  SlowDevelopment deals with the endemic condition of slow progress.  Other risks affect progress to lesser degrees.

Prevention, Amelioration, Cure

Traditional

Where tasks currently being undertaken by the team are arranged in order of priority, a high-priority task may be blocked awaiting a resource that can be freed by interrupting a low priority task.  Both tasks are on hold until the interrupt is serviced, and this delay includes an amount of time to switch between tasks.  InterruptsUnjamBlocking deals with this topic.  But suppose now that a request comes in to service a still higher priority ‘interrupt’.  The rule is, DontInterruptAninterrupt.  Finish dealing with the first interruption before starting on the second.  The problem of task-switching overhead applies throughout, and ProgrammingEpisode gives an idea of an ideal granularity of progress between switching tasks.  Dealing with distractions that would otherwise interrupt a programming episode and contribute to thrashing is a topic addressed by UnproductiveDistractions and ProductiveDistractions.

Modern

Modern Agile methods are a bit more receptive to distractions, indeed advocating an OpenWorkspace in order that one can notice what other workers are doing, and when they are encountering problems to which one may contribute aid.  However, the concept of ProgrammingEpisode is more formally acknowledged as the duration of pairing when DevelopingInPairs.