CS 435 - Week 3 Lecture 2 - 2014-02-06

*   focusing more on Extreme Programming
    as an example of an "Agile" software development process model

*   idea: of combinations of practices that,
    taken together, result in (hopefully)
    more robust, higher quality, cost-effective software;

*   THE LISTS of PRACTICES um, vary...
    the NUMBER of practices in these lists vary...

    FOR EXAMPLE...
    *   frequent releases/small releases
    *   system metaphor/common vocabulary
    *   coding standards
    *   testing/test-driven development/test-first development
        *   unit testing/programmer testing - writing the
	    tests before you write the code
        *   acceptance testing/customer testing
    *   pair programming
    *   refactoring 
    *   collective code ownership
    *   simple design/YAGNI/You Aren't Going to Need It
        *   do the simplest thing that could possibly work
    *   40-hour work week/sustainable pace
    *   user stories
    *   planning game/release planning
    *   on-site customer/"extreme" customer involvement
    *   continuous integration

    *   CRC cards - (for object-oriented programming)
        Class, Responsibilities, and Collaboration
    *   stand-up meetings
    *   spike solutions