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

Time taken Figure 28.2 Having a baby Time taken Figure 28.3 Typical software development 28.2 The principles of teams 349 To make matters worse, human beings are not well known for precise communication with each other. It is therefore likely that there will be faults in a system constructed by a team. The division of labor Number of people Number of people The second major question in team organization is deciding how to break down the large task into smaller tasks so that several people can carry them out. Developers carry out a whole variety of tasks, some of which, like design, are challenging and others, like keying corrections or filing listings, are less demanding. One way of dividing the work of software development amongst a set of people is to expect everyone to do a mix of tasks. Another approach is to separate out tasks that require different degrees of skill so that, for example, one person does all the design and another all the keying in of test data. This principle of the division of labor has long been recognized.

350 Chapter 28 ■ Teams Level of skill required Requirements specification Architectural design Program design Stage of project Figure 28.4 Skill requirements at each stage of a project Figure 28.4 illustrates a (controversial) conjecture about the differing skills involved during the development of software. Creating specialist roles has several advantages. First, it means that each person becomes an expert, highly skilled and productive at the particular task. Another feature of this type of organization is that instead of paying several highly skilled people uniformly high wages, management can pay people who have different skills different salaries. Overall the wages of the people with unequal skills will be lower than those of the skilled people. Thus the wages bill is reduced. To give a crude example, it would be cheaper to employ a programmer at $50,000 and a designer at $100,000, rather than employ two designer/programmers each at $180,000. It is no coincidence that Charles Babbage, one of the founding fathers of computing, was well aware of this effect. SELF-TEST QUESTION 28.1 Identify the different roles of the workers in the kitchen of a restaurant. In summary, specialization offers: 1. greater productivity, since the team member does just one type of work and becomes very skilled at it 2. the chance to pay the different team members according to the separate skills involved in their work, rather than pay everyone at the same rate for the most highly skilled work. Coding Debugging and testing

350 Chapter 28 ■ Teams<br />

Level of skill required<br />

Requirements<br />

specification<br />

Architectural<br />

design<br />

Program<br />

design<br />

Stage of project<br />

Figure 28.4 Skill requirements at each stage of a project<br />

Figure 28.4 illustrates a (controversial) conjecture about the differing skills involved<br />

during the development of software.<br />

Creating specialist roles has several advantages. First, it means that each person<br />

becomes an expert, highly skilled and productive at the particular task. Another feature<br />

of this type of organization is that instead of paying several highly skilled people uni<strong>for</strong>mly<br />

high wages, management can pay people who have different skills different<br />

salaries. Overall the wages of the people with unequal skills will be lower than those of<br />

the skilled people. Thus the wages bill is reduced. To give a crude example, it would be<br />

cheaper to employ a programmer at $50,000 and a designer at $100,000, rather than<br />

employ two designer/programmers each at $180,000. It is no coincidence that Charles<br />

Babbage, one of the founding fathers of computing, was well aware of this effect.<br />

SELF-TEST QUESTION<br />

28.1 Identify the different roles of the workers in the kitchen of a restaurant.<br />

In summary, specialization offers:<br />

1. greater productivity, since the team member does just one type of work and<br />

becomes very skilled at it<br />

2. the chance to pay the different team members according to the separate skills<br />

involved in their work, rather than pay everyone at the same rate <strong>for</strong> the most highly<br />

skilled work.<br />

Coding<br />

Debugging<br />

and testing

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

Saved successfully!

Ooh no, something went wrong!