Extreme programming overview Agenda Extreme programming goals Extreme programming values Extreme programming practices The Extreme programming team The Extreme programmer Extreme programming goals Extreme programming goals Extreme programming goals Extreme programming goals Extreme programming goals Extreme programming goals Extreme programming goals Extreme programming goals Extreme programming goals Extreme programming Values Values Communication Simplicity Feedback Courage Respect Planning approach of XP Principles Humanity Economics Mutual benefit Continuous Improvement/Reflection Diversity Flow Redundancy Opportunity/Failure Quality Small steps Accepted responsibility XP Practices - Primary Sit together Whole team (cross functional team) Informative workspace Energized work Pair programming Stories Weekly cycle Quarterly cycle Slack quick build Continuous integration Test first programming, Incremental design XP Practices - Secondary Real customer involvement Incremental deployment Team continuity Root Cause analysis Shared code Remove extra documentation – tests should be the documentation Single code base Negotiated scope contract The Extreme programming team Testers Architects Instead of manual testing, they write automated test programs Apply design incrementally, look for design refactoring opportunities; but also implement stories just like other programmers Project Manager Handles the outside world; packages the team's achievements for the world; keeps a view of the big picture The extreme programming team Product Manager Sometimes referred to as the customer. Chooses features to implement. Programmers Estimate stories, break stories into tasks, write tests, implement the code and continuously improve it. The extreme programmer Very passionate about programming Likes to communicate Very good understanding of design, design patterns