
Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Follow the authors
OK
Pair Programming Illuminated 1st Edition
Purchase options and add-ons
- ISBN-100201745763
- ISBN-13978-0201745764
- Edition1st
- PublisherPearson Technology Group
- Publication dateJuly 13, 2007
- LanguageEnglish
- Dimensions0.6 x 7.3 x 9.2 inches
- Print length256 pages
Frequently purchased items with fast delivery
Editorial Reviews
From the Back Cover
Pair programming is a simple, straightforward concept. Two programmers work side-by-side at one computer, continuously collaborating on the same design, algorithm, code, and test. It produces a higher quality of code in about half the time than that produced by the summation of their solitary efforts. However, nothing is simple where people and personalities are involved--especially people who are accustomed to working alone. The leap to pair programming for a variety of software development projects is one that yields many benefits. However, it is also one that requires careful thought and planning.
Written as instruction for team members and leaders new to pair programming and as an improvement guide for experienced pair programmers, Pair Programming Illuminated explains both the principles underlying this method and its best practices. The authors, drawing on their own extensive experience, explain what works and what does not, what should be emphasized and what should be avoided. Two case studies further illuminate pair programming in practice: one in the context of extreme programming (XP), with which it often is associated, and one linked to a more disciplined software engineering process.
Key topics include:
- Principles for selecting partners
- Practical advice, such as furniture set-up, pair rotation, and weeding out bad pairs
- Seven habits of effective pair programmers
Special appendices include:
- A pair programming tutorial
- An economic analysis of pair programming
- An introduction to test-driven development
With this book in hand, you will quickly discover how pair programming fits the needs of your own organization or project. You then will see exactly how to get started with this method, and how to do it right.
0201745763B06262002
About the Author
Laurie Williams has applied the XP methodology to various projects. She is an organizer of the main XP conferences held thus far.
Robert Kessler is a professor in the School of Computing at the University of Utah, from which he holds his Ph.D., and a past department chair. Bob has founded a number of technology companies and is on the board of several others.
0201745763AB08072002
Excerpt. © Reprinted by permission. All rights reserved.
This purpose of this book is to provide you with lots of information on pair programming. If you are already pairing, then the book will give you additional insights and techniques to make your pairing even more successful. We answer many of the questions and concerns that you may have about using the technique.
In Part One, our aim is for you to gain greater understanding about pair programming. We'll describe the technique and will be looking at pair programming from many perspectives--from those of you who want to try and those who would rather not try, from those of you who are employees trying to convince their managers to let them try and those who are managers who are trying to convince their employees to try.
In Part Two, we deal with some operational details of pairing--such as furniture and hints and tips for daily operation. We discuss the importance of pair rotation and how that can lead to better knowledge management.
In Part Three, we explain benefits and shortcomings of many different kinds of pairs and the context in which each kind of pair works best. We offer ideas to help enhance the pairing and solutions for most problem pairings. Unfortunately, not all pairs will work, and we provide ways to recognize the potential problems before they happen.
Part Four gives two case studies of pair programming in different methodologies. The first describes pairing in Extreme Programming (XP), while the second discusses the Collaborative Software Process (CSP). In both cases, pair programming is an essential ingredient to success.
We conclude in Part Five with suggestions for future directions, and we enumerate Seven Habits of Effective Pair Programmers.
Who Should Read This Book
We've written this book for software development team members and their managers. When we use the term "software development team," it goes beyond those who write production code. For example, this book is certainly appropriate for team leaders and coaches, GUI designers, architects, and QA folks. This book was also written for educators who would like to try pair programming with their students. Depending on your role, may we suggest the following process for reading this book:- Software developers and team leaders/coaches who haven't yet tried pair programming will find Part One very useful. All should read Chapters 1-3 very carefully. If you are trying to convince your manager to transition to pair programming, Chapter 4 will be helpful. If you would like to convince your peers to give pair programming a shot, Chapter 5 is for you. If you are currently being forced into pair programming, Chapter 6 will give you some guidance. Chapter 7 will prepare you for some potential problems you may encounter. Then you can move on to the chapters in Part Two to get into some of the more operational issues you will need to deal with in a transition to pair programming. Chapter 27, "Seven Habits of Effective Pair Programmers," will get you started on the right track. Appendix A, "Pair Programming Tutorial," can be used to help you transition a team or convince a team to take the pair programming plunge.
- Software developers and team leaders/coaches who are currently doing pair programming should start skimming Chapters 1-3. Much of this information will be review for you, but you may pick up some additional insight. Then you can move on to the chapters in Part Two to get into some of the more operational issues. Part Three will be particularly important in guiding you to choosing the best pair for the task at hand. Chapter 27, "Seven Habits of Effective Pair Programmers," will be a good grand finale for you. How many of these habits do you practice? Appendix D provides information about including Test-Driven Development with pair programming.
- QA personnel might be wondering how to handle a development team that has practiced or plans to practice pair programming. Chapters 1-4 will give you a solid understanding of the technique and its benefits. Chapters 10 and 26 also discuss the possibility of pair programming as a substitute to code inspections. Appendix D discusses the composition of pair programming and a testing technique called Test-Driven Development.
- Managers should start by reading Chapters 1-4 and Chapter 7 of Part One. Then, if you are trying to convince a team to try pair programming, Chapter 6 will be helpful. It advises you to run a Pair Programming Tutorial, outlined in Appendix A, with your team. Part Two provides information about operational issues of pair programming, and Chapter 26 provides information on some directions pair programming may lead to.
- Educators should read the first four chapters of Part One to gain a good basic understanding of the technique. Chapters 8, 10, and 11 provide some tactical information about your students. Depending on the skill level and mix of your students, choose some chapters in Part Three. Chapter 26 should appeal to your academic research interests, and Chapter 27 provides good information to share with your students. Appendix C was written with educators in mind and provides some sound tactical advice for using pair programming in the classroom.
Acknowledgments It seems to me shallow and arrogant for any man in these times to claim he is completely self-made, that he owes all his success to his own unaided efforts. Many hands and hearts and minds generally contribute to anyone's notable achievements.
--Walt DisneyAnyone who knows what a Disney fanatic Bob is will understand how appropriate it is to begin our acknowledgments with a quote from Walt Disney. Undoubtedly, this book would not have been possible without the help of the hands and hearts and minds of many of our friends, family, and respected colleagues.
Laurie: From the bottom of my heart, I thank my family for their unconditional love and support. Thanks to my husband Danny for enduring my complaining, for being my cheerleader, and for watching the kids while I was writing. I could not have done it without you! The absolute and unqualified love of our children, Christopher, Kimberly, and Brian, has always given me great strength. Your smiling eyes help put life back in perspective. I want to thank my parents for their love and support. From childhood, they inspired me always to strive for excellence and gave me a love of learning. I thank God for giving me the ability, confidence, and perseverance to write this book. Last, I want to thank my coauthor and doctoral advisor, Bob Kessler. You have been a wonderful mentor and friend over the last five years. Thanks for writing this book with me and for your tremendous support and encouragement as my advisor.
Laurie would also like to thank her graduate students, Prashant Baheti, Puneet Bheti, Boby George, Anuja Shukla, and Kai Yang, for their research that contributed in a few areas of the book. Thanks to Matt Senter of Senternet IT Consultants (senternet.com) for preparing the second pair programming survey as a class project and experimenting with distributed pair programming. She would also like to thank Hakan Erdogmus for working with her on the thorough economic analysis of Appendix B and to acknowledge her distributed pair programming research partner, Dr. David Stotts at the University of North Carolina, Chapel Hill. Last, she would like to thank Kent Beck, Alistair Cockburn, and Jim Coplien for their support and encouragement in the early days of the pair programming research.
Laurie would also like to mention that the research related to pair programming in the classroom was funded by the National Science Foundation. The NSF has funded research on student pair programming at both North Carolina State University and the University of California, Santa Cruz.
Bob: First of all, I'd like to thank my family. My wife Julie has always supported my professional efforts even though I often stay up too late working. She has juggled her job and the family and has put up with all of the deadlines. Additionally she has always been there to handle the home life when I've been too busy. I also thank our kids, Alex and Chelsea, for helping to enrich and fulfill our lives. I'd like to thank my parents for laying the foundation that has helped me get where I am today. I'd also like to thank Martin Griss for the years of being a great mentor, colleague, and most importantly, a friend. Last, I would be remiss without thanking my coauthor Laurie. It has been a real treat to watch her grow from a brand new graduate student into a highly regarded, professional colleague. It has been a real treat for me to "pair-write" this book with her.
Much of the writing of this book was accomplished while Bob was on sabbatical. Thus, he wants to thank the University of Utah for supporting his sabbatical, plus Hewlett-Packard and Microsoft for providing funding during his sabbatical year.
We would both like to thank our editor, Peter Gordon. We appreciate your unfaltering guidance for making this book as marketable as possible. We'd also like to thank Jacquelyn Doucette, our production editor.
We would also like to thank the many pair programmers who graciously allowed us to reference or quote them in this book: Ken Auer, Fred Brooks, Paul Chisholm, Wayne Conrad, Matthias Felleisen, Dick Gabriel, Bob Hartman, Bil Kleb, Andre McKinlay, Roy Miller, Don Wells, and Bill Wood. In Part Three, we thank all those who contributed the supporting quotes: Kent Beck, Anders Bengtsson, Erik Bennerhult, Jeff Canna, Dave Chaplin, Stu Charlton, Wayne Conrad, Matthew Cooke, Martin Griss, Steve Hayes, Eric Herman, Greg Houston, Ron Jeffries, Todd Jonker, Mike Lance, Jeff Langr, Lee Lichtenwalner, Michael Lindner, Iain Lowe, Tim Mackinnon, Peter Merel, Roy Miller, AK Molteni, Jim Murphy, Vera Peeters, Christian Pekeler, Markus Pfister, Norman Rekitt, Jason Rogers, John Sisk, Stephanie Ward, and Christian Wege.
Last but not, least, we'd like to thank our book reviewers. Thanks for challenging us, correcting us, advising us, complimenting us, and encouraging us: Goerge Burcham, Alistair Cockburn, Steve Hayes, Dave Hendricksen, Ron Jeffries, Tim Mackinnon, Andrew McKinlay, Jim Murphy, Mark Paulk, Leo Scott, Dave Thomas, and Don Wells.
A very special thanks to three reviewers who did incredibly thorough, detailed reading and gave a host of great suggestions: Paul Chisholm, Bil Kleb, and Bill Wood. Last, many thanks to Jim Coplien for kicking our you-know-what. Without your challenges, support, and guidance, this would have been a very different book.
0201745763P06262002
Product details
- Publisher : Pearson Technology Group; 1st edition (July 13, 2007)
- Language : English
- Paperback : 256 pages
- ISBN-10 : 0201745763
- ISBN-13 : 978-0201745764
- Item Weight : 1.3 pounds
- Dimensions : 0.6 x 7.3 x 9.2 inches
- Best Sellers Rank: #2,039,708 in Books (See Top 100 in Books)
- #574 in Software Design & Engineering
- #1,819 in Computer Programming Languages
- #2,615 in Software Development (Books)
- Customer Reviews:
About the authors
Discover more of the author’s books, see similar authors, read book recommendations and more.
Discover more of the author’s books, see similar authors, read book recommendations and more.
Customer reviews
- 5 star4 star3 star2 star1 star5 star85%15%0%0%0%85%
- 5 star4 star3 star2 star1 star4 star85%15%0%0%0%15%
- 5 star4 star3 star2 star1 star3 star85%15%0%0%0%0%
- 5 star4 star3 star2 star1 star2 star85%15%0%0%0%0%
- 5 star4 star3 star2 star1 star1 star85%15%0%0%0%0%
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonTop reviews from the United States
There was a problem filtering reviews. Please reload the page.
- Reviewed in the United States on December 7, 2002I started a bit skeptical about pairing until I read this book. After completing the book I realized that I was thoroughly mistaking about my premature conclusions and comments on the topic.
This is a very thorough, interesting and entertaining book. After reading it from cover to cover, I realized that pair-programming is not only a good thing-in many instances for most software processes-but that it addresses a problem that many individual in our field suffers from-and I am a prime examplar of a programmer with some form of the symptoms of that problem:
General lack of social skills, or interest, for interacting, communicating and working in teams to create "good" large software... as well as sharing our knowledge without prejudice and with humility. Not too mention dealing with our not so small egos...
I also realized that in some sense, I have experienced (positively) some form of pair-programming without really knowing it. At the large software company where I work, we do spend a fair amount of time reviewing code and coaching, which reminds me of some of the tactics that is proposed in the book. Further, in a recent project I personally did spend a lot of time in a "coaching" role (as the lead) with the team... and the feedback I got from members of the team was only positive.
I am convinced now that my initial attitude and thoughts towards pairing was wrong and was based on misunderstanding and probably on recollections of "expert-novice" pairing that I had experienced a few times in the past; and which is singled out in the book as one instance where pairing might not work well. Further, my "soloist" programming background coupled with a more introverted personality does not help the matter. However, I do also realize that any decent software system (delivered in competitive business time and quality) has to be done by a team and is not a trivial endeavor-I speak from experience here. So breeding "soloist" programmers is not in the interest of the field nor is it for any company. Finally, as is indicated many times, pairing might also be a lot more fun.
I know now what changes I will be pushing for, in my next project.
- Reviewed in the United States on October 13, 2002I was inspired by the book "Extreme Programming Explained" by Kent Beck and we started to use pair programming. Since that we had a lot of unanswered questions:
- how to spread the pair programming practice across our organization,
- how to argue with the people who did never try pair programming but was against it,
- how to overcome management resistance to pair programming,
- how to gain support and acceptance from our peers,
- how to organize workplace layout in details, how to rotate pairs ...
This book has answered all the questions.
The authors did the awesome homework analyzing lots of books related to project management, software development and human relations. You will find lots of references. However, the book contains only a few authors' own assertion. The authors prefer to base on someone else's books and publications, logically combining and deducing them.
The most valuable aspect of the book is that the authors have interviewed lots of Pair Programming experts, who gave the answers to most specific questions.
- Reviewed in the United States on January 1, 2013I purchased this book as a gift. The recipient seemed to enjoy the book. Being a programmer, I think this book is a great help.
- Reviewed in the United States on August 22, 2005A well-rounded discussion of pair programming, this book presents not only where pair programming excels, but also where the problems lie. Whether you are looking for a sales pitch, implementation advice, or statistical data from pair programming studies, the book contains useful information for project managers, technical leads, and developers alike.
Part One covers general information about pair programming. It dispels some of the fear and uncertainty that revolves around the practice (myths) and highlights some of the positive aspects that can be derived (synergistic behaviors). It includes a chapter titled "Overcoming Management Resistance to Pair Programming" which lists achievable goals that any project manager would wish for. In addition, there's a short chapter on selling pair programming to reluctant peers. But the authors warn that it is probably best to use a pyramid marketing approach and just let the advocates sell it for you versus forcing it on staff. Part One closes with a list of problems to avoid when implementing pairing.
Part Two explains in less than 30 pages how to implement pair programming from the workspace layout to "Tips 'n Tricks" for making it work better. If read and applied carefully, this last chapter may help the developer looking for implementation advice to save a failing pair programming attempt. That alone makes this book a worthwhile read!
Part Three spans close to half of the book and walks through the various pairings that might occur when you have different technical abilities (expert, average, novice), sex, race, and attitudes involved in the process. Each of the technical ability pairings is examined with both positive and negative aspects highlighted. Relevant anecdotal information from experienced pair programmers is also included.
Part Four looks at pair programming as part of a software process, in particular, Extreme Programming (XP) and the Collaborative Software Process (CSP). The chapter on XP reviews the process in 10 pages and explains why the authors believe pair programming is an integral part of the process. The CSP chapter is derived from the author Laurie Williams' dissertation and is an extension of XP and Watt's Humphrey's Personal Software Process (PSP).
Part Five closes the book out with edge case information on pair programming in a distributed environment, using it in an educational setting, the continued relevance of code inspections, and more. Also included is a "Seven Habits of Effective Pair Programmers" list which couples nicely with the "Tips 'n Tricks" chapter in Part Two.
You will also find useful information in the appendices. There is a Pair Programming Tutorial designed to lead people through a half-day pair programming exercise. An economic analysis of an empirical study conducted at the University of Utah looks at supporting data from both an efficiency and economic perspective.
Pros
* Covers pair programming from multiple perspectives.
* Advises on improving pair programming sessions.
* Contains empircal data supporting the practice.
Cons
* Part Three could have been abbreviated but is easily scanned for relevant information.
Top reviews from other countries
-
toriyamaxReviewed in Japan on February 24, 2013
5.0 out of 5 stars ペアを組むとは、人間性を問われること
私の所属するチームでもペアプログラミングは『やろう!』という掛け声はかかるのですが、特別な場合(デバッグ時のレビューに近い)を除いてやられていません。
この本では、いかにペアプログラミングがいいか?という視点も確かにあります。
同時にペアプログラミングは、結局どういう特性をもった人(内向的、外向的、新人、専門家・・・)がペアを組むかの問題で、そのそれぞれについて固有の欠点や利点があるという視点が非常に明快でした。
プログラマはどこか内向的である・・・という一文はなるほどと思いました。
-
あまReviewed in Japan on March 29, 2012
4.0 out of 5 stars 一度は読むべきです
ペアプログラミングについて、ここまで詳しく書いてある本は無いでしょう。
登場人物が多いのが気になりましたが、よく研究されている内容だと思いました。
ペアプロ多少やったことは有るのですが、改めて重要性に気付きました。