View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Case Final Project Summer 2007

S02 Final Exam Review: XP

Edit S02 Final Exam Review: XP here.


a) XP is basically a giant loop, that keeps going until the entire program is done. The loop begins with design, not the overall program design, but by talking to a user and finding out what he would like in his program, IE I want a input box here, a picture here, and I want it to be able to do x, y, z. The next step in the loop is to Unit test the code you are going to write before you actually write it, so when your done coding, you are 100% sure that what you just wrote, is actually correct. The third step is to actually sit down and code. The final step in the loop is to refactor, IE make your code run faster, better, cleaner. You just iterate through the loop until the customer is happy with your product / you meet all the requirements.

Requirements gathering is always an important activity as you have pointed out. XP's user stories substitute for more traditional requirements gathering like use cases etc. The question is really focused on the latter elements of your discussion.

b) In some ways XP is just code in fix, but not in a bad way. Basically every day or so, the developers add in new functionality as dictated by the user they are working with. In most cases (and hopefully always) code added to the actually large project of code, will not break the build, and therefore the programmers will not have to go back and fix what they have already written. However at the same time, every day they go and add new functionality to what was already there, and they design as they go, making most "design up front" people get the impression that what is really going on is the code and fix where you just plop down code, it breaks something else, you fix it, etc etc. What is really happening is each day the XP developers are adding in new code and using the unit tests developed for the previous code to regression test what was already there.
How do they keep the "design" from degenerating into spagetti code? Adding new code and unit tests alone don't seem to get you a good design. What is going on in XP to prevent code degeneration?

c) The XP cycle goes Design, test, code. You get user storries up front, divy them up to people. The developers then write unit tests for the code they are going to implement, then they write the code and use their previously written unit tests to verify that the code is correct.
Based on the above comments, what would you say is the core cycle (assuming we already have requirements/user stories gathered and processed)
core cycle is perhaps - code->test->refactor ?
This is actually almost the core daily cycle I am looking for in this specific question
Kanishk Kapur


c. XP cylce: exploration->iteration->release?
This is a great answer if I was looking for more at the project management level. The way I phased the question I was looking for a lower level comparison to a subset of the project.

isn't it test, code, refactor?
Yes you are right, groan!!! XP'ers are test infected. They write tests first, then write the code, then they refactor mercilessly.

Link to this Page