Extreme Programming (XP) is a new lightweight software developing methodology. XP is the most popular of the "agile" development methodologies. Agile development is an integral part of technology movements in the software development world. XP has quickly gained in popularity over the last few years and is now becoming recognized by development shops from large consulting firms through small software houses. Some of the companies that are using XP include DaimlerChrysler, First Union National Bank, and Ford Motor Company.
Sams Teach Yourself Extreme Programming in 24 Hours includes coverage on Extreme Programming, agile development, automated test frameworks (Junit, etc.), Automated Build (Ant), and Refactoring in a step-by-step approach.
(NOTE: Each chapter concludes with a Summary, Q&A, and Workshop.)
I. LEARNING THE XP BASICS.Hour 1. Setting the XP Landscape.
Brief Overview of Software Development. Understanding Software Development Methodologies. Solving the Software Development Paradox with Agile Methodologies. Learning How XP Delivers Quality Software. Comparing the Methodologies.Hour 2. Discovering What XP Is All About.
The First XP Project. Defining XP. XP's Key Features. Investigating XP's Extreme Aspects. How Does XP Differ from Other Development Approaches?Hour 3. Overcoming Software Development Problems with XP.
Uncovering Software Development Problems. Controlling Risk with XP. Improving Quality with XP. Managing Change with XP.
II. UNDERSTANDING XP IN ACTION.Hour 4. The XP Development Lifecycle.
Overview of an XP Project Lifecycle. Exploring User Requirements. Creating the Project Plan. Dividing Releases into Iterations. Deploying Software into Production. Maintaining the System After Release.Hour 5. Understanding XP Team Roles.
How XP Roles Work Together. Customer. Coaching XP Teams. Developer. Tester. Tracker. Manager. Other XP Roles.Hour 6. XP Practices in Action.
Understanding How XP Practices Work Together. The Planning Game. Small Releases. Metaphor. Simple Design. Testing. Refactoring. Pair Programming. Collective Ownership. Continuous Integration. 40-Hour Work Week. On-Site Customer. Coding Standards.
III. RUNNING YOUR XP PROJECT.Hour 7. Leading Your XP Project.
Using XP Values to Run Your Project. Trusting Your Team. Leading Your XP Team. Building Your Team.Hour 8. Planning Your Software Release with XP.
The Basics of a Software Release.Hour 9. Developing Software in Iterations.
Breaking Down the Release into Iterations. Brainstorming Tasks with the Team. Signing Up for Work. Writing Acceptance Tests. Tracking and Steering the Iteration. Closing the Iteration.Hour 10. Gathering the Customer's Requirements with User Stories.
Writing Your First User Story. User Story Variations.Hour 11. Software Development with Pair Programming.
Getting into the Pair Programming Mindset. Creating the Physical Space. Pair Programming Costs and Benefits. Answering Pair Programming Objections. Making Pair Programming Work for You.
IV. USING THE XPTOOLS.Hour 12. Building Software the XP Way.
The Integration Cycle. Making a Start with Build Automation.Hour 13. Using XP Development Tools.
Gathering Your XP Toolset. Testing Your Software with the xUnit Testing Framework. Tracking Defects with Tools. Using Paper-Based Tools. Finding Software Tools to Speed Up Your Code. Source Control Tools. Tools to Check Your Code Quality. Leveraging Integrated Development Environments.Hour 14. Unit Testing with Java Tools.
Revisiting Test-first Programming. Overview Of JUnit. Installing JUnit. Writing Your First JUnit Test. Testing Challenges.Hour 15. Unit Testing with Microsoft Tools.
Reviewing Microsoft COM and .NET. Establishing Your .NET Environment. Writing Your First NUnit Test.Hour 16. Automating Your Software Development.
Implementing Automated Builds with Ant. The Ant Build File. Building HelloWorld with Ant. Automated Builds on the Microsoft Platform.Hour 17. Making the Most of Ant to Automate Your XP Project.
Using Ant to Automate Unit Tests. Automated Build on the .NET Platform.
V. ROLLING OUT XPIN YOUR ORGANIZATION.Hour 18. Implementing XP in Your Organization.
Understanding the Technology Adoption Curve. Guidelines for Implementing XP in Your Situation. Avoiding the Pitfalls. Measuring XP.Hour 19. Selling and Getting Buy-in to XP.
Selling XP Internally. Getting Management Buy-in. How Do I Sell XP to Customers?Hour 20. Learning from XP Case Studies.
Case Study: The Importance of Keeping Your Selling and Delivery Methods Synchronized. Case Study: The Result of Changing to XP in Midstream. Case Study: Independent Software Vendor Comes to Grips with XP. Case Study: Pushing the Limits of XP on a Large Project.
VI. EXTENDING THE USE OF XPAND OTHER ADVANCED TOPICS.Hour 21. More on Refactoring Techniques.
Understanding the Need to Refactor. When to Refactor. Challenges to Refactoring. Refactoring Ideas. Getting into the Refactoring Habit. Refactoring More Than Code. Refactoring Resources.Hour 22. Extending the Limits of XP.
Learning How to Scale Your XP Project. Virtual Team Tools.Hour 23. Using Agile Modeling with XP.
Taking a Tour Through Agile Modeling. Using Agile Modeling in a Sample Session.Hour 24. Other Agile Development Methodologies.
Understanding Agile Development Methodologies. Scrum Methodology. Dynamic Systems Development Methodology. Feature Driven Development. Creating Your Own Agile Methodology.
VII. APPENDIXES.Appendix A. Additional References.
Bibliography with Observations on the Titles.Appendix B. Online Resources.
Extreme Programming Links. XP-Related Links. Links to XP Tools. Agile Methodologies Links.Index.