Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach Software Engineering for Students A Programming Approach

web.firat.edu.tr
from web.firat.edu.tr More from this publisher
21.08.2013 Views

28.5 The chief programmer team 351 As we shall see, some techniques exploit this principle of the division of labor. How are teams usually organized? There are two common methods of organizing teams involved in software development – functional teams and project teams. 28.3 ● The functional team In the functional team organization, all the members of the team carry out the same type of work, so that there is a team of programmers, a team of analysts, a team of testers, and so on. At any one time, the members of a team are working on different projects; the work of a single project is carried out by people from different teams. A major problem of functional teams is that the people who are working on a single project are not a cohesive team. They may even be physically separated in different offices. Close and easy communication is inhibited. Another problem of the functional team is that the person responsible for a project is not the manager or leader of the people working on his or her project. Thus he or she may not have as much control over them as they would like. 28.4 ● The project team In a project team, everyone in the team is engaged on developing the same system. The team therefore usually consists of people who carry out all the work of the development – requirements analysis, programming, testing and so on. Initially, a team of this kind consists of only a single person. As requirements engineering gets under way, the team grows to two or three people. When the project is fully under way, during coding and testing, it expands to its maximum. Towards the end of the project, members leave the team until finally it is disbanded. The project manager is usually a member of the team, and in control of the team. The drawback of a project team is that its membership waxes and wanes as the demands of the project change. Initially only one or two people may carry out analysis and architectural design. During implementation the numbers grow to full strength. Then, towards the end, when the system is being put into operation, the numbers diminish. 28.5 ● The chief programmer team The chief programmer team is a project-based organization in which specialization is implemented in an extreme form. The principles behind the chief programmer team organization are: ■ to divide the work amongst skilled specialists. ■ to structure the team in a well-defined way so that each individual’s role is clear and communication is minimized.

352 Chapter 28 ■ Teams A chief programmer team is like a surgical team in which the chief surgeon is assisted by an assistant surgeon, an anesthetist, and one or two nurses. Each team member is a highly trained specialist. In the chief programmer team the job titles are chief programmer, back-up programmer, librarian and other specialist programmers as and when necessary. The roles of the team members are as follows Chief programmer This is a highly skilled software engineer who produces the crucial parts of the system. It is usually the designer of the software who determines and specifies the architectural components of the software. The chief programmer specifies all the other components in the system and oversees the integration or system testing of the complete system. The chief programmer’s role is intended to be almost entirely a technical one. To this end, administrative affairs like reporting to management and monitoring budgets and timescales are dealt with by a project manager. This frees the chief programmer from non-technical matters. The project manager is not really part of the team and will usually deal with the administrative aspects of several teams. Back-up programmer This is a programmer whose skill is comparable to that of the chief programmer. The job is to help the chief programmer with his or her tasks and act as the chief programmer when the latter is absent for any reason. Should the chief programmer leave the organization, the back-up programmer can immediately take over. Librarian The librarian maintains the documentation associated with the project. He or she may be a secretary with some training in using a computer system. Other specialist programmers When needed, other programmers are brought into the team to develop any subsystems specified by the chief programmer. Each of these programmers is an expert in a particular software area, such as user interfacing, databases or graphics. The structure of the team is hierarchical, with the chief programmer at the top. In contrast to a network of people each of whom communicates with everyone else, the hierarchy restricts information so that it flows along far fewer paths – only up and down the hierarchy. The use of structured programming (Chapter 7) and top-down implementation and testing (Chapter 24), both of which are hierarchical, complement this scheme very neatly. There can be no doubt that the technique of the chief programmer team represents a creative application of scientific management to team programming.

28.5 The chief programmer team 351<br />

As we shall see, some techniques exploit this principle of the division of labor.<br />

How are teams usually organized? There are two common methods of organizing<br />

teams involved in software development – functional teams and project teams.<br />

28.3 ● The functional team<br />

In the functional team organization, all the members of the team carry out the same<br />

type of work, so that there is a team of programmers, a team of analysts, a team of<br />

testers, and so on. At any one time, the members of a team are working on different<br />

projects; the work of a single project is carried out by people from different teams.<br />

A major problem of functional teams is that the people who are working on a single<br />

project are not a cohesive team. They may even be physically separated in different<br />

offices. Close and easy communication is inhibited.<br />

Another problem of the functional team is that the person responsible <strong>for</strong> a project<br />

is not the manager or leader of the people working on his or her project. Thus he or<br />

she may not have as much control over them as they would like.<br />

28.4 ● The project team<br />

In a project team, everyone in the team is engaged on developing the same system.<br />

The team there<strong>for</strong>e usually consists of people who carry out all the work of the<br />

development – requirements analysis, programming, testing and so on. Initially, a<br />

team of this kind consists of only a single person. As requirements engineering gets<br />

under way, the team grows to two or three people. When the project is fully under<br />

way, during coding and testing, it expands to its maximum. Towards the end of the<br />

project, members leave the team until finally it is disbanded. The project manager is<br />

usually a member of the team, and in control of the team.<br />

The drawback of a project team is that its membership waxes and wanes as the<br />

demands of the project change. Initially only one or two people may carry out analysis<br />

and architectural design. During implementation the numbers grow to full strength.<br />

Then, towards the end, when the system is being put into operation, the numbers<br />

diminish.<br />

28.5 ● The chief programmer team<br />

The chief programmer team is a project-based organization in which specialization is<br />

implemented in an extreme <strong>for</strong>m. The principles behind the chief programmer team<br />

organization are:<br />

■ to divide the work amongst skilled specialists.<br />

■ to structure the team in a well-defined way so that each individual’s role is clear and<br />

communication is minimized.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!