The software team
There are almost as many human organizational structures for software development as there are organizations that develop software. For better or worse, organizational structure cannot be easily changed. Taking into consideration the practical and political consequences of organizational change is not within the software project manager's scope of responsibilities. Though, the organization of the people directly involved in a new software project is within the project manager's purview.
There are the following options available for applying human resources to a project that will need n people working for k years:
1. n individuals are assigned to m different functional tasks which is relatively little combined work occurs coordination is the responsibility of a software manager who may have six other projects to concerned with.
2. n individuals are assigned to m different functional tasks (m<n) so that informal teams are established an ad hoc team leader. It may be appointed coordination among teams is the responsibility of a software manager.
3. n individuals are organized into t teams each team is assigned one or more functional tasks each team has a specific structure that is describe for all teams working on a project coordination is controlled through both the team and a software project manager.
Though it is possible to voice pro and con arguments for each of the above approaches there is a growing body of evidence that indicates that a formal team organization (option 3) is most productive.