|
|
| Do you know where your variables are? | |
| PerlMonks |
Extreme Programming Pocket Guideby TStanley (Canon) |
| on Oct 10, 2003 at 01:10 UTC ( [id://298150]=bookreview: print w/replies, xml ) | Need Help?? |
|
Order Extreme Programming Pocket Guide Item Description: Learn the basics of XP Review Synopsis: A must have book for any developer who is using or will be using XP
Author:Chromatic
Foreword
Preface
Part 1. Why XP?
Who Cares About Process, Anyway?
The XP Equation
XP Values
Communication
Feedback
Simplicity
Courage
Assuming Sufficiency
Sufficient Time
Sufficient Resources
Constant Cost of Change
Developer Effectiveness
Freedom to Experiment
Part 2. Extreme Programming Practices
Coding Practices
1. Code and Design Simply
2. Refactor Mercilessly
3. Develop Coding Standards
4. Develop a Common Vocabulary
Developer Practices
1. Adopt Test-Driven Development
2. Practice Pair Programming
3. Adopt Collective Code Ownership
4. Integrate Continually
Business Practices
1. Add a Customer to the Team
2. Play the Planning Game
3. Release Regularly
4. Work at a Sustainable Pace
Part 3. XP Events
Iteration Planning
Stories and Tasks
Estimates and Schedules
The First Iteration
The Iteration
Releasing
Part 4. Extreme Programming Artifacts
Story Cards
Task Cards
The Bullpen
Part 5. Roles in Extreme Programming
The Customer
Customer Rights
Customer Responsibilities
The Developer
Developer Rights
Developer Responsibilities
Supplementary Roles
The Tracker
The Coach
Part 6. Coding, XP Style
Do the Simplest Thing That Could Possibly Work
You Aren't Gonna Need It
Once and Only Once
Part 7. Adopting XP
Before You Start
Eliminating Fear and Working Together
Starting Feedback
Including Managers and Customers
Now That You're Extreme
Part 8. Further Resources
XP Resources
Index
While not a programmer by job title, I do write a lot of scripts, and I try to maintain the three modules that I have on CPAN. I wanted to learn about XP and at least get a basic understanding of its principles and how they all work together, with an eye towards eventually adopting some of its practices into how I code.Chromatic starts off by explaining the reasons for using XP. "The goal of software development is to create good systems that meet business needs with the available resources. XP can help you do just that." The material is broken down into eight sections, each one covering a specific topic. Section 1 deals with describing XP and its values, and the problem that it was intended to solve. Section 2 dives in the meat of XP, covering each of the twelve core practices of XP, breaking them down into three groups, Coding, Developing, and Business. Section 3 covers the various events that happen within an XP development cycle. He breaks down the first phase (Iteration Planning) into three sections, then goes on to cover the Iteration and Releasing. Section 4 deals with the physical items that XP uses to keep track of events, such as story and task cards. The Bullpen, which is defined as a large open area with plenty of powerful pc's with room for at least two programmers at each one (Pair Programming), several large chalkboards or whiteboards, and plenty of sticky notes and pens. Section 5 deals with the roles in XP, and the rights and responsibilities of each of those roles. As developers, we need to follow team guidelines, implement only what is necessary, and communicate constantly with the customer. Section 6 deals with the coding style of XP, which follows three basic principles. "Do the simplest thing that could work", "You aren't gonna need it", and "Once and only once". Chromatic also points out that the last one is quite similar to the principle mentioned in The Pragmatic Programmer, "Don't Repeat Yourself". Sections 7 and 8 deal with how to go about implementing XP and where you can find more resources on this subject. This book was very well written and concise, and it lays out precisely the necessary strategies and information needed to start down the XP path. I emphatically recommend this book for anyone who uses or is going to be using XP for software development.
|
|
||||||||||||||||||||||||||||||||||||