Register your product to gain access to bonus material or receive a coupon.
Extreme Programming is the most exciting revolution to hit the software engineering industry in the last decade. But what exactly is XP? And how do you XP? Simply put, XP is about playing to win. If you are serious about becoming an agile organization, decreasing your time to market, keeping your development team happy, and improving the overall quality of your software, then XP is for you.
Extreme Programming in Practice provides a candid, refreshing, insider¿s view of how an XP project works. The artifacts presented in this book are real, the user stories are real, and the anecdotes are real. The book represents all-access, uncensored XP. The authors have chosen example over explanation, so that you can personalize the tenets of XP and put them into practice on your next development project.
The book is supported with sample code and test examples. You can learn how to emphasize planning in your project; deliver multiple iterations of your project (each with increasing business value); gather customer feedback as you build; and test the integrity of your code without halting your development efforts. The authors also provide a handy summary of more than a dozen "lessons learned" in XP implementation.
Extreme Programming in Practice will help you separate the hype from reality and learn how to implement XP in your organization. Witness the thought process of an XP team unfold. Observe the mistakes that were made along the way, as well as their corrections. See the ebb and flow of a real development project. Finish the release. Play to win.
Click below for Sample Chapter related to this title:
newkirkch4.pdf
Preface.
1. The Skinny.
The First Solution.
Changes.
What Went Wrong?
Extreme Programming (XP).
The Structure of This Book.
Introduction.
Exploration.
Spike.
Release Planning.
Iteration Planning.
Development.
The Story of a Story.
The Story of Some Constraints.
Architecture.
An Expensive Story.
Combining Stories.
Registration Story.
Existing User.
Legacy Conversion.
Notification.
Registration Pages Look and Feel.
Miscellaneous.
Conclusion.
Summary of Stories.
Prioritizing the Stories.
Architectural Significance.
Release and Iteration Duration.
Velocity.
Planning the First Release.
Conclusion.
Breaking Stories into Tasks.
Signing Up for Tasks.
Estimating the Tasks.
Conclusion.
Plans Are One Thing, Reality Is Another.
Starting the Iteration.
Conclusions.
Tracking.
Cookies.
Tracking.
Conclusions.
Tracking.
10 retpahC. sdrawkcaB gnikroW.
TestNoUser.
TestGoodEmail.
TestBadEmail.
Implementing the Mock-Objects.
ForgotPassword Servlet.
Conclusion.
Tracking.
Refactoring the Tests.
Refactoring the Database—again.
Infrastructure Revolution.
The Registration Servlet.
Conclusion.
Tracking.
Cookie Woes.
HTML/JSP Tasks.
We Thought We Were Done.
An interesting Misunderstanding.
What Went Wrong?
Can't You Fit Two Hours?
Task Planning.
The Iteration.
Lessons Learned.
The Third Iteration and Release.
Release.
Projecting This Experience onto Larger Projects.
Lessons Learned.
Final Conclusions.
At first we thought we might have to keep the scope of the project artificially small enough to fit into this book. However, it turned out that the size of the first XP release of the project was both useful to our customer and the ideal size for this book. So even the size of the release is real.
Before this project, none of us had used XP in its entirety. So this book also chronicles the adoption of XP by a team that is relatively unfamiliar with it.
Our goal in writing this book is to help demonstrate how a real XP project works. We have chosen to do this by example, rather than by explanation.
The examples are real. They chronicle the thought processes of the team as it struggles with the concepts of XP. You will see us make mistakes and then correct them. You will see us have insights and then find them to be invalid. You will see the ebb and flow of a real development project.
This book is written for developers, managers, customers, and anyone else involved in the development of software.
We welcome any feedback and can be reached at the following e-mail addresses:
AB
Back with Filled Fields user story
cancellation, 138
first release, not originally planned but completed, 143
origin, 129
reinstatement, 139
time used, 141
Banners, Web sites, Smart Site Header user story, 1920, 3031, 33, 125, 144145
Beck, Kent, xiii, xv, 5, 9, 48
C
Changing User Profile user story
first release, original planning, 33
first release, planned and completed, 143
origin, 2627
Click Back user story
cancellation, 139
origin, 138
Click for Overview user story
first release, not originally planned but completed, 143
origin, 128
Combine Confirmation and Login user story
first release, not originally planned but completed, 143
origin, 130
Cookies user story
first release, original planning, 33
first release, planned and completed, 142143
Login Start task, 3637
Login task, 7074
origin, 2122
problems, 123125
Create Database task
implementing, 4861
origin, 3839
time estimate, 42
Cunningham, Ward, 92
D
Databases, Create Database task
implementing, 4861
origin, 3839
time estimate, 42
E
E-mail Notification user story
first release, original planning, 33
first release, planned, 143
origin, 2526
Enter as Guest task
implementing, 7788
origin, 38
Exact Method refactoring, 83
LoginServlet, 70, 7374
Existing User user story
first iteration planning, 4041
first release, not originally planned but completed, 143
origin, 2324
testing code, 107110
Exploration period (XP projects)
spikes, 10
user stories, 910
Extreme Programming. See XP
F
Forgot Password task
implementing, 91105
origin, 3839
Forgotten Password user story
first release, original planning, 33
first release, planned and completed, 143
origin, 24
Fowler, Martin, xii, xv, 13, 70, 77
G
Guest Login user story
Enter as Guest task, 38
first release, original planning, 33
first release, planned and completed, 142143
origin, 21
I
Iterations
first iteration execution, 4762
first iteration planning, 1112, 3545
first iteration summary, 123126
second iteration, 139141
third iteration, 141142
J
JUnit test framework, 4851
L
Legacy E-mail Addresses user story, origin, 2425
Login Page HTML task, 37
time estimate, 43
Login Start task
origin, 36
time estimate, 42
Login Story user story
first release, original planning, 33
first release, planned and completed, 142143
origin, 2021
Login task
cookies, 7074
implementing, 6370, 75
origin, 37
time estimate, 4344
M
Member Invitation user story, origin, 2627
Migrate Access Data user story
first release, original planning, 32, 33
first release, planned, 143
origin, 2425
Mock object interfaces, 101104
Move Method refactoring, LoginServlet, 70, 7374
N
No Pop-Up Windows user story, origin, 1617
Notification Specialization user story
first release, original planning, 32, 33
first release, planned and completed, 143
origin, 2526
second iteration, 139141
O
Operating systems
architecture, 1819
selection process, 18
P
Page Width user story, origin, 2627
Pair programming, 1213
Porting Constraint user story, origin, 1718
Programming weeks (ideal), 10
Pull up Method refactoring, 77, 80, 83
R
Refactoring
DatabaseAddTest, 110112
ForgotPasswordTest, 9596, 98100
ForgotPasswordTest.testNoUser, 93
FrontEndServlet, 80, 84
GuestServlet, 78, 81, 84, 87
LoginServlet, 70, 7374, 7983, 8687
Mailer, 95, 98
PasswordReminder, 93, 9697, 100101
RedirectingServlet, 8586
UserDatabase, 117118
Registration E-mail user story
first release, not originally planned but completed, 143
origin, 129
Registration HTML task
implementation time, 122
origin, 40
time estimate, 43
Registration Page Cosmetics user story
combining with Click Back user story, 138
first release, not originally planned but completed, 143
origin, 129
Registration Task Servlet
implementing, 107122
origin, 40
time estimate, 4344
Release planning, 11
first iteration, summary, 123126
first release, 3133
Release planning, continued
second iteration, 139141
stories, current status, 144
stories, first release, completed, 143
stories, first release, planned, 142143
third iteration, 141142
velocity, 11, 31
velocity, first iteration planning, 45
Reset Servlet task
problems, 123125
time estimate, 4243
S
Smart Site Header user story
architectural significance, 3031
first release, original planning, 33
first release, planned, 143
high priority technical risk, 144145
origin, 1920
relationship with cookies, 125
Spikes, project exploration period, 10
Spoofing, 92104
Stories. See user stories
T
Tasks
breakdown of user stories, 3642
time estimates, 4245
Testing, JUnit framework, 4851
Transparent Login user story
cookies, 7074
first release, original planning, 33
first release, planned and completed, 143
origin, 22
Triggering the Login Mechanism user story, origin, 1516
U
User Registration user story
first release, original planning, 33
first release, planned and completed, 143
origin, 23
User stories
breaking down into tasks, 3642
defined, 910
first release, planned compared to completed, 142143
prioritizing, 30
task time estimates, 4245
Username as E-mail Address user story
origin, 1617
unique identifier, 23
V
Velocity, release planning, 11, 31
first iteration planning, 45
W
Web sites
user stories, Page Width, 2627
user stories, Smart Site Header, 1920, 3031, 33, 125, 144145
X
XP projects. See also iterations; release planning
communication, 148
exploration period, 910
feedback, 149
lessons learned, 149151
Lowell, miscommunication, 130134
Lowell, miscommunication, troubleshooting, 134135
operating system architecture, 1819
pair programming, 1213