InformalLaborPlan

Constructing an adobe building, Penasco, New Mexico. Workers using an informal labor plan.

We were discussing the introduction of new project management software. One project manager protested that it was too high level; it didn't provide the granularity she needed. It turned out that she wanted to track items that were fractions of days of effort.

... real development requires developers to work on several parallel tasks such as DevelopmentEpisodes that may have interdependent or even conflicting priorities and due dates.

✥ ✥ ✥

A schedule of developer work tasks can both assist workers in planning their time, and ensure stakeholders about scheduling expectations. The DevelopmentEpisode presents an ideal that must be worked into the lives of people trying to get a big job done quickly. Developers will often find themselves obligated to more than one in-progress DevelopmentEpisode at a time. The WorkQueue offers one prioritizing, though one that ignores the many small trade-offs possible when the work is at hand.

Therefore:

Let individuals devise their own short-term plans. Accept that much of the group activity implied in a DevelopmentEpisode will take place pair-wise between group members that find the time to tackle some issue together (DevelopingInPairs). Avoid the temptation to call a meeting where a developmental climax is intended to happen. It won't. Instead let individuals express interests and make commitments to each other. And let them revise these intentions on a moment's notice when the energy of some episode reaches an irresistible level.

Note that this means that there is a threshold of detail below which a project manager should not track. The threshold may vary depending on the project, but it is a safe bet that tasks smaller than a few days should not be formally tracked. One might get a sense of excess detail by the amount of complaining the developers do about the relevance of the tracking.

✥ ✥ ✥

This leads to an organization where the DeveloperControlsProcess. Not only does the developer suggest the overall structure of commitments, but the developer becomes the focal point for day-to-day priority calls.

A DevelopmentEpisode is actually composed of a series of ProgrammingEpisodes, some of which must take place in (at least) pairs if any approximation of group consciousness is to form. An individual's labor plan is his tool to make these connections happen. Pair Programming Facilities [BibRef-Beck1999] are configurations of the physical environment that can reduce this planning to an occasional HallwayChatter promise.

A version of this pattern first appeared as [BibRef-Cunningham1996].