Adopting Extreme Programming - the Benefits and Obstacles December 5, 2002 By Patricia Cleary.

Slides:



Advertisements
Similar presentations
Are Parametric Techniques Relevant for Agile Development Projects?
Advertisements

Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
SDLC – Beyond the Waterfall
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Alternate Software Development Methodologies
Clinton Keith CTO, High Moon Studios Agile Methodology in Game Development: Year 3.
Agile Process Models. Prescriptive models don’t work It is unrealistic to not have changes. Why? The Agile Manifesto: Individuals and interactions over.
Agile development By Sam Chamberlain. First a bit of history..
 The Rise of Computer Science ◦ Machine Language (1 st Gen) ◦ Assembly Language (2 nd Gen) ◦ Third Generation Languages (FORTRAN, BASIC, Java, C++, etc.)
Agile Requirements Methods CSSE 371 Software Requirements and Specification Mark Ardis, Rose-Hulman Institute October 26, 2004.
Agile Methods and Extreme Programming CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 23, 2007.
Agile Methodology: The New Wave in Software Development By Patricia Cleary Thesis Hypothesis: The agile methodologies are better than the current methodology.
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
The Challenge to Survive in Today’s Software Development Environment Evaluating the Agile Methodology.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Agile Process: Overview n Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software.
An Agile View of Process
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Chapter 3 – Agile Software Development Lecture 1 1Chapter 3 Agile software development.
Dr. Tom WayCSC Software Processes CSC 4700 Software Engineering.
Software Engineering Modern Approaches
Chapter 4 Agile Development
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Current Trends in Systems Develpment
Extreme Programming(XP)
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Extreme Programming Daniel Baranowski 3/29/06. What is Extreme Programming? An agile development methodology Created by Kent Beck in the mid 1990’s A.
Embracing change with Extreme Programming Method Engineering Erik ten Brinke
Chapter 3 – Agile Software Development Pepper modification of Sommerville presentation & Colm O’hEocha – AgileInnovation Ltd presentation 1Chapter 3 Agile.
Unified Process versus Extreme Programming. Outline Compare and contrast UP and XP  Processes / Disciplines  Management  Artefacts Risk management.
1 e X treme P rogramming D. Dranidis September 2000 CITY College.
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.
1 Software Process Models-ii Presented By; Mehwish Shafiq.
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.
Chapter 3 Agile Software Development (1/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
Software Engineering Saeed Akhtar The University of Lahore Lecture 5 Originally shared for: mashhoood.webs.com.
THE AGILE MENTALITY CHAPTER Topics  Why Use Agile and Scrum?  Agile Development –Manifesto for Agile Software Development  Scrum Methodology.
CS3100 Software Project Management Agile Approaches.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Agile Methodology Paul Mohrbacher. Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through.
Agile Software Development By Kshitij Limaye CSC 532.
Agile Software Development Jeff Sutherland, one of the developers started it In February 2001, 17 Tools: continuous integration, automated or xUnit test,
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
EXtreme Programming and Open Source engineering paradigm A comparison
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Embedded Systems Software Engineering
Chapter 5 Agile Development Moonzoo Kim KAIST
Agile Methods SENG 301.
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Extreme Programming.
Waterfall and Agile Quality Techniques
Copy rights  Exam Eligibility  Exam Pattern  Pre requisites  Content Distribution  Tools and Techniques  Domains and Tasks for.
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger Joanne M. Atlee 4th Edition.
Agile Process: Overview
Chapter 3: Agile Software Processes
Introduction to XP.
Extreme Programming (and Pair Programming)
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

Adopting Extreme Programming - the Benefits and Obstacles December 5, 2002 By Patricia Cleary

12/03/2002Copyright Patricia Cleary Version Agenda b Hypothesis b Background b Analysis b Results b Conclusion

12/03/2002Copyright Patricia Cleary Version Hypothesis –The practices of Extreme Programming help to develop better software systems than the other traditional methodologies such as Waterfall. –Extreme Programming is easy to implement

12/03/2002Copyright Patricia Cleary Version Committee b Thesis Advisor: Dr. Larry Dribin b Thesis Committee: Dr. Larry Dribin, Dr. Xiaoping Jia, Mr. Hank Streeter

12/03/2002Copyright Patricia Cleary Version Background

12/03/2002Copyright Patricia Cleary Version Why the need for software development processes? b Build quality software b On time b On budget b Meets the customer’s requirements

12/03/2002Copyright Patricia Cleary Version Waterfall Process [Dribin]

12/03/2002Copyright Patricia Cleary Version Issues with Waterfall Model b Documentation intensive b Requirements must be defined up front b Customer waits a long time for first deliverable b Lots of overhead b Difficult to handle changing requirements b Specifications are hard to validate and use b Complete problem must be defined at start [Dribin]

12/03/2002Copyright Patricia Cleary Version Why Agile was Developed b Developed to resolve issues with Waterfall

12/03/2002Copyright Patricia Cleary Version History of Agile b Several agile processes were developed during the 1990’s b Group of Agile Developers gathered at lodge in February 2000 b Developed Agile Manifesto b Formed Agile Software Development Alliance

12/03/2002Copyright Patricia Cleary Version Agile Manifesto Values “Individuals and interactions over processes and tools “Working software over comprehensive documentation “Customer collaboration over contract negotiation. “Responding to change over following a plan.” [Agile Manifesto]

12/03/2002Copyright Patricia Cleary Version Why Agile? b Light weight b People focus b Adaptive b Less Documentation Intensive b Handles changing requirements better

12/03/2002Copyright Patricia Cleary Version Why Extreme Programming? b Adaptable set of guidelines b Inexpensive to implement -- no extra software costs or licensing fees b Handles changing requirements b Increases productivity b Reduces defect count

12/03/2002Copyright Patricia Cleary Version Extreme Programming Practices b Planning Game b Small Releases b Metaphor b Simple Design b Testing b Collective Ownership b Pair Programming b Refactoring b Continuous Integration b 40-hour workweek b On-site customer b Coding Standards

12/03/2002Copyright Patricia Cleary Version Research Study b Created survey to determine validity of hypothesis b Analyzed the projects based on background, implementation approach, and benefits and costs. b Any metrics performed were included b Sent out 20 surveys b 7 surveys returned b 6 successful implementations

12/03/2002Copyright Patricia Cleary Version Survey Response Demographics b Below results taken from the survey responses [Survey Respondents]

12/03/2002Copyright Patricia Cleary Version Survey Response Demographics b Project Backgrounds: 3 projects previously used Waterfall process; 4 projects used code and fix approach; 5 companies were large to mid size; 2 companies were start ups b Project Description: 1 maintenance project; mix of desktop and web applications b Various industries -- automotive, financial, security

12/03/2002Copyright Patricia Cleary Version Survey Response Demographics b Duration: few months to one year; 1 project lasted 3.5 years; first deliverable ready at 6 months b Systems were mid to large size b Implementation: 6 projects implemented XP all at once b 1 project read Kent Beck’s book and then discussed; 1 project demonstrated practices via a prototype

12/03/2002Copyright Patricia Cleary Version Results

12/03/2002Copyright Patricia Cleary Version XP Practices Matrix

12/03/2002Copyright Patricia Cleary Version Analysis

12/03/2002Copyright Patricia Cleary Version Assessing Difficulty of Implementation

12/03/2002Copyright Patricia Cleary Version Ease of Implementation b 3 thought it was easy b 3 thought it was difficult b 1 felt it was easy and difficult at times

12/03/2002Copyright Patricia Cleary Version Ideas that Helped Implementation b 5 respondents believed in a supportive management b 3 respondents believed in excellent communication b 2 respondents wanted a focus on shorter releases b 4 respondents wanted more emphasis on testing

12/03/2002Copyright Patricia Cleary Version Other Ideas that Helped Implementation b Everyone wanted to do XP b Lessons learned meetings - able to enhance process b Iterative development on small tasks allows for system to be visible sooner b Test first and pair programming practices allow for transfer of knowledge b Practice test first practice as team so team develops habit of practice

12/03/2002Copyright Patricia Cleary Version Ideas that Hampered Implementation b Lack of accountability on business side b Individuals fought against adopting XP practices b Hard for customer to keep up with acceptance test writing or customer did not write acceptance tests b Getting the customer involved

12/03/2002Copyright Patricia Cleary Version Ideas that Hampered Implementation b Test practice is hard to sustain throughout project -- hard to change mindset b Pair programming is difficult because people need to get along b Complex architecture and multiple platforms b Lack of communication and automated tests b Disagreements that arose between the pair programmers

12/03/2002Copyright Patricia Cleary Version Other Obstacles  Took time to teach the customer how to write effective stories.  For a maintenance environment, almost every solution required significant refactoring to allow for test first to occur.  The company culture was entrenched in the idea of review and approval. They wanted to have design reviews.

12/03/2002Copyright Patricia Cleary Version Is Extreme Programming Better?

12/03/2002Copyright Patricia Cleary Version Measurements Performed b 1 project quantitatively measured productivity and quality - Productivity doubled and defect count was reduced to one tenth original levels b Other projects had subjective comments that supported Extreme Programming

12/03/2002Copyright Patricia Cleary Version Benefits b Customer decides what is developed when b Cross training produced an accelerated learning curve. Team is learning from each other b There was a great amount of personal growth and team morale was higher. b Everyone could at any time see where the system was because of continual integration and short release cycles.

12/03/2002Copyright Patricia Cleary Version Benefits b XP forces people to communicate frequently through planning game and code. b Individuals could work on any part of the system because the code was easy to understand and supported by a large number of tests. b Shortened feedback loop. Iterations were short and the customer was able to respond to requirements correctness.

12/03/2002Copyright Patricia Cleary Version Other Benefits

12/03/2002Copyright Patricia Cleary Version Increased Productivity & Quality b Maintenance project showed quantitative measures. b Productivity was doubled b Defects were reduced to one tenth the original levels b Fewer defects = happier customers b If metrics hold true, then XP would have quantitative support to convince others

12/03/2002Copyright Patricia Cleary Version Knowledge Transfer b 4 respondents agreed that there is a tremendous amount of knowledge transfer b New developers sharpen skills b Team learns product quickly b Confidence levels are higher b Team members develop greater respect for each other

12/03/2002Copyright Patricia Cleary Version Customer Input b 3 respondents agreed that customer input was a benefit b Ability to prioritize allows for flexibility as requirements change b Customer knows what is being developed and is able to correct misunderstandings early on

12/03/2002Copyright Patricia Cleary Version Improved Communication b 5 respondents commented on the importance of communication b Forces team to communicate often b Done via planning meetings, pair programming, and the code b Everyone knows what is going on and system is visible to everyone

12/03/2002Copyright Patricia Cleary Version Possible Reasons for Benefits

12/03/2002Copyright Patricia Cleary Version People Factor b Half of respondents commented on the people factor in XP b Focuses on people; people not treated as resources b Everyone is different -- hard for everyone to always get along b There was maturity, personal growth, and higher degree of self confidence b Encourages respect of people

12/03/2002Copyright Patricia Cleary Version Testing b Unit testing (programmer) and functional (customer) b Tests are written first. Code is written to fulfill tests -- hard to adapt to this philosophy b Allows for only what is needed to be coded b Need to determine correct number of tests b 4 respondents would improve this area on another implementation

12/03/2002Copyright Patricia Cleary Version On Site Customer b All projects believed that the customer is an important part of project b Need to write effective stories and test cases b Customers decide what needs to be done b When customer is present, it is easier and quicker to get issues resolved

12/03/2002Copyright Patricia Cleary Version Pair Programming b Half of respondents agree that practice is useful b The other half found that the practice is hard for some developers to adapt to b Allows for transfer of knowledge b People’s personalities determine successfulness of practice implementation

12/03/2002Copyright Patricia Cleary Version Conclusion b Many views were qualitative and subjective to the respondents. b Many views echoed XP doctrine because the ideas behind XP are what appeal to management b Does not prove beyond a doubt that Extreme Programming is better than the Waterfall methodology. Ease of implementing Extreme Programming is completely subjective. It is team dependent.

12/03/2002Copyright Patricia Cleary Version Conclusion (cont’d) b There needs to be more quantitative studies done. b XP may in 10 years end up like RAD. After studying the RAD methodology, it has been determined that it has not delivered on any of its promises of increased productivity, etc. [Howard]

12/03/2002Copyright Patricia Cleary Version Future Research b More quantitative analysis needs to be done to prove that XP is better b The claim that it is easy to implement is subjective and depends on several external variables, such as company culture and people.

12/03/2002Copyright Patricia Cleary Version Sources b Beck, Kent ExtremeProgramming Explained Embrace Change Addison-Wesley, b Dribin, Larry Dr., De Paul Univerisity, D01 -SE466 Introduction SE 466_D01_Intro_v1, March 2001 b Fowler, Martin and Highsmith, Jim The Agile Manifesto Software Development Magazine, August b Howard, Alan, Viewpoint The Communications of the ACM, Volume 45, #10 (October 2002), p b Survey Respondents, Private Communication, 2002.