Software Development Processes Kun Niu Spring 2011 April

  • Slides: 47
Download presentation
Software Development Processes Kun Niu Spring, 2011 April 7 th 05 -899 D Human

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

Agenda § § § Definition Software Development Lifecycle Software Programming Process Software Development Activity

Agenda § § § Definition Software Development Lifecycle Software Programming Process Software Development Activity Summary The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 2

Agenda § Definition The INI is a cooperative endeavor of: College of Engineering Tepper

Agenda § Definition The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 3

Definition • Software Development Lifecycle - Also known as a software development process, is

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. ) The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 4

Why do people do research in these fields? • • • Improve the probability

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 The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 5

Agenda § Definition § Software Development Lifecycle The INI is a cooperative endeavor of:

Agenda § Definition § Software Development Lifecycle The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 6

Usage and Perceptions of Agile Software Development in an Industrial Context: An Exploratory Study

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 The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 7

Exploratory Study Design • A web-based survey Email to 2, 821 recipients out of

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 The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 8

Collocation Data Collocated dynamics Not-collocated Same country Same city Same campus Same building Same

Collocation Data Collocated dynamics Not-collocated Same country Same city Same campus Same building Same floor Same hallway Same office Total Use Agile? Yes No 12 4 1 8 24 68 25 14 156 29 10 2 12 35 138 76 18 321 Many respondents using Agile of survey collocate in the same place The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 9

Methodologies used The INI is a cooperative endeavor of: College of Engineering Tepper School

Methodologies used The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 10

Practices used The INI is a cooperative endeavor of: College of Engineering Tepper School

Practices used The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 11

Team attitudes and morale factors 60% people agree Agile work well for them and

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. The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 12

Benefits and problems Problems Benefits Why not use? The INI is a cooperative endeavor

Benefits and problems Problems Benefits Why not use? The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 13

Threats to validity • Participants bias • Unknown team size and group size •

Threats to validity • Participants bias • Unknown team size and group size • Difficult to generalize because of different Microsoft’s product context The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 14

Rapid Software Development through Team Collocation [Stephanie, 2002] • A field study conducted at

Rapid Software Development through 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 The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 15

Room Layout The INI is a cooperative endeavor of: College of Engineering Tepper School

Room Layout The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 16

Measures • Productivity Metrics Function points normalized by certified Functional Points Foundation Group Member

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 The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 17

Measure results(pilot teams) Productivity Measures Satisfaction Measures The INI is a cooperative endeavor of:

Measure results(pilot teams) Productivity Measures Satisfaction Measures The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 18

Measure results (with subsequent team) Productivity Measures Satisfaction Measures Entry versus Exit questionnaire data

Measure results (with subsequent team) Productivity Measures Satisfaction Measures Entry versus Exit questionnaire data The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 19

Conclution • Benefits Improve productivity (timeboxing and facilities) • Issues Large projects No accurate

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 The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 20

Agenda § Definition § Software Development Lifecycle § Software Programming Process The INI is

Agenda § Definition § Software Development Lifecycle § Software Programming Process The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 21

Test Driven Development The INI is a cooperative endeavor of: College of Engineering Tepper

Test Driven Development The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 22

Evaluating the Efficacy of Test-Driven Development: Industrial Case Studies • Bhat, 2006 from Microsoft

Evaluating the Efficacy of Test-Driven Development: Industrial Case Studies • Bhat, 2006 from Microsoft • Two case studies, Windows and Messenger (A and B) Process timelines and defect density measurement Project organizations The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 23

Case Study A Product measures Context Factors Outcome measures The INI is a cooperative

Case Study A Product measures Context Factors Outcome measures The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 24

Case Study B Product measures Context Factors Outcome measures The INI is a cooperative

Case Study B Product measures Context Factors Outcome measures The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 25

Result The INI is a cooperative endeavor of: College of Engineering Tepper School of

Result The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 26

Threats to validity • High quality code resulted from a new process Alleviated by

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 The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 27

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

A Survey of Evidence for Test Driven Development in Academia • Chetan, 2008 • Surveys the current state of TDD experiments conducted at universities The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 28

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

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 The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 29

Research conducted by someone else The INI is a cooperative endeavor of: College of

Research conducted by someone else The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 30

TDD introduction & learning • Introduction Courses include > Explaining automated unit test >

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 The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 31

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

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. The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 32

Agenda § § Definition Software Development Lifecycle Software Programming Process Software Development Activity The

Agenda § § Definition Software Development Lifecycle Software Programming Process Software Development Activity The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 33

The Social Dynamics of Pair Programming • Jan 2007 • The paper presents a

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 The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 34

Pair programming history • Beck’s book <<Extreme Programming Explained>> There are two roles in

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 The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 35

Research • Four months ethnographic study • Two software development teams • Have a

Research • Four months ethnographic study • Two software development teams • Have a long history of pair programming The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 36

Findings • Both software development teams differed greatly from the driver and navigator roles

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. The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 37

Implication of the research • • • The pairs appeared to be most effective

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 The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 38

Pair Programming: What’s in it for Me? • Begel, 2008 • Report on a

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 The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 39

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

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 The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 40

Previous study result • Different universities have opposite results in PP research • Different

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. The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 41

Effect of Pair Programming on Work The INI is a cooperative endeavor of: College

Effect of Pair Programming on Work The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 42

PP benefits & problems Benefits The INI is a cooperative endeavor of: Problems College

PP benefits & problems Benefits The INI is a cooperative endeavor of: Problems College of Engineering Tepper School of Business School of Computer Science Heinz College 43

Attributes of good programming partners and teams Attributes of Good Partners The INI is

Attributes of good programming partners and teams Attributes of Good Partners The INI is a cooperative endeavor of: College of Engineering Tepper School of Business Attributes of Good Teams School of Computer Science Heinz College 44

Agenda § § § Definition Software Development Lifecycle Software Programming Process Software Development Activity

Agenda § § § Definition Software Development Lifecycle Software Programming Process Software Development Activity Summary The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 45

Session Summary • Software development lifecycle • • • Tools tend to provide quantitative

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 The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 46

Questions & Comments The INI is a cooperative endeavor of: College of Engineering Tepper

Questions & Comments The INI is a cooperative endeavor of: College of Engineering Tepper School of Business School of Computer Science Heinz College 47