Applying the lessons of eXtreme Programming

eXtreme Programming is a new, low ceremony, very high discipline software development methodology. This seminar introduces eXtreme Programming, the values, practices and project implications.

Duration and intended Audience

This is a 1 day seminar intended for Project Managers, Team Leaders and Senior Developers.

This is for people who want to find out more about eXtreme Programming with a view to improving their current development process. Managing the incremental, iterative development processes needed by modern software systems is not easy, so it is useful to see what lessons can be learned from the process that has taken incremental development to extremes. eXtreme Programming projects manage to be successful with a 3 week delivery cycle, incrementally gathering requirements and adding fully tested, useful system features every increment. This seminar explains how they manage to do that and then explores what the implications could be for your process.

Course Goals

Course Content

  1. Object Methodologies in practice
    • Exploring the Methodology space
    • High Ceremony, Low Ceremony and Minimal Methodologies
    • Extreme Programming, pictures are nice but tested code is better
    • Analysis Paralysis and other diseases of software development
  2. Extreme Programming the values
    • Ultra high frequency Communication as a core value
    • Simplicity of both design and process
    • Activities within Extreme Programming are Feedback driven
    • Courage - embrace change as a way of life, rather than build processes to limit change
  3. Extreme Programming - an Experience Report
    • When we come to realize that change is the only reality, life is much easier
    • A review of the experiences of a high profile Extreme Programming project
  4. Applying the lessons of Extreme Programming
    • Steering projects
    • Applying the Quality First strategy
    • Using feedback to improve system quality
    • Big design up front does not work
    • Separating Business and Technical responsibilities
    • Incremental development means incremental requirements capture
    • Make it run, make it right, make it fast
    • Unit Testing and really meaning it
    • Avoiding Integration Hell
    • Refactoring to improve design quality
    • Experimentation requires a high discipline process
  5. Debugging the development process
    • High discipline processes
    • Using a process coach to tune and tailor your process

Recommended texts