15.04.2018 Views

programming-for-dummies

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Software Engineering Methods 113<br />

Advocates of extreme <strong>programming</strong> argue that the only truly important<br />

product of the system development process is code. Without a working program,<br />

you have nothing.<br />

Book I<br />

Chapter 5<br />

Coding is more than just typing in program commands — it also includes figuring<br />

out the best way to write that program in the first place. For instance,<br />

in extreme <strong>programming</strong>, when faced with several alternatives <strong>for</strong> a <strong>programming</strong><br />

problem, one should simply code all solutions and determine with<br />

automated tests (which I discuss in the following section) which solution is<br />

most suitable.<br />

Managing Large<br />

Projects with<br />

Software<br />

Engineering<br />

Coding also means communicating on a consistent basis with<br />

✦ The customer. Constant communication with the customer means that<br />

the customer can always see the program’s progress and offer feedback on<br />

what the program’s doing right and what it’s doing wrong. By doing this,<br />

extreme <strong>programming</strong> lets the customer play an active role in shaping the<br />

final program.<br />

Under the waterfall method, the customer can give feedback to the <strong>programming</strong><br />

team only during the analysis phase. After the analysis phase<br />

is complete, the customer never sees the program until it’s completed<br />

the testing phase. By that time, the program may not look or act anything<br />

like the customer wanted.<br />

✦ Other programmers. Constant communication with other programmers<br />

on the project means not only talking with them, but writing clear, concise<br />

program designs that can’t be misinterpreted. By constantly communicating<br />

with other programmers, extreme <strong>programming</strong> encourages programmers<br />

to know exactly what other programmers are doing so putting<br />

together the various parts of the program can be much simpler.<br />

Under the waterfall method, it’s perfectly possible <strong>for</strong> teams of programmers<br />

to work independently only to find later that their different program<br />

parts don’t work together like they’re supposed to.<br />

Sequence<br />

Unlike the waterfall method, which is predictive and process-oriented, extreme<br />

<strong>programming</strong> is adaptive and people-oriented. Extreme <strong>programming</strong> adapts to<br />

the customer’s needs (rather than shutting the customer out after the analysis<br />

phase is complete). By keeping the customer involved, the program’s directed<br />

by the customer’s needs rather than a fixed time schedule.

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

Saved successfully!

Ooh no, something went wrong!