Pair Programming Collaboration in Software Development Process.

Slides:



Advertisements
Similar presentations
Pair Programming Langr Software Solutions Originally presented to the Phoenix XP Users Group, October 2002 Last updated 2010.
Advertisements

Help! I’m in an Abusive Relationship
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
Managing Innovation in Educational Organisations Andy Hockley, Hox & Erix SRL Quest Conference, Iasi June 2009.
Pair Programming: Why Have Two Do the Work of One from Laurie Williams North Carolina State University.
All I Ever Need to Know about Testing I Learned in Kindergarten Column by Lee Copeland As presented by Andy Sawyer.
Be a Great Time Manager. You think you know…but you have no idea…  TM is nothing but common sense.  I do well is school, so I must be managing my time.
Roles Within Institutions
Working with Groups Working with Groups Much of your work as a mentor will be working with a group. This is a particular and valuable.
CS 3500 L12pp - 1 The Benefits of Pair Programming Robert Kessler School of Computing University of Utah Special thanks to Laurie Williams North Carolina.
System Analysis (Part 1)
BSBIMN501A QUEENSLAND INTERNATIONAL BUSINESS ACADEMY.
PD1: Getting started.
Gild Project – Explorations….. CSc 115/160 (S01) Pair Programming.
March 25, 2002R McFadyen a lightweight approach to software development. about 5 years old has been used at: Bayerische Landesbank, Credit Swiss.
13-Jun-15 Extreme Programming. 2 Software engineering methodologies A methodology is a formalized process or set of practices for creating software An.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Introduction to eXtreme Programming (XP) Collaboration in Software Development Process.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
COMP4710 Senior Design Software Development Process.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
Decision Making 1. Write Smart Co. has a very specific decision making process that it follows for handling client problems that has been quite successful.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Pair Programming Testing 2, October 14, Administration  Project due Monday 2PM SHARP  Remember all parts of documentation (list of tests, project.
Lecturer: Gareth Jones Class 2: The Writing Process.
McGraw-Hill/Irwin 2010 Modified by Jackie Kroening 2011 PEOPLE, GROUPS, AND THEIR LEADERS Chapter 8.
1 People Improve Performance Voice Satisfaction Motivation Influence.
Module 1 Using Teamwork Skills
Working in Groups Decision-making processes. Why work in a group? Working in groups is a vital part of every job Groups are more productive than individuals.
Pair Programming. XP Rule of Thumb “When something is difficult or painful, do it more often until it becomes easier.”
Professional Development to Practice The contents of this presentation were developed under a grant from the US Department of Education to the Missouri.
GREEN IMPACT Handy hints to help you through 2015/16 GREEN IMPACT PROJECT ASSISTANTS GIPAs.
Best Practices in Partnering Julia King Tamang
Address to the FCBA by Commissioner Kevin J. Martin February 1, 2001.
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
Pair Programming (PP). What Is Pair Programming [1] XP (Extreme Programming) practise ”Two programmers working side-by-side, collaborating on the same.
Getting Ready for Kindergarten At Carrville Mills P.S.
WAY TO YOUR OWN BUSINESS – BUSINESS IDEA. BUSINESS LIFE CYCLE Idea Business plan Business funding, organising Developing product / service Marketing BAU.
Game Project IMGD 4000 Due Dates: Form Teams Treatment Website Tech milestone AlphaApril 17 Beta Final Presentation.
Approaches to Problem Solving. There are many approaches to problem-solving. What follows in this PowerPoint are several that provide an opportunity for.
CS 110: Introduction to Computer Science Introduction to Collaborative Learning and Programming Practices.
Welcome to the sharing best practice group Theme: Sharing our gifts.
By Robert Fulghum Wisdom was not at the top of the graduate school mountain, but there in the sandpile at Sunday School. ALL I REALLY NEED TO KNOW ALL.
Grade 9 Human Sexuality Course. Self-concept Self-concept: According to our textbook, self- concept is the mental image you have about yourself. It is.
Systems Development Life Cycle
Improvement Model and PDSA Cycles. Organ Donation The Service Improvement Model provides a framework to test, implement and sustain change ideas to overcome.
Test Driven Development Daniel Brown dxb17u. Introduction Originates from Extreme Programming (XP) Proposed by Kent Beck in Test Driven Development.
Taking too many breaks from the search, particularly after making progress. It's OK to take the occasional breather, but don't allow yourself lengthy breaks.
Introduction to Computing Concepts Note Set 5. Pair Programming* Used in Software development 2 developers working at the same computer ▫ Driver – Person.
Course design by M.E. Ellen Graber Curriculum design and EFL/ESL.
25-Feb-16 Extreme Programming. 2 Software engineering methodologies A methodology is a formalized process or set of practices for creating software An.
Groups Dynamics and Teams Development. Groups, Teams and Organizational Effectiveness Group –Two or more people who interact with each other to accomplish.
RESOLVING CONFLICTS. Passive accepting or allowing what happens or what others do, without active response or resistance. Examples?
n Taking Notes and Keeping a Journal n Listening Skills n Working Together n Managing Your Time.
Communication Applications Unit 3:2 Group member Roles & Responsibilities.
Presented by The Solutions Group Decision Making Tools.
FRIENDS. What is a Friend?  A friend is someone you like and who likes you.  A friend is someone you can talk to.  A friend is a person who shares.
Breakthrough Leadership PROJECT MANAGEMENT IN A MATRIX ENVIRONMENT.
Team Contracts We can work together! Copyright © Texas Education Agency, All rights reserved. 1.
All I need to know I learned in Kindergarten by Robert Fulghum.
Game Project IMGD 4000 Due Dates: Form Teams Treatment Website
"All I Ever Really Needed to Know I Learned in Kindergarten"
All I Really Need to Know I Learned in Kindergarten
Pair Programming.
Extreme Programming Extreme programming is "a lightweight methodology for small-to-medium-sized teams developing software in the face of vague or rapidly.
Applied Software Project Management
Introduction to Collaborative Learning and Programming Practices
Lecture 5: Writing Page
How to Get Along with Difficult People
"All I Ever Really Needed to Know I Learned in Kindergarten"
Presentation transcript:

Pair Programming Collaboration in Software Development Process

Introduction Two programmers working side by side as stated by Kent Beck in Extreme Programming (XP) in Objective is to improve software Quality and reduce Time-to-Market. Pairs enjoy problem-solving process and outperform individual programmers. They have greater confidence in their solutions.

Pair Jelling Two programmers jointly produce one artifact. One partner is the driver and has control of the pencil/mouse/keyboard and is writing the design or code. The other person continuously and actively observes the work of the driver (watching for defects, thinking alternatives, looking up resources, and considering strategic implications of the work at hand).

Pair analysis and Pair design It is important for the pair to collectively agree on the development direction and strategy outlined during these stages. “Two brains are better than one” when performing analysis and design. Significantly decreases the probability of proceeding with a bad design. Other partner can think more strategically about implications of the design. Avoid “design tunnel vision”.

Pair implementation One programmer types into the computer while the other is actively engaged in observing, performing a continuous code review. Efficient form of defect removal: removed right from the start. Drawback: most programmers prefer to do a thorough review of their individual work and incorporate it into the project.

Pair Testing Is the least critical part of the development cycle, as long as the pair develops the test cases together. Testing discovers new bugs. Pair testing allows for different points of view on how to test an application, hence finding even more bugs.

Good Practices for Pair Programming Don’t hit your partner: make sure your partner stays focused and on- task. Put things back where they belong: have confidence but not too much confidence. Clean up your mess: The “watch over the shoulder” technique epitomizes defect prevention and efficient defect removal.

Good Practices for Pair Programming Don’t take things too seriously: “Ego-less programming” Say you’re sorry when you hurt somebody while moving furniture: Appropriate workspace layout is critical to the pair success. Wash your hands of skepticism before you start: develop an expectation of success and greet your collaborative partner.

Good Practices for Pair Programming Flush: Pair programmers will work on something independently, when rejoining your partner review your work done separately. When you go out into the world, watch out for traffic, hold hands and stick together: your work is done together, do not leave your partner apart. Be aware of the power of two brains: You remember better, more knowledge and skills.

Good Practices for Pair Programming Take a break from working together every afternoon: experiment new prototypes, deep-concentration, logical thinking is preferred to do it alone. Live a balanced life – learn some and think some and draw and paint and sing and dance and work every day some.

Issues in Pair Programming How do you create a good pair?  One personality might consume the other. Or two clashing personalities might not get work done. Programmers tend to split work for more rote, routine and simple coding of a project. Design review might be best in larger numbers (Design Review Boards). But Design alone is better in small numbers.

Issues in Pair Programming What is a conducive workplace?  Offices and cubicles are regular settings for offices that hinder pair programming.  “Like many kings, some managers use divide-and-conquer tactics to rule their subjects, but programmers need contact with other programmers.” (Weinberg 1998).

Issues in Pair Programming How much time should it occupy in a work day?  Many programmers do not agree how much time they should give for pair programming.  From all-day extreme, to few minutes a day. Alternative Solutions: “Distributed pair programming” (Baheti, Gehringer, Stotts).

Interviews and Results An experiment in Temple University showed that pair programmers produced 40% more quickly and effectively. Contrary to the notion of managers that believe that it would mean a 100% increase of production time. 96% stated that they enjoyed their job more than when they programmed alone.

Interviews and Results Design is good in pairs, even better in 3-5 members. But more than that it hinders (never reach to an agreement). Pair programmers is a positive form of peer pressure. Simple tasks should be done alone, but by pair design you can identify which tasks need to be done in pairs. Pairs enjoy their work more because they are more confident in their results.

Interviews and Results Good way to bounce new ideas off. You can spend more time doing challenging design and less time doing annoying debugging (due to better quality of product). “We nailed that one” feeling. People who are forced to pair-program despite their resistance might not do well.