Agile Requirements Methods CSSE 371 Software Requirements and Specification Mark Ardis, Rose-Hulman Institute October 26, 2004.

Slides:



Advertisements
Similar presentations
© University of Glamorgan1 Extreme Programming and its effect on project management Second Computing Project Management Workshop 13 September 02, University.
Advertisements

Agile Methods and Extreme Programming CS 414, Software Engineering I Mark Ardis Rose-Hulman Institute December 19, 2002.
E X treme Programming & Agile Modeling Copyright © 2003 Patrick McDermott UC Berkeley Extension
Agile Process Models. Prescriptive models don’t work It is unrealistic to not have changes. Why? The Agile Manifesto: Individuals and interactions over.
© ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua.
Software Process and Problem Statements CSSE 371, Software Requirements and Specification Mark Ardis, Rose-Hulman Institute September 3, 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.
Extreme Programming Mark Steverson. What Is Extreme Programming? ● Extreme Programming (XP) is a lightweight, agile methodology developed by Kent Beck.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Extreme Programming--a “New” Process Model Extreme Programming-- a “New” Process Model.
Agile Software Development
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
An Overview of Agile L e a d i n g C h a n g e T h r o u g h C o l l a b o r a t i o n.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Agile Software Development What is Agile? And How are we implementing Agile?
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
BEFORE AGILE METHODS Other Engineering fields development models were used, ie: Waterfall Method: Intensive planning and refactoring before coding is actually.
Chapter 3 – Agile Software Development Lecture 1 1Chapter 3 Agile software development.
Agile Programming Principles.
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.
Extreme Programming(XP)
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
By Saravanan Bala. General Report 31 % of Software projects are cancelled 75 % of the software projects are considered failures by the people who initiated.
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
Agile Software Development: Practices through Values C Sc 335 Rick Mercer.
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.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
XP – Extreme Programming
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
Chapter 3 Agile Software Development (1/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
Informatics 43 – May 14, Open Source Source code is freely available and (usually) re-distributable Examples: Firefox web browser Apache HTTP Server.
DAVID STOTTS DEPT. OF COMPUTER SCIENCE UNIV. OF NORTH CAROLINA AT CHAPEL HILL Extreme Programming.
CS3100 Software Project Management Agile Approaches.
Extreme Programming (XP) XP is an agile methodology: –aims to be responsive to change Theme running through XP is the importance of communication –amongst.
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.
Extreme Programming Based on and
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Extreme programming (XP) Variant of agile Takes commonsense practices to extreme levels © 2012 by Václav Rajlich1.
Agile Methods Presentation By: Jason Abbett. Definition A process to rapidly develop software Many kinds of agile methods but few are practiced.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 1 eXtreme Programming – one of the Agile Software Development Methodologies.
1 Introduction to eXtreme Programming Remko Popma Azzurri Ltd.
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
By Manish Shrotriya CSE MS 4 Point Agile Manifesto 1.Individuals and interactions over processes and tools 2.Working software over comprehensive.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Software Development Life Cycle. The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Agile/XP Introduction
Chapter 5 Agile Development Moonzoo Kim KAIST
Software Development.
Extreme Programming.
Extreme Programming.
Waterfall and Agile Quality Techniques
Lecture 2 Revision of Models of a Software Process
eXtreme Programming (XP) and eXtreme Modeling (XM)
Agile and XP Development
Coming up: What is Agile?
Introduction to XP.
Extreme Programming.
Extreme Programming (and Pair Programming)
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

Agile Requirements Methods CSSE 371 Software Requirements and Specification Mark Ardis, Rose-Hulman Institute October 26, 2004

2 Outline I.Origin of Agile Methods II.Extreme Programming III.How could this work?

3 I. Origin of Agile Methods

4 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. Extreme Programming

11 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

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

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

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

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

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

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

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

19 5. Testing Any feature without an automated test does not exist. Programmers need confidence in correct operation Customers need confidence in correct operation Develop test first, before code

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

21 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

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

23 III. How could this work?

24 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

25 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

26 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

27 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

28 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)

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