Resource allocation (sometimes called resource assignment) is deciding what skills are required to complete an activity and estimating the quantity needed.
An activity may require a single resource or multiple resources. These may be required uniformly for the duration of the activity or may have a fluctuating requirement profile.
Resource allocations will be typically be aggregated to produce a resource histogram and then used as the basis for resource limited scheduling. Aggregation and scheduling of resources will invariably be performed with the aid of computer software. While aggregation is straightforward, resource limited scheduling comprises complex algorithms. Activities with multiple resources and fluctuating profiles make it much harder to arrive at an optimum schedule.
Breaking activities down to the point where each one has a uniformly allocated single resource will probably result in far too many small activities. While this may make computer aided scheduling far easier, in many cases it will be impractical from a managerial point of view. A balance must be struck between sufficient detail for effective scheduling but not so much as to render the plan unmanageable.