ProgramGroup Composition
A Program Group is a collection of people in the software development process. It is a collection of all participants in software development within a certain period of time in the software life cycle. The roles include:
Project Manager (Leader)
Market personnel (Product Descriptor)
System Analyst (System analysiser)
Software/Hardware designer (Software/hardware desinger)
Tester (Tester)
User (Customer)
Example of the organizational structure of software developers
There are two main types of personnel organizations that can be found in the document: Collaborative Organization and leader organization.
A collaborative organization is characterized by multiple development teams, such as software groups, test groups, and quality assurance groups. They assist and control each other, at the same time, the Team has certain autonomy and is relatively flexible in the internal affairs of the team, including the design and working methods. A leader organization is characterized by a leader or several people who are responsible for the specific affairs of software development. Other teams complete the tasks of leaders. From this perspective, collaboration and leadership complement each other, and there is no absolute collaborative organization or absolute leader organization. The criteria for dividing these two types of organizational structures are to see whether collaboration or leadership are dominant in the software development process.
a typical" surgical "team is a leader. The team consists of a major designer ( Primary designer ) leader ( leader ), as a secondary designer leader Backup and adviser, one Assistant is responsible for daily management, and one or two data workers are composed of several auxiliary programmers. It features clear rights and responsibilities and high efficiency. The disadvantage is that it is not conducive to personal creativity. For leader high capability requirements.
Another common type of leadership organization is "hierarchical management ". The Team is headed by a general manager and consists of multiple groups led by senior programmers. Teams with this structure are often divided by function, such as software groups and hardware groups, or by transactions to form a module development group. Inter-group collaboration is coordinated by the General Manager.
A typical example of a collaborative organization is the "Free Software" development model. Because free software developers cannot determine in advance, the leader's function (assigning tasks) does not exist. Leader in Free Software (MaintainerIn fact, it is only an administrator and a strong programmer. His position and functions may change in the collaboration process. The development model of free software seems chaotic and undisciplined, but it often produces highly efficient development teams. This is also the inevitable outcome of software developers working together to coordinate each other. The disadvantages of this organizational model are obvious. Software development is highly risky. The ability of a team to work effectively depends on the ability of the team to adjust itself, which is almost unpredictable in terms of time and cost. Its advantage is that it can give full play to the creativity of software developers, and the software team is more dynamic.