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