Pair Programming Testing 2, October 14, 2004. Administration  Project due Monday 2PM SHARP  Remember all parts of documentation (list of tests, project.

Slides:



Advertisements
Similar presentations
What is Engineering?.
Advertisements

Facilitation skills & Group based learning
How to teach heterogeneous groups
Leadership in Pharmacy
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
Teaming Up. Teams A group of people working together to accomplish a task.
Rationale To encourage all students to take a full part in the life of our school, college, workplace or wider community. To provide opportunities to enable.
Participating in Your Child’s IEP Meeting
Project Management Workshop. Nick Cook  Citigroup Corporate and Investment Bank  European Technology Business Office Manager Edinburgh University April.
Gild Project – Explorations….. CSc 115/160 (S01) Pair Programming.
Management and Leadership
Individuals and interactions
COMP4710 Senior Design Software Development Process.
Coaching for Superior Employee Performance Techniques for Supervisors.
CS 4730 Play Testing CS 4730 – Computer Game Design Credit: Several slides from Walker White (Cornell)
AIMS & OBJECTIVES AIM: To allow delegates an opportunity to practise Teamwork in a practical way using a series of outdoor activities OBJECTIVE: To develop.
Chapter 6 Effective Strategies to Get the Job You Want: Interviewing Strategies Copyright Raymond Gerson.
Mixed-level English classrooms What my paper is about: Basically my paper is about confirming with my research that the use of technology in the classroom.
Soft Skills for a Digital Workplace: Verbal Communication Unit D: Improving Informal Communication.
Module 1 Using Teamwork Skills
Thinking Actively in a Social Context T A S C.
Coaching Skills for Leaders Workshop Date 13th March 2014 Facilitator Mike White.
Conservation District Supervisor Accreditation
The Effective Project Manager Chapter 2 Copyright © 2010 by the McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill/Irwin.
“This Isn’t a Juggling Act – This is Your Job!”
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Chapter 4 Performance Management and Appraisal
Performance Development at The Cathedral of the Incarnation A Supervisor’s Guide.
Pair Programming. XP Rule of Thumb “When something is difficult or painful, do it more often until it becomes easier.”
/0903 © 2003 Business & Legal Reports, Inc. BLR’s Human Resources Training Presentations Coaching Techniques.
 2009 Pearson Education, Inc. All rights reserved. 1 Pair Programming Most slides courtesy of Ms. Stephany Coffman-Wolph Some slides with minor modification.
Team Roles. Logvinovich Kristina BTK91. Meredith Belbin. Meredith Belbin is a British researcher and management theorist, best known for his work on management.
LEADERSHIP Leadership What is a leader? Who is a leader? Can I be a leader?
What IS a Journeyman Programmer? Why this program?
Pair Programming (PP). What Is Pair Programming [1] XP (Extreme Programming) practise ”Two programmers working side-by-side, collaborating on the same.
Software Testing and Maintenance 1 Code Review  Introduction  How to Conduct Code Review  Practical Tips  Tool Support  Summary.
Asperger’s Working In A Team by Neil Morgenstern.
Adaption of Agile Development Technique Chak Chi Sio 4/21/2010.
What does “assertiveness” mean?. In this lesson you will learn: The meaning of “being assertive” The difference between being assertive and being aggressive.
© ABSL Power Solutions 2007 © STM Quality Limited STM Quality Limited Brainstorming TOTAL QUALITY MANAGEMENT Brainstorming.
Everyone Communicates Few Connect
Sophie Makris  What is a team?  A group of people pooling their skills, talents, and knowledge, with mutual support and resources, to provide.
Make Learning Fun! Form a STUDY GROUP
Creativity & Leadership Jeanne Michalski, Ph.D.. Creativity & Leadership MANAGEMENT vs. LEADERSHIP.
JFK-103B1W2 JFK-102B3W2.  Are you having trouble with your skills?  We can help you with that! Our training program has helped many people all across.
Copyright 2010, The World Bank Group. All Rights Reserved. Testing and Documentation Part II.
Australian Teacher Performance and Development Framework Consultation proposal.
How to Write Lesson Plan Using the Cooperative Group Instructional Model.
TEAMING UP. TEAM A group of people working together to accomplish a task.
Interactive Learning PHCL 482 Seminar 2. Interactive Teaching Involves facilitator and learners Encourage and expect learners to participate Use questions.
What is Facilitation? Facilitation is the process of taking a group through learning or change in a way that encourages all members of the group to participate.
Module 3.3.  Understand the value of learning in groups  Discover what the role of the tutor is during group sessions  Learn how to manage groups effectively.
Attending Meetings at School Louise Mottershead Aspire North West 2015.
September 2010 Arlene W. Williams Marshall School of Business PLEASE SIT IN TEAMS.
The Process of Decision Making Much of a supervisor’s job is making decisions that cover all of the functions of management. In many cases, supervisors.
© BLR ® —Business & Legal Resources 1408 Teambuilding for All Employees.
TEAMWORK A FEW NOTES. THIS MAY BE YOUR MOST COMPREHENSIVE, REALISTIC TEAM PROJECT EXPERIENCE IN COLLEGE … 8 weeks A beginning and an end Consistent team.
JavaScript Introduction and Background. 2 Web languages Three formal languages HTML JavaScript CSS Three different tasks Document description Client-side.
Interpersonal Skills.
Cooperative Learning Listening to the Experts (Teachscape HYIS Resources) Ceri Dean English 9-12 Video.
Methods of Training.
Sample Wiki Comments?.
Action learning Session Two
INTERVENTION Goal Zero. No Harm. No Leaks..
ENCORE – STEM CLASS Ms. Abraham.
Computational Thinking for KS3
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
Presentation transcript:

Pair Programming Testing 2, October 14, 2004

Administration  Project due Monday 2PM SHARP  Remember all parts of documentation (list of tests, project retrospective, etc.)  Zip everything into one file  EasyMock matcher

EasyMock Matcher  Easymock by default uses Object.equals() type comparison  For arrays, this doesn’t look at content  Solution: the first time you call a method that takes an array as a parameter, set the matcher before setting return value

EasyMock Example String [] cards = [“card 1”, “card 2”, “card 3”]; mock.addCards(cards); control.setMatcher(MockControl.ARRAY_M ATCHER); control.setVoidCallable;

Pair Programming  Driver and Navigator working together on one task  Roles changing often  Collective responsibility for outcome  Bringing together of multiple perspectives, experiences, abilities, and expertise

Why pair?  Higher quality code  Faster cycle time  Enhanced trust/teamwork  Knowledge transfer  Enhanced learning  More fun

Higher quality code  Immediate reviews of all code written  Multiple perspectives on how code should work  People from different areas (UI/database, development/testing) working together – no (incorrect) assumptions  Each person learns from the other – increased skills

Faster cycle time  Less temptation/ability to get distracted on non-work things  Less rework due to bad assumptions  Fewer defects slip through, so less rework for defect repair  Less interruption for pair  More communication

Enhanced Trust/Teamwork  People in pairs get to know each other better than people working solo  Better understanding of people’s skills  Shared events = common ground

Knowledge Transfer  Rotation of pairs means lots of combinations  Lots of combinations make knowledge transfer exponential  No one person is indispensible  Fewer assumptions

Enhanced Learning  Each member of a pair has ongoing opportunities to learn from their partner

More Fun  Social interactions while still accomplishing work  Shared events  Studies show high numbers of people trying pair programming prefer it

Why Pair Programming Works  Pair Pressure  Pair Negotiation  Pair Courage  Pair Reviews  Pair Debugging  Pair Learning  Pair Trust

Pair Pressure  Each member doesn’t want to let the other down  Improved adherence to procedures and standards  Motivation to get a task done in a session while partner is available

Pair Negotiation  Working together to get the best solution  Distributed Cognition  Each pair member has Own set of skills, abilities, outlook. Shared goal of accomplishing task Suggested means of means of goal  Brainstorming (building on ideas of others)

Pair Courage  Having a partner agree with a fix or a solution adds confidence to the solution  Two people expressing confusion are more confident to go get the help they need

Pair Reviews  Members of pairs are immediately reviewing code as it is written  Two heads better than one

Pair Debugging  Effective debugging technique is to explain problem to someone else  Talking about problem in a pair can lead to a solution becoming obvious

Pair Learning  Apprenticeship model (beginner acquires learning from observing expert)  No two people are at exact same levels of knowledge on software development  Exposure to different approaches

Pair Trust  See enhanced trust/teamwork slide

Problems in Pair Programming  Unavailability of partners  Scheduling  Experts/Skill Imbalances  Concentration  Disagreements  Overconfidence  Rushing  Not for everyone

Enabling Pair Programming  Accessible workspace  Communication  Standards  Knowledge of people’s specialties  Pair rotation  Group appraisal  Smaller groups

Workspace accessible to both  Display visible to both people  Side by side, not one in front of the other  Keyboard/mouse available to either person

Expectation of communication  Ask to drive  Ask questions  Explain actions taken

Standards  Standard tools reduce learning curve time in pairs  Coding standards assist in both members following the code being written and avoid disagreements on how to write something

Knowledge of people’s specialties  Know who to pair with to achieve benefit in a given situation  If a task overlaps two areas (e.g., UI and database) pair one person from each area

Pair Rotation  No given pair of programmers is the right pair for every situation  Rotation enables knowledge transfer

Group Appraisal  Tasks are now completed by more than one person  Recognizing one person generally ignores contribution from other team members who paired for part or all of the task

Smaller Groups  Large groups benefit from pairing, but lose some of the trust and knowledge transfer effects

Roles  Driver Actually types or writes down Explains actions taken Participates in brainstorming/planning  Navigator Watches for tactical and strategic defects Questions Participates in brainstorming/planning

Navigator Tips  Delay a little to let driver find and correct their own mistakes (particularly typo-level)  If you’re getting bored/falling asleep, ask for the keyboard  If the driver is getting frustrated, ask for the keyboard  If you couldn’t take over at any point, ask questions or ask for the keyboard  Use active listening  Talk  Ask questions

Driver Tips  If navigator bored/falling asleep, give them the keyboard  If you’re tired, pass the keyboard  If you’re frustrated with something, pass the keyboard  Acknowledge navigator  Explain what & why  Talk  Answer questions  Don’t just dictate – brainstorm/design together

Discussion  What’s working in Project 1 pairs?  What’s not working?