47
1 The INI is a cooperative endeavor of: College of Engineering School of Computer Science Tepper School of Business Heinz College Software Development Processes Kun Niu Spring, 2011 April 7 th 05-899D Human Aspects of Software Development (HASD) The Information Networking Institute is a cooperative endeavor of: College of Engineering School of Computer Science Tepper School of Business Heinz College

1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

Embed Size (px)

Citation preview

Page 1: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

1The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Software Development Processes

Kun Niu

Spring, 2011

April 7th

05-899D Human Aspects of Software Development (HASD)

The Information Networking Institute

is a cooperative endeavor of:

College of Engineering

School of Computer Science

Tepper School of Business

Heinz College

Page 2: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

2The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Agenda

Definition Software Development Lifecycle Software Programming Process Software Development Activity Summary

Page 3: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

3The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Agenda

Definition

Page 4: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

4The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Definition

• Software Development Lifecycle- Also known as a software development process, is a structure imposed on the development of a software product. (Agile, Waterfall, etc.)[Wikipedia]

• Software Programming Process- The process of designing, writing, testing, debugging / troubleshooting, and maintaining the source code of computer programs (Test Driven Development, Model Driven Development, etc.)

• Software Development Activity- Detailed technique used in software programming process (Pair programming, Rubber duck debugging, etc.)

Page 5: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

5The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Why do people do research in these fields?

• Improve the probability of project success – Software development lifecycle

• Improve the productivity of the whole programming processes – Software programming process

• Improve the productivity of a specific phase of software programming process – Software programming activity

Page 6: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

6The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Agenda

Definition Software Development Lifecycle

Page 7: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

7The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Usage and Perceptions of Agile Software Development in an Industrial Context: An Exploratory Study [Begel, 2007]

• Contribution• Try to understand how Agile Software Development methodologies

are used in large scale industry

• Dominant agile practices and methodologies

• Common benefits and problems associated with ASD

Page 8: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

8The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Exploratory Study Design

• A web-based survey Email to 2,821 recipients out of 28,000

• Demographic (response) 18% for developers 18% for testers 10% for managers Average 9.2 years of software development experience (0 - 35 y)

• Survey Design Survey sections: Demographic, Agile development, Pair

programming Card sort: free response for benefits and issues

Page 9: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

9The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Collocation Data

Use Agile?Collocated dynamics Yes No

Not-collocated 12 29Same country 4 10 Same city 1 2 Same campus 8 12 Same building 24 35 Same floor 68 138 Same hallway 25 76 Same office 14 18 Total 156 321

Many respondents using Agile of survey collocate in the same place

Page 10: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

10The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Methodologies used

Page 11: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

11The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Practices used

Page 12: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

12The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Team attitudes and morale factors

60% people agree Agile work well for them and their team.Less than 40% people think Agile can work for large groups.

Page 13: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

13The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Benefits and problemsBenefits

Problems

Why not use?

Page 14: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

14The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Threats to validity

• Participants bias

• Unknown team size and group size

• Difficult to generalize because of different Microsoft’s product context

Page 15: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

15The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Rapid Software Developmentthrough Team Collocation [Stephanie, 2002]

• A field study conducted at a fortune 500 auto mobile company

• Collocated software development team using Rapid Software Development Center

• Six projects from different areas of the company

• Prototyping, iterative development using “timeboxing”

• Report by a combination of case study and empirical evaluation

Page 16: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

16The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Room Layout

Page 17: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

17The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Measures• Productivity Metrics

Function points normalized by certified Functional Points Foundation Group Member

• Cycle Time Number of months per 1000 functions

• User Satisfaction Composite of factors like ease of use, system performance etc.

• Measures of Team Experiences How often they will use rooms and hoteling space, conference room

Page 18: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

18The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Measure results(pilot teams)

Productivity Measures

Satisfaction Measures

Page 19: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

19The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Measure results (with subsequent team)Productivity Measures

Satisfaction Measures

Entry versus Exit questionnaire data

Page 20: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

20The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Conclution

• Benefits Improve productivity (timeboxing and facilities)

• Issues Large projects No accurate quality information Don’t know if the increased productivity was due to Hawthorne

Page 21: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

21The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Agenda

Definition Software Development Lifecycle Software Programming Process

Page 22: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

22The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Test Driven Development

Page 23: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

23The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Evaluating the Efficacy of Test-Driven Development: Industrial Case Studies

• Bhat, 2006 from Microsoft

• Two case studies, Windows and Messenger (A and B)

Project organizationsProcess timelines and defect

density measurement

Page 24: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

24The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Case Study AContext Factors

Outcome measures

Product measures

Page 25: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

25The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Case Study BContext Factors

Outcome measures

Product measures

Page 26: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

26The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Result

Page 27: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

27The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Threats to validity

• High quality code resulted from a new process Alleviated by the fact that all were professional programmers who

had their own tasks

• The projects may be easier and the comparison may be in accurate Alleviated by the projects in the same organization and the

complexity may be to the same degree

• Hard to generalize in different environment and different contexts The authors are trying to collect data from other TDD projects

Page 28: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

28The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

A Survey of Evidence for Test DrivenDevelopment in Academia• Chetan, 2008

• Surveys the current state of TDD experiments conducted at universities

Page 29: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

29The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Misconceptions about TDD

• You create a 100% regression test suite. Not always cost-effective(UI)

• Unit tests form 100% of your design specification. Design document is necessary

• You only need to unit test. System integration test, performance test

• TDD does not scale. Divide into small suites

Page 30: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

30The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Research conducted by someone else

Page 31: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

31The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

TDD introduction & learning

• Introduction Courses include

> Explaining automated unit test> Describing TDD> Providing document> Supplying examples

Edward introduced at the beginning of the class, and used throughout the entire experiment

> Reinforce may be a key

• Learning Incremental instructional approach Test driven learning – Learn by example

Page 32: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

32The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Conclusion

• TDD exposes students to analytical and comprehension skills needed in software testing

• TDD tends to help students with the design of complex projects, and increases student confidence.

• Test-driven development reveals valuable software testing skills to fledgling programmers; the next step is figuring out how and when to introduce it into a curriculum.

Page 33: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

33The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Agenda

Definition Software Development Lifecycle Software Programming Process Software Development Activity

Page 34: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

34The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

The Social Dynamics of Pair Programming

• Jan 2007

• The paper presents a series of pair programming interactions drawn from a long term ethnographic study of two software development teams

• Term used in pair programming such as “driver” and “navigator” may not be right

Page 35: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

35The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Pair programming history

• Beck’s book <<Extreme Programming Explained>>There are two roles in each pair. One partner, the one with the

keyboard and the mouse, is thinking about the best way to implement this method right here. The other partner is thinking more strategically:

- Is this whole approach going to work?

- What are some other test cases that might not work yet?

- Is there some way to simplify the whole system so the current problem just disappears?

• Few studies focuses on the nature of interactions

Page 36: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

36The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Research

• Four months ethnographic study

• Two software development teams

• Have a long history of pair programming

Page 37: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

37The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Findings

• Both software development teams differed greatly from the driver and navigator roles described in the academic and practitioner literature

• When the two programmers had equivalent expertise, they engaged jointly in programmer activities.

• When the distribution of task-relevant expertise differed, the programmer with more expertise dominated the interaction.

• Keyboard control had a subtle, but consistent effect on decision making.

Page 38: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

38The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Implication of the research

• The pairs appeared to be most effective when both programmers took on driver and navigator responsibilities

• Programmers felt more engaged in their tasks when they either had keyboard control or keyboard control was imminent

• Expertise emerges as a particularly important factor influencing pair interactions Pairing less knowledgeable programmers with more knowledge

programmers did seem to be effective when the less knowledgeable programmer was new to the team and code base

• Programming partner rotation appeared to be effective in ensuring increased dispersion of code knowledge across the team, rotating late in the task may break up an effectively functioning pair and introduce a new programmer in a disadvantaged position

Page 39: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

39The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Pair Programming: What’s in it for Me?

• Begel, 2008

• Report on a longitudinal evaluation of pair programming at Microsoft Corporation

• Understand how pair programming methodologies are used, what kinds of problems and benefits they are perceived to have, the types of partners people would like to work, and a general consensus on PP‟s usefulness in the software engineering professional community

• A web-based survey of Microsoft developers

Page 40: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

40The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Contribution

1. Quantitative data on the adoption of pair programming in a large software company.

2. The perceived benefits and problems of pair programming.

3. The characteristics an engineer looks for in an ideal pair programming partner and team.

4. The perception that pair programming produces higher quality code at the expense

Page 41: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

41The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Previous study result

• Different universities have opposite results in PP research

• Different industrial projects also have different result

• Conclusion from the author Pair programming appears to be very different in academic than in

industry In academia, pair programming is used for education and has

positive effects on student retention. In industry, there is little research on pair programming, and what

little there is shows conflicting results. No good qualitative assessment of how professional programmers

might explain these results.

Page 42: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

42The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Effect of Pair Programming on Work

Page 43: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

43The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

PP benefits & problems

Benefits Problems

Page 44: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

44The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Attributes of good programming partners and teams

Attributes of Good Partners Attributes of Good Teams

Page 45: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

45The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Agenda

Definition Software Development Lifecycle Software Programming Process Software Development Activity Summary

Page 46: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

46The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Session Summary

• Software development lifecycle• Tools tend to provide quantitative data to help manager’s judgment

• How to generalize the result is still a problem (Can be solved?)

• How to improve the accuracy of result?

• Software programming process TDD is a widely researched field both in industry and in academic How to make people accommodate it is still a problem

• Software development activity Pair programming in XP is popular Industry studies show difference real use and academic research

Page 47: 1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes

47The INI is a cooperative endeavor of: College of Engineering School of Computer Science

Tepper School of Business Heinz College

Questions & Comments