Purposeful Partitioning of Project Work

version 1.0 of 24 Jan 2006
Mark Kampe

1. Introduction

Based on our experiences with team projects at school, it might seem natural to infer that we assign projects to multi-person teams because:

If we understood team projects in this way, we might find ourselves greatly surprised after graduation, when a completely different set of goals comes into play.

This paper is about why we assign projects to teams, and how teams can effectively partition that work among their members. It is hoped that an understanding of these considerations will enable you to form more teams and accomplish your tasks more effectively.

2. Why Teams

From a managerial perspective, it is often much easier to assign a task to an individual. Teams, made up of individuals with differing goals and experiences, introduce overheads and problems that seldom come up for individuals. Why then would we go to the trouble of creating a team to solve a problem?

  1. We parallelize efforts because a task would take too long for a single person to complete, and we do not know how to break it up into smaller independent tasks.

    There are overheads associated with tasking and monitoring team activities, and coordinating complementary efforts. If we could break the one large tasks into several independent tasks, it might well be more efficient to parcel each of the smaller sub-tasks out to a different individual. Smaller tasks tend to be performed more efficiently and encounter fewer problems.

    Unfortunately, it is often impossible to sub-divide larger tasks into independent sub-tasks. If there are significant interdependencies among the sub-components, it will be necessary to coordinate the efforts of the people who are responsible for them.

  2. We create multi-disciplinary teams because some tasks involve more skills than any single person possesses.

    Any project is likely to benefit from a synthesis of multiple perspectives. If a project involves specialized modeling, human factors analysis, domain specific knowledge, complex user interfaces, distributed applications and specialized tools it may actually require a significant number of people to assemble the required combination of skills and experience.

  3. We need multiple people on a task if it involves multiple roles that would be very difficult for a single person to fill.

    Prototyping and producing correct code involve different skills. Developing requirements and test cases involve different attitudes. A person who has spent several weeks working on a piece of code is probably convinced of its correctness, and would be a poor choice for a reviewer.

    Whether a project involves distinct roles, or it is simply a matter of needing another pair of eyes, many tasks will be performed much better by multiple people ... even if a single person possesses all of the required skills.

  4. We also create teams when we think the task task is large and complex enough that the robustness/momentum/help benefits of the team will more than compensate for the added costs of communication and coordination.

    Individuals can easily become blocked, frustrated, or confused. When a group of people is working together on a project, help is usually close at hand, and such problems are usually discovered and resolved quickly. A lone individual might spend hours (or even months) bumping their head against a wall before someone else noticed and stepped in to help them.

  5. We also assign people to work together for reasons that might be unrelated to the assigned task.

    If a project will involve the use of a new tool or technique, we might assign people to the project, for the purpose of letting them gain experience with that tool or technique. This might be for the purpose of training new people, exposing experienced engineers to new technology, or purely to help and/or observe in an experiment. In cases like this, we would assign people to the project as much for their own education as for the contributions they might make towards the project's goals.

Teams are formed for reasons. If those goals are to be satisfied, the team must be created with the right people, and organized around the desired goals. As is true in most areas, the first step towards success is clarity about your goals.

3. Partitioning the Work

The initial partitioning of work for school projects seems to be based on two primary goals:

  1. the likelihood that the work will actually get done.
  2. the willingness of the team members to accept the proposed division of labor.
Later in the project, if some team members have not accomplished their appointed tasks, the work gets repartitioned (ignoring consideration b) among the more capable members, so that the work does get done by the due date.

While these constants will always be with us, there are a few additional considerations that can be incorporated into a more purposeful partitioning of the work that is more likely to achieve the goals that initially motivated the formation of the team.

3.1 Schedule Efficiency

In the interests of efficiency, each person should have approximately the same amount of work to do. If person A finishes long before person B, then shifting work to person A would reduce the time required to accomplish the task. This may sound a lot like "fairness", as in giving each person an equal amount of work ... but this is not the case. Assuming that all team members are putting in the same number of hours, the shortest time to completion is achieved by giving more work to the most productive people.

If all tasks were independent of one-another, it would be a simple linear programming problem to assign the work to people in a way that would minimize the total time to completion. It is, however, rare for all of a team's tasks to be independent. If task A depends on B and C, and C depends on D and E, it may not make sense to assign someone to task A until tasks D and E are done. Reasonable assignments must consider, not only the total amount of work to be done, but the interdependencies among the tasks ... parallelizing everything possible, and minimizing the time that one person spends waiting for another. If a single task is a prerequisite for many others, it may make sense to have everyone start out working on that one task, to get it finished so that it becomes possible to work on all of the other tasks. This is an area where project management tools become indispensable.

3.2 Skill Efficiency

Tasks will, in most cases, be done both more quickly and more correctly by a person who is most skilled at the activities in question. In many cases work assignments will indeed be dictated by skills. If, however, there are also educational goals to be satisfied, we may consciously decide to make assignments that do not correspond to peoples' strengths:

3.3 Support

Many tasks require cooperation between multiple individuals ... either for synergy (e.g. Pair Programming) or in complementary roles (e.g. coding and test case development). In these cases multiple people will be assigned to a single task (or set of closely related tasks). In these cases, it is important that people clearly understand their respective goals, roles and responsibilities. The issue here is not that there is any right or wrong way to structure such collaborations, because (for the most part) there isn't. Rather it is a matter of ensuring that all parties understand the plan in which they will be cooperating.

In some cases, all of the people who support a particular effort will be dedicated to the sub-group that is responsible for that effort. In other cases, there may be "matrixed" resources, not assigned to a particular group, but available to help any group that needs them. Such shared resources can easily become bottlenecks, when multiple sub-groups need their help at the same time. These conflicts can be greatly reduced if the support resources can be scheduled for specific tasks, or can promise each sub-group a fraction of their time (e.g. 10 hours per week).

3.4 Group Activities

There are a few activities that are better performed by a whole team rather than being assigned to a few individuals:

4. Conclusions

For at least 2 million years, people have formed teams to accomplish critical tasks. Why? Because it increases our chances of success. If we are clear about what benefits we expect to gain from a team collaboration, if we select our team members accordingly, and organize the work with a plan, our chances of success are greatly improved. A well functioning team of ordinary people can reliably achieve results that are beyond the capabilities of the best individuals. Organizing a team to effectively attack a problem is work.

It is worth it!