Click to download the podcast mp3 On Internet Explorer, Click the left mouse button to listen, or click the right mouse buttton and “Save As…” to download. You can subscribe for updates straight into your PC or ipod - it’s easy and free. Refer to the podcasting FAQ at http://podca.st.

Here’s the third of four podcasts on agile software development. The first - an overview on agile - is available here and the second - a survey of methodologies - is here. This 37-minute podcast focuses on the best known - and most controversial - of the methodologies: Extreme Programming.

Show Notes:

  • About embracing change, a rapid departure from plan-and-build.

  • So don’t just tweak traditional processes … reinvent them.

  • Four core values:
    • Feedback
    • Communication
    • Simplicity
    • Courage
  • Twelve practices:
    • The Planning Process. Elicitation by negotiation and ongoing discussion; specification by index cards rather than exhaustive documents.
    • Small Releases. 1-4 week iterations.
    • Simple Design. Minimalist approach. Simple, not stupid. Once and once only. "You Ain’t Gonna Need It".
    • Metaphor. Cohesive design.
    • Testing. JUnit.
    • Refactoring. "Refactor mercilessly."
    • Pair Programming. Constant review improves design and testing, enables collective ownership.
    • Collective Ownership. Keeps tacit knowledge spread across team, supports refactoring and ongoing design improvement, acts as contingency against staff departure.
    • Continuous Integration. Ensures code can change quickly, keeps developers’ attention on adding business value rather than micro-managing infrastructure.
    • On-Site Customer. Allows tacit requirements.
    • Coding Standard. Supports collective ownership.
    • **40-hour Week. ** "Sustainable Pace"
  • Origins:
    • C3 project
    • Smalltalk and unit testing
    • Design patterns
  • Stayed tuned for the next podcast, the final in this Agile Software Riffcast series: The Dark Side of Agile.

Thanks again to My Morning Jacket for the sample used in the lead-in track.