Pair Programming (PP). What Is Pair Programming [1] XP (Extreme Programming) practise ”Two programmers working side-by-side, collaborating on the same.

Slides:



Advertisements
Similar presentations
Performance Coaching and Discipline Without Punishment
Advertisements

Outcomes and Standards. Outcome Curricular statements describing how students will integrate knowledge, skills, and values into a complex role performance.
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
30-Apr-15 Extreme Programming. 2 Software engineering methodologies A methodology is a formalized process or set of practices for creating software An.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #7 Software Engineering.
Gild Project – Explorations….. CSc 115/160 (S01) Pair Programming.
1 Software Testing and Quality Assurance Lecture 34 – SWE 205 Course Objective: Basics of Programming Languages & Software Construction Techniques.
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.
Pair Programming Collaboration in Software Development Process.
Brent Dingle Marco A. Morales Texas A&M University, Spring 2002
Systems Analysis and Design Kendall & Kendall Sixth Edition
Fundamentals of Software Development 1Slide 1 Pair Programming: What is it? What is it?What is it? Two programmers working side-by-side, collaborating.
CS 410 Applied Algorithms Applied Algorithms Lecture #1 Introduction, class information, first problems.
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.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Chapter 2- Software Process Lecture 4. Software Engineering We have specified the problem domain – industrial strength software – Besides delivering the.
Secretary & Publicity Officer Training Chris Kilin Socs Committee Member.
Pair Programming Testing 2, October 14, Administration  Project due Monday 2PM SHARP  Remember all parts of documentation (list of tests, project.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Project Management Fundamentals Project Organization and Integration
Maximising on Talent during a Recruitment Freeze.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
1 Software Construction Software Construction Chapter 1.
Software Engineering Modern Approaches
Chapter 4 Agile Development
TEAMWORK A FEW NOTES. MAYBE YOUR ONLY FULL-SCALE TEAM PROJECT AT WWU … 8 weeks A beginning and an end Consistent team membership Negotiation of schedules.
Software Quality Assurance in Neuroinformatics H Jeremy Bockholt NITRC Grantee Meeting.
Fundamentals of Software Development 1Slide 1 Today’s summary Attitudes toward learning:Attitudes toward learning: –Working in groups –Learning by doing.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
T Project Review TeXlipse [I2] Iteration
1 Software Process Models-ii Presented By; Mehwish Shafiq.
CUSP for VAP: EVAP Shadowing Another Professional Kathleen Speck, MPH November 14, 2013.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
June 05 David A. Gaitros Jean Muhammad Introduction to OOD and UML Dr. Jean Muhammad.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
University of Palestine software engineering department Testing of Software Systems Program Inspections, Walkthroughs, and Reviews instructor: Tasneem.
Software Engineering Saeed Akhtar The University of Lahore Lecture 5 Originally shared for: mashhoood.webs.com.
1 Chapter 3 1.Quality Management, 2.Software Cost Estimation 3.Process Improvement.
Writing Software Documentation A Task-Oriented Approach Thomas T. Barker Chapter 5: Analyzing Your Users Summary Cornelius Farrell Emily Werschay February.
CS 110: Introduction to Computer Science Introduction to Collaborative Learning and Programming Practices.
T Iteration Demo Team 13 I1 Iteration
Extreme programming (XP) Variant of agile Takes commonsense practices to extreme levels © 2012 by Václav Rajlich1.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
 Presented by:  Dr.Cherry Steffen  Kennesaw State University.
What is project management?
CS223: Software Engineering Lecture 4: Software Development Models.
T Iteration Demo Tikkaajat [PP] Iteration
25-Feb-16 Extreme Programming. 2 Software engineering methodologies A methodology is a formalized process or set of practices for creating software An.
INCOSE IW12 MBSE Workshop 15 INCOSE (MBSE) Model Based System Engineering Integration and Verification Scenario Ron Williamson, PhD Raytheon
Introduction to Software Engineering Muhammad Nasir Agile Software Development(2)
T Project Review Sotanorsu I2 Iteration
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
T Iteration Demo LicenseChecker I2 Iteration
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Chapter 5 Agile Development Moonzoo Kim KAIST
Methodologies and Algorithms
Project Management Processes
The Check List Method and Reverse Brainstorming
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.
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Introduction to Collaborative Learning and Programming Practices
Project Management Processes
Extreme Programming.
Presentation transcript:

Pair Programming (PP)

What Is Pair Programming [1] XP (Extreme Programming) practise ”Two programmers working side-by-side, collaborating on the same design, algorithm, code or test.” ”Driver” has control over keyboard/mouse ”Observer” [1] or ”Navigator” [5] continuously observes the work of the driver to identify tactical (syntactic, spelling, etc.) defects and also thinks strategically about the direction of the work Periodical role switches

Proposed advantages [2] Brainstorming –Two brains are better than one. –The observer challenges the drivers reasoning. Continuous Design Walkthrough –Observer can concentrate on the design and typos. –People tend to be blind to their own errors. Focused Energy –People tend to work more efficiently when challenged Mentor and Communications –Transfer information and understanding –Multiple people understanding different parts –Teams become better

Proposed advantages [2] Motivation –PP supposedly increases productivity and reduces errors. –Translates directly to programmer confidence and happiness Pair relaying [4] –Problem solving in isolation usually involves deadlocks, which are extremely time- consuming

Possible problems Counter-Productivity –2 programmers = 2 * time used Chemistry problems –Some pairs might not want to work together –Equal pairs might get too competitive [2] Some isolation left [2] –Two is better, but how about many pairs in same room?

Our use of PP Will start in I2 –Few well specified programming tasks in I1 as the design is under construction –Architectural challenges make I1 critical and risky. No extra confusion needed. –Collaborative development already via IRC

Objectives Assessment of the technique –The power of PP is not universally recognized Better communication and understanding –Design pairs such that information about different parts of the system diffuses effectively Higher productivity –PP supposedly raises productivity Better quality –PP supposedly produces better code

Execution Test phase in I2 –constrained application –some problems with facilities and timetables –playing it safe architectural challenges bring uncertainty New assessment in I3 –Usage ramped up if no major obstacles are identified –Desicion not based on measured data

Execution Scheduled group sessions in I2 –single room (Maarintalo), 3 pairs, 2 hours, 1 per week Experiences suggest pair isolation is bad Volume can be increased in I3 –no new practises –produce more accurate measurement data

Execution Planned in weekly sessions –tasks predefine the tasks to tackle no hassle in sessions –groups make pairs with uneven knowledge of the task and alter roles –time preferably regular times

Assessment Measure produced LOC –Use custom tool integrated with CVS –LOC/Effort with PP (includes planning) –Total LOC/Effort –Disciplined PP brings bias Measure defects –Use bugzilla –Reported errors created in PP / LOC –Reported errors created in single programming / LOC Final results in separate PP document.

References [1] [2] [3] DF DF [4] a.PDF a.PDF [5] [6]