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

Slides:



Advertisements
Similar presentations
USAGE AND PERCEPTIONS OF AGILE SOFTWARE DEVELOPMENT IN AN INDUSTRIAL CONTEXT Andrew Begel, Nachiappan Nagappan Microsoft Research ESEM 2007 September 21,
Advertisements

Overview of the Interaction Design Process. Objectives By the end of today’s class you will be able to… –Describe the major steps in the interaction design.
Software Development Life-Cycle Models
Software development process improvement Ville Wettenhovi Master thesis presentation Supervisor:Professor Jukka Manner Instructor:M.Sc. Markus Aalto Date:23th.
What is Software Design?. Systems Development Life- Cycle Planning Analysis Design Implementation Design.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
CS3773 Software Engineering Lecture 01 Introduction.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Alternative Software Life Cycle Models By Edward R. Corner vol. 2, chapter 8, pp Presented by: Gleyner Garden EEL6883 Software Engineering II.
Alternate Software Development Methodologies
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Essentials of Systems Analysis and Design Fourth Edition Joseph S. Valacich Joey F.
Review: Agile Software Testing in Large-Scale Project Talha Majeed COMP 587 Spring 2011.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Collaboration: Software Development, Learning James Chisan February, 2003.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Problem Analysis Intelligence Step 2 - Problem Analysis Developing solutions to complex population nutrition problems (such as obesity or food insecurity)
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
Company LOGO B2C E-commerce Web Site Quality: an Empirical Examination (Cao, et al) Article overview presented by: Karen Bray Emilie Martin Trung (John)
HFSD Methods Nov HFSD Methods Objectives –To consider types of systems –To characterise methods for HF input into SD –To identify HF contributions.
Using Soft Systems Methodology to Understand how to Exploit Learning Technologies in Developing Countries C. Sanga, & I.M. Venter, Computer Science Department.
Embedding Security into a Software Development Methodology April 5 th, 8:30 AM Jonathan Minter Director, IT Development and Engineering Liberty University.
WHAT DO WE KNOW ABOUT AGILE SOFTWARE DEVELOPMENT? Author : Tore Dyba and Torgeir Dingsoyr Reporter : 卓卿安.
User Experience Design Goes Agile in Lean Transformation – A Case Study (2012 Agile Conference) Minna Isomursu, Andrey Sirotkin (VTT Technical Research.
Agile Process: Overview n Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Two Strategies for Developing Solid Referral Relationships A Complete Training Series.
Margaret J. Cox King’s College London
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
TEACHING FOR CIVIC CAPACITY AND ENGAGEMENT : How Faculty Align Teaching and Purpose IARSLCE 2011 | CHICAGO Jennifer M. Domagal-Goldman | November 3, 2011.
Investigating Trust Factors in Computer Mediated Group Collaboration Xusen Cheng Manchester Business School The University of Manchester, UK.
Implementation and Management of an Information Systems Practicum in a Graduate Computer Information Technology Curriculum S amuel C onn, Asst. Professor.
GCSE OCR 3 A451 Computing Professional standards
Interaction Design Process COMPSCI 345 S1 C and SoftEng 350 S1 C Lecture 5 Chapter 3 (Heim)
Ways for Improvement of Validity of Qualifications PHARE TVET RO2006/ Training and Advice for Further Development of the TVET.
Methods of Media Research Communication covers a broad range of topics. Also it draws heavily from other fields like sociology, psychology, anthropology,
INTERNATIONAL LABOUR ORGANIZATION Conditions of Work and Employment Programme (TRAVAIL) 2012 Module 13: Assessing Maternity Protection in practice Maternity.
PAPER PRESENTATION: EMPIRICAL ASSESSMENT OF MDE IN INDUSTRY Erik Wang CAS 703.
Human Computer Interaction
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.
HOW TO WRITE RESEARCH PROPOSAL BY DR. NIK MAHERAN NIK MUHAMMAD.
Management & Development of Complex Projects Course Code MS Project Management Perform Qualitative Risk Analysis Lecture # 25.
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.
Introduction of the Curriculum for Prospective NHTI Faculty NHTI Coordinating Committee Association of College & University Housing Officers – International.
Empirical Software Engineering in Industry Short Courses David Janzen, Clark Turner California Polytechnic State University San Luis Obispo, CA Hossein.
IMPACT OF QUALITY ASSURANCE SYSTEM IN EFFECTIVENESS OF VOCATIONAL EDUCATION IN ALBANIA IMPACT OF QUALITY ASSURANCE SYSTEM IN EFFECTIVENESS OF VOCATIONAL.
Marketing Research Approaches. Research Approaches Observational Research Ethnographic Research Survey Research Experimental Research.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Onboarding, Finding experts,
Surveying instructor and learner attitudes toward e-learning Presenter: Jenny Tseng Professor: Ming-Puu Chen Date: April 12, 2008 Liaw, S., Huang, H.,
The Systems Development Environment Systems Analysis and Design II.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Introduction Requirements and the Software Lifecycle (3)
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
By Majesh reddy Salla. Introduction Factors for poor estimation Agile Process Agile effort estimation techniques Planning poker Analogy & Expert opinion.
APMG-International Webinar Integrating Agile into PRINCE2® Thursday 19 December 2013 / 13:00 GMT Presented by Melanie Franklin,
Lean Manufacturing Practices In Malaysian SMEs. 1.0Introduction Research Background Why Lean Manufacturing needs to be practiced in SMEs? Problem Statement.
Think Scrum, act Scrum Scrum Practitioner like a boss Thibault Clavier.
Agile Gintarė Bernotaitytė © 2013.
Realizing quality improvement through test driven development: Results and experiences of four industrial teams. by Nachiappan Nagappan, E Mchael Maximillien,
Software Development - Methodologies
CASE Tools and Joint and Rapid Application Development
Andrew Begel, Nachiappan Nagappan Microsoft Research
Introduction If you have got a call for an Agile testing interview, then congratulations are in order. You may be feeling nervous, but it sure to be felt.
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Topic 1: Introduction to the Module and an Overview of Agile
Extreme Programming (and Pair Programming)
Presentation transcript:

1 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Software Development Processes Kun Niu Spring, 2011 April 7 th D 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

2 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Agenda  Definition  Software Development Lifecycle  Software Programming Process  Software Development Activity  Summary

3 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Agenda  Definition

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

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

6 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Agenda  Definition  Software Development Lifecycle

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

8 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Exploratory Study Design A web-based survey  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 ( y) Survey Design  Survey sections: Demographic, Agile development, Pair programming  Card sort: free response for benefits and issues

9 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Collocation Data Use Agile? Collocated dynamics Yes No Not-collocated Same country 4 10 Same city 1 2 Same campus 8 12 Same building Same floor Same hallway Same office Total Many respondents using Agile of survey collocate in the same place

10 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Methodologies used

11 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Practices used

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

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

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

15 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College 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

16 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Room Layout

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

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

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

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

21 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Agenda  Definition  Software Development Lifecycle  Software Programming Process

22 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Test Driven Development

23 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz 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 organizations Process timelines and defect density measurement

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

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

26 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Result

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

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

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

30 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Research conducted by someone else

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

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

33 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Agenda  Definition  Software Development Lifecycle  Software Programming Process  Software Development Activity

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

35 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Pair programming history Beck’s book > 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

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

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

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

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

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

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

42 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Effect of Pair Programming on Work

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

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

45 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Agenda  Definition  Software Development Lifecycle  Software Programming Process  Software Development Activity  Summary

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

47 The INI is a cooperative endeavor of:College of EngineeringSchool of Computer Science Tepper School of BusinessHeinz College Questions & Comments