Software Project Team Organization
There are many ways to organize the project team. Some important ways are as follows :
- Hierarchical team organization
- Chief-programmer team organization
- Matrix team, organization
- Egoless team organization
- Democratic team organization
Hierarchical team organization :
In this, the people of organization at different levels following a tree structure. People at bottom level generally possess most detailed knowledge about the system. People at higher levels have broader appreciation of the whole project.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
Benefits of hierarchical team organization :
- It limits the number of communication paths and stills allows for the needed communication.
- It can be expanded over multiple levels.
- It is well suited for the development of the hierarchical software products.
- Large software projects may have several levels.
Limitations of hierarchical team organization :
- As information has to be travel up the levels, it may get distorted.
- Levels in the hierarchy often judges people socially and financially.
- Most technical competent programmers tend to be promoted to the management positions which may result in loss of good programmer and also bad manager.
Chief-programmer team organization :
This team organization is composed of a small team consisting the following team members :
- The Chief programmer : It is the person who is actively involved in the planning, specification and design process and ideally in the implementation process as well.
- The project assistant : It is the closest technical co-worker of the chief programmer.
- The project secretary : It relieves the chief programmer and all other programmers of administration tools.
- Specialists : These people select the implementation language, implement individual system components and employ software tools and carry out tasks.
Advantages of Chief-programmer team organization :
- Centralized decision-making
- Reduced communication paths
- Small teams are more productive than large teams
- The chief programmer is directly involved in system development and can exercise the better control function.
Disadvantages of Chief-programmer team organization :
- Project survival depends on one person only.
- Can cause the psychological problems as the “chief programmer” is like the “king” who takes all the credit and other members are resentful.
- Team organization is limited to only small team and small team cannot handle every project.
- Effectiveness of team is very sensitive to Chief programmer’s technical and managerial activities.
Matrix Team Organization :
In matrix team organization, people are divided into specialist groups. Each group has a manager. Example of Metric team organization is as follows :
Egoless Team Organization :
Egoless programming is a state of mind in which programmer are supposed to separate themselves from their product. In this team organization goals are set and decisions are made by group consensus. Here group, ‘leadership’ rotates based on tasks to be performed and differing abilities of members.
In this organization work products are discussed openly and all freely examined all team members. There is a major risk which such organization, if teams are composed of inexperienced or incompetent members.
Democratic Team Organization :
It is quite similar to the egoless team organization, but one member is the team leader with some responsibilities :
- Final decisions, when consensus cannot be reached.
Advantages of Democratic Team Organization :
- Each member can contribute to decisions.
- Members can learn from each other.
- Improved job satisfaction.
Disadvantages of Democratic Team Organization :
- Communication overhead increased.
- Need for compatibility of members.
- Less individual responsibility and authority.