Present by Monvorath Phongpaibul “Molly”

Slides:



Advertisements
Similar presentations
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
Advertisements

Resource Information - Mental Fitness. Factors that Affect Performance Player FactorsSituation Factors.
Pair Programming: Why Have Two Do the Work of One from Laurie Williams North Carolina State University.
CS 3500 L12pp - 1 The Benefits of Pair Programming Robert Kessler School of Computing University of Utah Special thanks to Laurie Williams North Carolina.
Gild Project – Explorations….. CSc 115/160 (S01) Pair Programming.
Important concepts in software engineering The tools to make it easy to apply common sense!
Pair Programming Collaboration in Software Development Process.
Fundamentals of Software Development 1Slide 1 Pair Programming: What is it? What is it?What is it? Two programmers working side-by-side, collaborating.
COMP4710 Senior Design Software Development Process.
Cooperating Teacher and Teacher Candidate Workshop
Pair Programming Testing 2, October 14, Administration  Project due Monday 2PM SHARP  Remember all parts of documentation (list of tests, project.
Thinking Actively in a Social Context T A S C.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass of 39 CS3600: Software Engineering: Standards in Process Modeling CMM and PSP.
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.
Implementation Phase CS4311 – Spring 2008 References: Shach, Object Oriented and Classical Software Engineering E. Braude, Software Engineering, an Object-Oriented.
Pair Development Framework Monvorath (Molly) Phongpaibul.
1 CQA Training QUESTION BANK. 2 CQA Training QUESTION 1 THE TWO DEFINITIONS OF QUALITY ARE: QUALITY MEANS MEETING REQUIREMENTS QUALITY MEANS FIT FOR USE.
Digital Transformation with DevOps
Mental & Emotional health
Teacher Effectiveness Training (T.E.T)
MCOM 404: Community Journalism
Impact-Oriented Project Planning
Building the foundations for innovation
Unit 2 Putting the Customer First
10.3 Details of Recursion.
Growth Mindset vs Fixed Mindset
EXtreme Programming BY R.V.Ramesh MCA II Semester.
Cooperating Teacher and Teacher Candidate Workshop
From Fan To Pro: Using Your Hobbies in Your Career
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
© Julie Hodges and Roger Gill
Technology objectives
Software Project Planning &
A possible solution: Personal Software Process (PSP)
Motivation Theories Summary
7-2 Leadership Goals Describe the need for leadership skills and the characteristics of an effective leader. Identify the human relations skills needed.
Groups and Teams: Managing Teams NNA
Define groups and the stages of group development
Building a Team Province of Pensacola-Tallahassee April 2018
Engineering Overview Introduction to Engineering Design
Unit 6 Principles of Management
Motivation LET II.
Chapter 14 Decision Making and Control
Engineering Overview Introduction to Engineering Design
Pair Programming.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
happiness springs of itself.”
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
Core Values.
Preparing Primary Teachers to Use Cooperative Learning: A Case Study
Fields of Engineering Principles of EngineeringTM
Algorithms and Problem Solving
Change Readiness for Transition
Team Leader Training Human Factors
Engineering Overview.
Disciplines Of A Superior Programmer
Engineering Overview.
happiness springs of itself.”
EDTE 408 Principles of Teaching
Engineering Overview.
What is a System? A system is a collection of interrelated components that work together to perform a specific task.
Editing Process: English 10 Spoken Language
NOTICE! These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
Business Case Template
Extreme Programming (and Pair Programming)
and Negotiating Skills
Presentation transcript:

Present by Monvorath Phongpaibul “Molly” Pair Programming Present by Monvorath Phongpaibul “Molly”

Out line: Pair Programming Presentation Overview Related Work CSP Qualitative Results Quantitative Results

Overview

Overview “Two programmers working side-by-side, collaborating on the same design, algorithm, code or test. One programmer, the driver, has control of the keyboard/mouse and actively implements the program. The other programmer, the observer, continuously observes the work of the driver to identify tactical (syntactic, spelling, etc.) defects and also thinks strategically about the direction of the work. On demand, the two programmers can brainstorm any challenging problem. Because the two programmers periodically switch roles, they work together as equals to develop software” by -- Laurie Williams North Carolina State University Computer Science williams@csc.ncsu.edu

Related Work

Related Work PSP (Personal Software Process) Distributed Cognition

PSP (Personal Software Process)

PSP (Personal Software Process) By Watts S. Humphrey of Software Engineering Institute (SEI) Defines a software development framework: operations/sub-process, measurement and analysis techniques Purpose : Understand own skills in order to improve their own personal performance Composed of scripts and templates/ forms fill in

PSP Philosophies The longer a software defect remains in a product, the more costly it is to detect and remove it Defect prevention is more efficient than defect removal The best estimates, and therefore the best commitments, for schedule and defect rates can be made with a historical database of information CSP (Collaborative Software Process) is an extension of the PSP, and it relies upon the foundation of the PSP

Distributed Cognition Mick Flor (1991)

Distributed Cognition The sharing of goals and plans: Goals specify what needs to be done Plans specify the means by which the goals are achieved Efficient Communication: The current state of the problem combined with the programmers’ shared goals and plan are sufficient to determine the intent of most utterances Searching through larger spaces of alternatives: The actors bring different prior experiences to the task The actors may have different access to task relevant information The actors stand in different relationships to the problem by virtue of their functional roles Shared memory for old plans:

CSP (Collaborative Software Process)

CSP (Collaborative Software Process) Level CSP 0.0 Baseline/Current Process Baseline 0.1 Coding Standard Size Measurement Process Improvement Plan 1.0 Analysis (Use Case) Quality Management CRC Card Design Brainstorming Design 1.1 Code Review Design Reviews Testing Measurements 2.0 Size Estimation Project Management Resource Estimating 2.1 Task Planning Schedule Planning

Qualitative Results

Qualitative Results Summer 1999: pilot experiment with 20 undergraduate students in a web programming class Fall 1999: official experiment with 41 juniors and seniors students

Qualitative Results (cont.) Why Pair Programming is beneficial Pair-Pressure Pair-Think Pair-Relaying Pair-Reviews Debugging by Explaining Pair-Learning Team Building Project Risk Maslow’s Needs Hierarchy

Qualitative Results (cont.) Success Factors for Effective Collaboration Pair-Jelling Project Ownership Mutual-Respect and Self-Respect Ego-Less Programming Workspace Layout Taking Breaks

Why Pair Programming is beneficial?

Pair-Pressure The programmers admit to working harder and smarter on programs because they do not want to let their partner down “Two people working together in a pair treat their shared time as more valuable. They tend to cut phone calls short; they don’t check e-mail messages or favorite Web pages; they don’t waste each others time” All assignments on time and average grade was 98%

Pair-Thinking “We often came up with different ideas about how the design should go and the result of arguing over which one was better often led to a truly superior hybrid design”

Pair-Relaying “One problem with single programming is that you can forget….

Pair-Reviews The earlier a defect is found in a product, the cheaper it is to fix the defect. “Four eyeballs are better than two”

Debugging by Explaining “When I explained an idea to my partner, I concentrated on what I was saying, and carefully made things clear and logical because I did not want to confuse my partner and I wanted him to understand what I was talking about. It helped me better understand the problem I was addressing. It also helped me discover some mistakes I had made but did not notice before I talked with my partner.”

Pair-Learning The continuous reviews of collaborative programming create a unique educational capability, where by the pairs are endlessly learning from each other “The process of analyzing and critiquing software artifacts produced by others is a potent method for learning about languages, application domains, and so forth”

Team Building “A baseball manager recognizes a nonphysical talent, hustle, as an essential gift of great players and great teams. It is the characteristic of running faster than necessary, moving sooner than necessary, trying harder than necessary. It is essential for great programming teams too. Hustle provides the cushion, the reserve capacity, that enables a team to cope with routine mishaps, to anticipate and forefend minor calamities.”

Project Risk “How many of few people would have to be hit by a truck before the project is incapacitated?” Ans: “ONE” With Pair Programming, the risk from losing key programmers is reduced.

Maslow’s Needs Hierarchy Self Actualization Needs Esteem Needs Belongingness and Love Needs Safety, Security Needs Physiological Needs (Food, Water)

Success Factors for Effective Collaboration

Pair-Jelling “A jelled team is a group of people so strongly knit that the whole is greater than the sum of the parts. The production of such a team is greater than that of the same people working in unjelled form. Just as important, the enjoyment that people derive from their work is greater than what you'd expect given the nature of the work itself. In some cases, jelled teams working on assignments that others would declare downright dull have a simply marvelous time. … Once a team begins to jell, the probability of success goes up dramatically. The team can become almost unstoppable, a juggernaut for success”

Pair Ownership “With pair programming, the two programmers become one. There should be no competition between the two; both must work for a singular purpose, as if the artifact was produced by a singular good mind. Blame for problems or defects should never be placed on either partner. The pair needs to trust each other’s judgment and each other’s loyalty to the team”

Mutual-Respect and Self-Respect “And indeed, there can be no doubt of von Neumann's genius. His very ability to realize his human limitation put him head and shoulders above the average programmer today . . . . Average people can be trained to accept their humanity -- their inability to function like a machine -- and to value it and work with others so as to keep it under the kind of control needed if programming is to be successful.”

Ego-Less Programming “Ego-less programming,” an idea surfaced by Gerald Weinberg in The Psychology of Computer Programming a quarter of a century ago, is essential for effective pair programming. According to the pair programming survey, excess ego can manifest itself in two ways, both damaging the collaborative relationship. First, having a “my way or the highway” attitude can prevent the programmer from considering others ideas. Secondly, excess ego can cause a programmer to be defensive when receiving criticism or to view this criticism as mistrust.

Workspace Layout

Taking Breaks Have some break: disconnect from the task and refresh

Quantitative Results

The Experience Report from PP

Quantitative Results An Economic Evaluation of the Pair Programming Pair Quality Pair Time Net Present Value Analysis Engineer Satisfaction Pair Satisfaction Pair Confidence

An Economic Evaluation of the Pair Programming

Pair Quality Postdevelopment Test Cases Passed

Pair Time Elapsed Time

Net Present Value Analysis Cost Savings Of CSP Through Time

Engineer Satisfaction

Pair Satisfaction

Pair Confidence