Connecting technical communicators with technical developers
Proceedings of the 20th annual international conference on Computer documentation
Pair Programming: Addressing Key Process Areas of the People-CMM
Proceedings of the Second XP Universe and First Agile Universe Conference on Extreme Programming and Agile Methods - XP/Agile Universe 2002
Exploring the Efficacy of Distributed Pair Programming
Proceedings of the Second XP Universe and First Agile Universe Conference on Extreme Programming and Agile Methods - XP/Agile Universe 2002
Circle of Life, Spiral of Death: Are XP Teams Following the Essential Practices?
Proceedings of the Second XP Universe and First Agile Universe Conference on Extreme Programming and Agile Methods - XP/Agile Universe 2002
Introducing XP into Greenfield Projects: Lessons Learned
IEEE Software
Knowledge Sharing: Agile Methods vs. Tayloristic Methods
WETICE '03 Proceedings of the Twelfth International Workshop on Enabling Technologies: Infrastructure for Collaborative Enterprises
Experiences with pair programming at a small college
Journal of Computing Sciences in Colleges
A pair-programming experiment in a non-programming course
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
On understanding compatibility of student pair programmers
Proceedings of the 35th SIGCSE technical symposium on Computer science education
ACE '04 Proceedings of the Sixth Australasian Conference on Computing Education - Volume 30
Program quality with pair programming in CS1
Proceedings of the 9th annual SIGCSE conference on Innovation and technology in computer science education
Technical and human perspectives on pair programming
ACM SIGSOFT Software Engineering Notes
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Piloting XP on Four Mission-Critical Projects
IEEE Software
Journal of Computing Sciences in Colleges
Voices of women in a software engineering course: reflections on collaboration
Journal on Educational Resources in Computing (JERIC) - Special Issue on Gender-Balancing Computing Education
A multiple case study on the impact of pair programming on product quality
Proceedings of the 27th international conference on Software engineering
Sangam: a distributed pair programming plug-in for Eclipse
eclipse '04 Proceedings of the 2004 OOPSLA workshop on eclipse technology eXchange
Extreme programming promotes extreme learning?
ITiCSE '05 Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education
Student performance in CS1 with distributed pair programming
ITiCSE '05 Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education
Utilizing verification and validation certificates to estimate software defect density
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Teaching software engineering practices with Extreme Programming
Journal of Computing Sciences in Colleges
Software architecture improvement through test-driven development
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Software architecture improvement through test-driven development
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Perceptions of extreme programming: an exploratory study
ACM SIGSOFT Software Engineering Notes
Analysis of the interaction between practices for introducing XP effectively
Proceedings of the 28th international conference on Software engineering
Student attitudes toward pair programming
Proceedings of the 11th annual SIGCSE conference on Innovation and technology in computer science education
An empirical comparison between pair development and software inspection in Thailand
Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering
Towards evidence-supported, question-directed collaborative program comprehension
CASCON '06 Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research
Integrating traditional and agile processes in the classroom
Proceedings of the 38th SIGCSE technical symposium on Computer science education
Collaborative programming projects in an advanced CS course
Journal of Computing Sciences in Colleges - Papers of the twelfth annual CCSC Northeastern Conference
The Social Dynamics of Pair Programming
ICSE '07 Proceedings of the 29th international conference on Software Engineering
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Evaluating Pair Programming with Respect to System Complexity and Programmer Expertise
IEEE Transactions on Software Engineering
Collaboration and the importance for novices in learning java computer programming
Proceedings of the 12th annual SIGCSE conference on Innovation and technology in computer science education
Pair programming in software development teams - An empirical study of its benefits
Information and Software Technology
Proceedings of the 2008 symposium on Eye tracking research & applications
Video analysis of pair programming
Proceedings of the 2008 international workshop on Scrutinizing agile practices or shoot-out at the agile corral
Teaching operating systems: student assignments and the software engineering perspective
Proceedings of the 2008 international workshop on Software Engineering in east and south europe
Collaborative learning: towards a solution for novice programmers
ACE '08 Proceedings of the tenth conference on Australasian computing education - Volume 78
Pair programming and the mysterious role of the navigator
International Journal of Human-Computer Studies
Pair programming in CS1: overcoming objections to its adoption
ACM SIGCSE Bulletin
A development environment for distributed synchronous collaborative programming
Proceedings of the 13th annual conference on Innovation and technology in computer science education
Exploring the underlying aspects of pair programming: The impact of personality
Information and Software Technology
The influence of organizational culture on the adoption of extreme programming
Journal of Systems and Software
Pair programming: what's in it for me?
Proceedings of the Second ACM-IEEE international symposium on Empirical software engineering and measurement
A Lightweight Approach for Knowledge Sharing in Distributed Software Teams
PAKM '08 Proceedings of the 7th International Conference on Practical Aspects of Knowledge Management
From twin training to pair programming
Proceedings of the 2nd India software engineering conference
An experimental investigation of personality types impact on pair effectiveness in pair programming
Empirical Software Engineering
The effectiveness of pair programming: A meta-analysis
Information and Software Technology
Pair dynamics in team collaboration
Computers in Human Behavior
Proceedings of the 2005 conference on Software Engineering: Evolution and Emerging Technologies
Supporting agile team composition: A prototype tool for identifying personality (In)compatibilities
CHASE '09 Proceedings of the 2009 ICSE Workshop on Cooperative and Human Aspects on Software Engineering
Construction of interaction observation systems for collaboration analysis in groupware applications
Advances in Engineering Software
Early development of graphical user interface (GUI) in agile methodologies
Journal of Computational Methods in Sciences and Engineering
Personality and the nature of collaboration in pair programming
ESEM '09 Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement
ESEM '09 Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement
Compatibility of partnered students in computer science education
Proceedings of the 41st ACM technical symposium on Computer science education
Embracing change: an XP experience report
XP'03 Proceedings of the 4th international conference on Extreme programming and agile processes in software engineering
How to build support for distributed pair programming
XP'07 Proceedings of the 8th international conference on Agile processes in software engineering and extreme programming
Inspecting automated test code: a preliminary study
XP'07 Proceedings of the 8th international conference on Agile processes in software engineering and extreme programming
An agile approach for integration of an open source health information system
XP'07 Proceedings of the 8th international conference on Agile processes in software engineering and extreme programming
On the effectiveness of unit test automation at Microsoft
ISSRE'09 Proceedings of the 20th IEEE international conference on software reliability engineering
Towards knowledge assisted agile requirements evolution
Proceedings of the 2nd International Workshop on Recommendation Systems for Software Engineering
A dozen ideas for engaging CS1 students
Journal of Computing Sciences in Colleges
Using the context of algorithmic art to change attitudes in introductory programming
Journal of Computing Sciences in Colleges
Exploratory comparison of expert and novice pair programmers
CEE-SET'08 Proceedings of the Third IFIP TC 2 Central and East European conference on Software engineering techniques
Evaluation of user gestures in multi-touch interaction: a case study in pair-programming
ICMI '11 Proceedings of the 13th international conference on multimodal interfaces
Software process improvement with agile practices in a large telecom company
PROFES'06 Proceedings of the 7th international conference on Product-Focused Software Process Improvement
PROFES'06 Proceedings of the 7th international conference on Product-Focused Software Process Improvement
A framework for understanding the factors influencing pair programming success
XP'05 Proceedings of the 6th international conference on Extreme Programming and Agile Processes in Software Engineering
Software development and experimentation in an academic environment: the Gaudi experience
PROFES'05 Proceedings of the 6th international conference on Product Focused Software Process Improvement
The collaborative nature of pair programming
XP'06 Proceedings of the 7th international conference on Extreme Programming and Agile Processes in Software Engineering
Is external code quality correlated with programming experience or feelgood factor?
XP'06 Proceedings of the 7th international conference on Extreme Programming and Agile Processes in Software Engineering
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Disengagement in pair programming: does it matter?
Proceedings of the 34th International Conference on Software Engineering
Proceedings of the 34th International Conference on Software Engineering
Proceedings of the 34th International Conference on Software Engineering
ACM Transactions on Computing Education (TOCE)
Pair annotation: adaption of pair programming to corpus annotation
LAW VI '12 Proceedings of the Sixth Linguistic Annotation Workshop
On the effects of pair programming on thoroughness and fault-finding effectiveness of unit tests
PROFES'07 Proceedings of the 8th international conference on Product-Focused Software Process Improvement
A groupware system to support collaborative programming: Design and experiences
Journal of Systems and Software
Liberating pair programming research from the oppressive Driver/Observer regime
Proceedings of the 2013 International Conference on Software Engineering
Cooperative learning instructional methods for CS1: Design, implementation, and evaluation
ACM Transactions on Computing Education (TOCE) - Special Issue on Alternatives to Lecture in the Computer Science Classroom
Combinatorial pair testing: distinguishing workers from slackers
WADS'13 Proceedings of the 13th international conference on Algorithms and Data Structures
Social effects of pair programming mitigate impact of bounded rationality
Proceedings of the 45th ACM technical symposium on Computer science education
Evaluating industry-inspired pair programming communication guidelines with undergraduate students
Proceedings of the 45th ACM technical symposium on Computer science education
Hi-index | 0.00 |
From the Book: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 Section 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 who want to try and those who would rather not try, from those 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 Section Two, we deal with some operational details of pairinglike 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 Section Three, we explain benefits and shortcomings of many different kinds of pairs and the context when 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.Section 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 Section Five with some future directions and by enumerating Seven Habits of Effective PairProgrammers. Who Should Read This BookWe'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 upon your role, may we suggest the following process for reading this book: Software developers and team leaders/coaches who haven't tried pair programming yet will find Section 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's for you. If you are currently being forced into pair programming, Chapter 6 will give you some guidance. Then, you can move on to the chapters in Section Two to get into some of the more operational issues you will need to deal with in a transition to pair programming. Chapter 27, the Seven Habits of Effective Pair Programmers will get you started on the right track. Appendix A, the 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 out skimming Chapters 1-3. Much of this will be review for you, but you may pick up some additional insight. Then, you can move on to the chapters in Section Two to get into some of t more operational issues. Section Three will be particularly important in guiding you to choosing the best pair for the task at hand. Chapter 27, the 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-First Design with pair programming. QA personnel might be wondering how to handle a development team that has 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-First Design. Managers should start out by reading the first four chapters and Chapter 7 of Section One. Then, if you are trying to convince a team to try pair programming, Chapter 6 will be helpful for you. Chapter 6 advises you to run a Pair Programming Tutorial, which is outlined in Appendix A, with your team. Section Two provides information about operational issues of pair programming. Chapter 26 provides information on some directions pair programming may lead to. Educators should read the first four chapters of Section One to gain a good basic understanding of the technique. Chapters 8, 10 and 11 will provide some tactical information about your students. Depending upon the skill level and mix of your students, you can choose some chapters in Section Three. Chapter 26 should appeal to your academic research interests. Chapter 27 provides good information to share with your students. App written with you in mind, and provides some sound tactical advice for using pair programming in your classroom. Who Wrote This BookThe authors of this book are Laurie Williams and Bob Kessler. Laurie has a BS in Industrial Engineering from Lehigh University, an MBA from Duke, and a PhD in Computer Science from the University of Utah. She has also worked for IBM for nine years in various manufacturing, software development and management positions. She is currently an Assistant Professor in the Computer Science department at North Carolina State University. Bob has a BS, MS and PhD in Computer Science from the University of Utah. He has founded several companies and is on the board of several others. He is currently a full professor in the School of Computing at the University of Utah. As we're sure you surmise, the great benefit that comes from pair programming comes from the social interactions between the partners. Thus, as you might expect, there are social issues involved. Although not trained sociologists, both of us have many years of experience in software development. Thus, our views on the social interactions are grounded in our management experience and provide our fundamental basis for solving the various problems and issues.You might be wondering how we assimilated all the information in this book. We've done pair programming ourselves. We performed an extensive, formal experiment of pair programmers versus solo programmers, which yielded groundbreaking results. We've observed professional and student pair programmers. We've talked with or presented to thousands of experienced pair programmers, those considering pair programming and anti-pair programmers. We've also done two extensive surveys of professional pair programmers. We've heard lots of wonderful endorsements of pair programming, and we've heard every reason in the book why it won't work. We'll be quoting statistics from these surveys, presenting data gathered in our studies, and relaying lots of information from all these sources and our own experiences.