Agile Methods and Extreme Programming CS 414, Software Engineering I Mark Ardis Rose-Hulman Institute December 19, 2002.

Slides:



Advertisements
Similar presentations
Numbers Treasure Hunt Following each question, click on the answer. If correct, the next page will load with a graphic first – these can be used to check.
Advertisements

1 A B C
Scenario: EOT/EOT-R/COT Resident admitted March 10th Admitted for PT and OT following knee replacement for patient with CHF, COPD, shortness of breath.
Variations of the Turing Machine
3rd Annual Plex/2E Worldwide Users Conference 13A Batch Processing in 2E Jeffrey A. Welsh, STAR BASE Consulting, Inc. September 20, 2007.
AP STUDY SESSION 2.
1
Copyright © 2003 Pearson Education, Inc. Slide 1 Computer Systems Organization & Architecture Chapters 8-12 John D. Carpinelli.
Processes and Operating Systems
David Burdett May 11, 2004 Package Binding for WS CDL.
Local Customization Chapter 2. Local Customization 2-2 Objectives Customization Considerations Types of Data Elements Location for Locally Defined Data.
Process a Customer Chapter 2. Process a Customer 2-2 Objectives Understand what defines a Customer Learn how to check for an existing Customer Learn how.
Custom Statutory Programs Chapter 3. Customary Statutory Programs and Titles 3-2 Objectives Add Local Statutory Programs Create Customer Application For.
Custom Services and Training Provider Details Chapter 4.
CALENDAR.
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt BlendsDigraphsShort.
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt RhymesMapsMathInsects.
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt Wants.
Agile Modeling Emitzá Guzmán Agile Modeling.
1 Click here to End Presentation Software: Installation and Updates Internet Download CD release NACIS Updates.
The 5S numbers game..
1 Combination Symbols A supplement to Greenleafs QR Text Compiled by Samuel Marateck ©2009.
Break Time Remaining 10:00.
Turing Machines.
Table 12.1: Cash Flows to a Cash and Carry Trading Strategy.
Red Tag Date 13/12/11 5S.
PP Test Review Sections 6-1 to 6-6
CS 6143 COMPUTER ARCHITECTURE II SPRING 2014 ACM Principles and Practice of Parallel Programming, PPoPP, 2006 Panel Presentations Parallel Processing is.
Exarte Bezoek aan de Mediacampus Bachelor in de grafische en digitale media April 2014.
TESOL International Convention Presentation- ESL Instruction: Developing Your Skills to Become a Master Conductor by Beth Clifton Crumpler by.
Copyright © 2012, Elsevier Inc. All rights Reserved. 1 Chapter 7 Modeling Structure with Blocks.
1 RA III - Regional Training Seminar on CLIMAT&CLIMAT TEMP Reporting Buenos Aires, Argentina, 25 – 27 October 2006 Status of observing programmes in RA.
1 TV Viewing Trends Rivière-du-Loup EM - Diary Updated Spring 2014.
Adding Up In Chunks.
MaK_Full ahead loaded 1 Alarm Page Directory (F11)
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt Synthetic.
: 3 00.
5 minutes.
1 hi at no doifpi me be go we of at be do go hi if me no of pi we Inorder Traversal Inorder traversal. n Visit the left subtree. n Visit the node. n Visit.
Prof.ir. Klaas H.J. Robers, 14 July Graduation: a process organised by YOU.
Speak Up for Safety Dr. Susan Strauss Harassment & Bullying Consultant November 9, 2012.
1 Titre de la diapositive SDMO Industries – Training Département MICS KERYS 09- MICS KERYS – WEBSITE.
Essential Cell Biology
Converting a Fraction to %
Clock will move after 1 minute
PSSA Preparation.
Immunobiology: The Immune System in Health & Disease Sixth Edition
Physics for Scientists & Engineers, 3rd Edition
Energy Generation in Mitochondria and Chlorplasts
Select a time to count down from the clock above
Copyright Tim Morris/St Stephen's School
Introduction Peter Dolog dolog [at] cs [dot] aau [dot] dk Intelligent Web and Information Systems September 9, 2010.
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.
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
Extreme Programming Mark Steverson. What Is Extreme Programming? ● Extreme Programming (XP) is a lightweight, agile methodology developed by Kent Beck.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
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.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Extreme programming (XP) Variant of agile Takes commonsense practices to extreme levels © 2012 by Václav Rajlich1.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 1 eXtreme Programming – one of the Agile Software Development Methodologies.
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Introduction to XP.
Presentation transcript:

Agile Methods and Extreme Programming CS 414, Software Engineering I Mark Ardis Rose-Hulman Institute December 19, 2002

2 Outline I.Origin of Agile Methods II.Examples of Agile Methods III.Extreme Programming

3 I. Origin of Agile Methods

4 First Cartoon of the Day

5 Spectrum of Methods Source: "Get ready for agile methods, with care" by Barry Boehm, IEEE Computer, January 2002.

6 Boehm's Risk Exposure Profile Source: "Get ready for agile methods, with care" by Barry Boehm, IEEE Computer, January Black curve: Inadequate plans Red curve: Market share erosion

7 Safety-Critical Profile Source: "Get ready for agile methods, with care" by Barry Boehm, IEEE Computer, January Black curve: Inadequate plans Red curve: Market share erosion

8 Agile Profile Source: "Get ready for agile methods, with care" by Barry Boehm, IEEE Computer, January Black curve: Inadequate plans Red curve: Market share erosion

9 Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: –Individuals and interactions over processes and tools –Working software over comprehensive documentation –Customer collaboration over contract negotiation –Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.

10 II. Examples of Agile Methods

11 The List of Agile Methods Adaptive Software Development Crystal Dynamic System Development Method (DSDM) Extreme Programming Feature Driven Development (FDD) SCRUM

12 Adaptive Software Development Source: "Retiring lifecycle dinosaurs" by Jim Highsmith, Software Testing and Quality Engineering, July/August 2000

13 Crystal "family of human-powered and adaptive, ultralight, 'shrink-to-fit' software development methodologies" People-centric Reduces bureaucracy to least practical Start small and make it smaller

14 Dynamic System Development Method (DSDM) Source: DSDM website

15 Feature Driven Development (FDD) At start of project: –Develop an Overall Model –Build a Features List –Plan by Feature Within each iteration: –Design by Feature –Build by Feature

16 SCRUM Source: SCRUM website

17 III. Extreme Programming

18 Motivation Knobs on a control board Each knob a practice that works well Turn all knobs up to 10

19 Learning to Drive "Driving is not about getting the car going in the right direction. Driving is about constantly paying attention, making a little correction this way, a little correction that way." -- Kent Beck, Extreme Programming Explained

20 Four Values Simplicity –create the simplest thing that could work Communication –face-to-face, not document-to-face Feedback –lots of tests Aggressiveness

21 Four Basic Activities Coding –cannot do without it Testing –if it cannot be tested it doesn't exist Listening –to those with domain knowledge Designing –to keep the system from decaying

22 Twelve Practices 7. Pair programming 8. Collective ownership 9. Continuous integration hour week 11. On-site customer 12. Coding standards 1. The Planning Game 2. Small releases 3. Metaphor 4. Simple design 5. Testing 6. Refactoring

23 1. The Planning Game Business people decide: –scope –priority –release dates Technical people decide: –estimates of effort –technical consequences –process –detailed scheduling

24 The Planning Game Collect User Stories on cards Stories are written by customers Stories generate tests

25 Estimating Be concrete No imposed estimates Feedback: compare actuals to estimates Re-estimate periodically

26 Scheduling Each story gets an estimate of effort Customers decide which stories are most important Programmers calculate how long each release will take

27 2. Small Releases Every release should be as small as possible Every release has to completely implement its new features

28 Waterfall to XP Evolution Source: "Embracing change with extreme programming" by Kent Beck, IEEE Computer, October 1999.

29 3. Metaphor Each XP project has its own metaphor –naive –system is a spreadsheet Metaphor replaces architecture as the view from 10,000 feet

30 4. Simple Design Runs all the tests Has no duplicated logic States every intention important to programmers Has the fewest possible classes and methods

31 5. Testing Any feature without an automated test does not exist. Programmers need confidence in correct operation Customers need confidence in correct operation

32 Tools for Testing Test harnesses for various programming languages Simplify job of creating and running the tests

33 6. Refactoring Always ask if there is a way to make the program simpler When the system requires duplication of code, it is asking for refactoring Can always find a series of small, low- risk steps

34 Second Cartoon of the Day

35 7. Pair Programming All code written with 2 people at one machine Driver: –thinks about best way to implement Passenger: –thinks about viability of whole approach –thinks of new tests –thinks of simpler ways

36 Workspace

37 8. Collective Ownership Anybody who sees an opportunity to add value to any portion of the code is required to do so Everyone knows something about everything Everyone feels obligated to make improvements

38 9. Continuous Integration Integrate and test every few hours, at least once per day All tests must pass Easy to tell who broke the code

Hour Week People should be fresh and eager every morning Overtime is a symptom of a serious problem XP only allows one week of overtime

On-Site Customer Real customer will use the finished system Programmers need to ask questions of a real customer Customer can get some other work done while sitting with programmers

Coding Standards Everyone edits everyone's code Standard should require least amount of overhead Standard should be adopted voluntarily by the team

42 How could this work?

43 1. The Planning Game You couldn't start with only a rough plan Unless: –customers did updating based on estimates of programmers –short releases (2) revealed any mistakes in plan –customer was sitting with programmers (11) to spot trouble

44 2. Small Releases You couldn't release new versions so quickly Unless: –the Planning Game (1) helped work on the most valuable stories –you were integrating continuously (9) –testing (5) reduced defect rate

45 3. Metaphor You couldn't start with just a metaphor Unless: –you got feedback on whether metaphor was working –your customer was comfortable talking about the system in terms of the metaphor –you refactored continually (6) to refine understanding

46 4. Simple Design You couldn't have just enough design for today Unless: –you were used to refactoring (6) –you had a clear overall metaphor (3) –you were programming with a partner (7)

47 5. Testing You couldn't write all those tests Unless: –the design was as simple as possible (4) –you were programming with a partner (7) –you felt good seeing all those tests running –your customer felt good seeing all those tests running

48 6. Refactoring You couldn't refactor the design all the time Unless: –you were used to collective ownership (8) –you had coding standards (12) –you programmed in pairs (7) –you had a simple design (4) –you had enough tests (5) –you had continuous integration (9) –you were rested (10)

49 7. Pair Programming You couldn't write all the code in pairs Unless: –coding standards (12) reduced picayune squabbles –everyone were fresh and rested (10) –the pairs wrote tests together (7) –the pairs had a metaphor (3) to ground their decisions –the pairs were working within a simple design (4)

50 8. Collective Ownership You couldn't have everyone changing everything Unless: –you integrated after a short time (9) –you had enough tests (5) –you programmed in pairs (7) –you adhered to coding standards (12)

51 9. Continuous Integration You couldn't integrate every few hours Unless: –you could run tests quickly (5) –you programmed in pairs (7) –you refactored (6)

Hour Week You couldn't work only 40 hours/week Unless: –the Planning Game (1) were choosing the most important work to do –you had enough tests (5) to avoid nasty surprises –you were working at top speed already

On-Site Customer You couldn't have a real customer sitting by the programmers full-time Unless: –they could produce value by writing functional tests –they could produce value by making small- scale priority and scope decisions

Coding Standards You couldn't get everyone to use the same coding standard Unless: –they were part of a winning team by practicing XP