CSCE 315 Lecture 14

From Notes
Jump to navigation Jump to search

« previous | Wednesday, February 22, 2012 | next »


Extreme Programming (XP)

Practices

  1. On-Site customer that is actively involved with development process. "User stories" provide usage cases and features
  2. Planning Game developers assign costs to stories and "budget" how much they can accomplish. Customer decides what fits within the "budget"
  3. Metaphor to describe how whole project will fit together (like a jigsaw puzzle or car)
  4. Small releases released very often
  5. Testing before programming. Customer provides acceptance tests
  6. Simple design: don't add anything that doesn't need to be added
  7. Refactoring small sections of code to make it neater; test after every refactoring
  8. Pair Programming Two people work at same time
  9. Collective Ownership anyone can edit anything, and errors are the fault of the whole team.
  10. Continuous Integration Commit changes frequently and verify against entire test suite
  11. Coding Standards for naming and style
  12. Sustainable Pace no overtime except in final week. Administrative work and breaks to rest each day.


SCRUM

Idea first appeared in business journal

Product and release backlog (list of features to be implemented in the project, subdivided to next release, and ordered by priority)

Burn-down chart; a best-estimate of time needed to complete what is in the backlog. Should be 0 when project is completed. (adjust backlog or completion date)

Sprints are about 1-month period after which a single product (subset of features in backlog) are delivered. They are their own SCRUM project with their own backlogs. Each sprint results in a new release.

15-minute daily meeting (stand-up) for all team members. Summarize accomplishments and obstacles. Customer observe meeting.


Drawbacks to Agile Development

  • Feature Creep
  • Neverending project
  • All-or-nothing adoption of techniques
  • clear, single, invested customer (preferrably knowledgeable)
  • team size limited