01.01.2015 Views

UML Weekend Crash Course™ - To Parent Directory

UML Weekend Crash Course™ - To Parent Directory

UML Weekend Crash Course™ - To Parent Directory

SHOW MORE
SHOW LESS

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

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

20<br />

Friday Evening<br />

Extreme Programming<br />

Extreme Programming (XP) shocked a lot of people, including myself, when it first showed<br />

up. The goal of XP is much like that of CRC (that is, keep it simple). This is not surprising<br />

when you learn that the originator, Kent Beck, was also instrumental in the CRC method. XP<br />

does not advocate the <strong>UML</strong>. I present it here because the goal of this session is to provide<br />

you with an understanding of the diversity of methodologies and the views or attitudes that<br />

various methodologies hold toward the application of the <strong>UML</strong> standard.<br />

XP strives to strip away anything that is not essential. XP requires a complete and unwavering<br />

commitment from the clients to work side-by-side with the programmers. Working<br />

through stories or scenarios of how the system should work, the teams eventually develop<br />

the entire system. Every iteration of the project (typically one to four weeks each), the<br />

teams deliver something functional. The minimum deliverable is a set of tests.<br />

XP basically says that the code is everything, so there is a very heavy emphasis on coding<br />

standards and design principles. The process includes numerous standup meetings to<br />

keep everyone on the same page. Furthermore, programmers work in pairs so that they can<br />

learn from one another, provide insights, share design alternatives, and generally help each<br />

other out.<br />

Because XP is completely devoted to the code, there is very little use of up-front modeling.<br />

If modeling is used, it is usually thrown away when a decision is reached. XP does use<br />

the CRC method because of its simplicity and utility. Instead of design up front, the method<br />

encourages design through integration and refactoring. In other words, XP advocates believe<br />

that as you learn more about the code, you are in a better position to make the design<br />

decisions and update your code. In one sense, it could be seen as bottom-up design.<br />

Strengths of XP<br />

XP is the first that I know of that truly cared about the programming environment<br />

and its affects on the participants. The bibliography for Extreme Programming<br />

Explained, Embrace Change, by Kent Beck, reads more like a sociology text than a<br />

programming text. No one since <strong>To</strong>m DeMarco, writing the book Peopleware, has<br />

devoted as much time to finding ways to make the programming job livable.<br />

XP encourages an extremely close relationship between clients and developers.<br />

XP faces the fact that change is inevitable and often uncontrollable and builds that<br />

fact into the development approach.<br />

Kent Beck has been brave enough to describe what it really takes to create a highcaliber<br />

development environment instead of bowing to the status quo of impossible<br />

deadlines, inadequate user involvement, ill-defined requirements, and programmer<br />

isolation.<br />

Weaknesses of XP<br />

XP relies heavily on setting up the ideal development environment. It starts from<br />

several questionable assumptions:<br />

Highly committed clients will spend huge amounts of time working side by side<br />

with programmers. In my experience, projects are lucky to get access to true subject<br />

matter experts because they are considered too valuable to release from their<br />

current responsibilities.

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

Saved successfully!

Ooh no, something went wrong!