21.08.2013 Views

Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Summary 287<br />

The strategic thinking considers the role of the method within the class, and whether<br />

this method is appropriate within the context of the whole system. The person thinks<br />

about such questions as: Which other components use it? Can the system be simplified so<br />

that this method is just not needed? Can the method be generalized so that it is more widely<br />

useful? Is this method in the right place, or should it be relocated into some other class?<br />

The pair periodically switch roles, so that overall they are working as equals. Pairs<br />

don’t stay together, but change from day to day. It simply depends on who is available,<br />

but the people are drawn from the same project team, so they have a shared understanding<br />

of the project. And no one <strong>for</strong>ces people to pair up if they do not get along.<br />

When a pair starts work, it may be that one person will have more experience or<br />

expertise. Later, the gap narrows, so that they are genuinely collaborating on an equal<br />

basis, one person’s strengths compensating <strong>for</strong> the other’s weaknesses.<br />

The central feature of pair programming is that two people are communicating<br />

intensely, sharing ideas, learning from each other, supporting each other, articulating<br />

ideas verbally and solving problems. It is creative, sociable, enjoyable and effective. It is<br />

claimed that pair programming improves productivity, code quality and job satisfaction.<br />

Even though, at first sight, twice the ef<strong>for</strong>t is spent on development, the time is more<br />

than reclaimed in more effective working.<br />

Of course, pair programming means that pairs of people are working closely – almost<br />

intimately – together. This depends on an organizational culture that is collaborative<br />

and supportive.<br />

20.6 ● Discussion<br />

Perhaps the ultimate method <strong>for</strong> collaborative working aimed at reducing bugs is open<br />

source development. This is such an important technique that we devoted a whole separate<br />

chapter to the topic.<br />

How effective are the techniques of walkthroughs, inspections and pair programming?<br />

The answer is that they are surprisingly effective as compared with using testing.<br />

We review the evidence in Chapter 31 on assessing methods.<br />

Summary<br />

A structured walkthrough is a meeting at which a document is examined by a group<br />

of people in order to find errors. Structured walkthroughs are based on the premise<br />

that ideas that are shared will be the better <strong>for</strong> it. The careful organization of a<br />

walkthrough is important. Walkthroughs can lead to improved software quality –<br />

reliability and maintainability – because of the scrutiny of project material by a<br />

group. Ef<strong>for</strong>t can be reduced and deadlines more easily met.<br />

Inspections are a more <strong>for</strong>mal approach to a group review meeting.<br />

In pair programming, two people sit at the computer, working closely together on<br />

design, coding and testing.

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

Saved successfully!

Ooh no, something went wrong!