Extreme Programming--a “New” Process Model Extreme Programming-- a “New” Process Model.

Slides:



Advertisements
Similar presentations
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
Advertisements

Waterfall Model, RUP, Agile Methodologies & Extreme Programming
11 Software and Systems Design and Development. 22 "software engineering"?: the "art" of building and maintaining software systems "…software engineering.
Agile Development.
 User assignments (product owner)  ‘circle’  1 st sprint: ◦ Scrum Boards (informative workspace)  Product -, release -, sprint -, defect backlog 
Agile Process Models. Prescriptive models don’t work It is unrealistic to not have changes. Why? The Agile Manifesto: Individuals and interactions over.
Software Life Cycles ECE 417/617: Elements of Software Engineering
Extreme Hour Role-Playing The XP Process. What Is Extreme Programming? n User Stories:Function, Qualities, Priority, Scope. n Schedule:By negotiation.
Agile
March 25, 2002R McFadyen a lightweight approach to software development. about 5 years old has been used at: Bayerische Landesbank, Credit Swiss.
Agile Requirements Methods CSSE 371 Software Requirements and Specification Mark Ardis, Rose-Hulman Institute October 26, 2004.
Software Engineering Process Models
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.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
1 Software Engineering Process Models In this course we will have a project with: Product requirements A defined development process A team of 4-5 developers.
Introduction to Agile Methodologies and Concepts Roy Osherove Principal, Team Agile Blog : ISerializable.com.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Roles Managers Technical Team Leaders Programmers Customers Database Administrators Instructors.
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.
Software Engineering SW Processes: Extreme Programming Slide 1 Software Engineering Software Process: Agile/Extreme Programming.
Extreme Programming(XP)
SE-280 Dr. Mark L. Hornick 1 Process Adaptations.
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Embracing change with Extreme Programming Method Engineering Erik ten Brinke
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.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
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.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Extreme Programming.
XP – Extreme Programming
Agile
Extreme Programming David Li CTO, DigitalSesame. Problem in Developing Software The Basic Problem - Risk –Schedule slips –Project canceled –System goes.
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 16, Methodologies Extreme Programming.
XP Overview Short Life cycle Risky / Dynamic Requirements Increase developer productivity.
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.
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.
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)
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
A framework that describes the activities performed at each stage of a software development project. A life-cycle or a software process is the organisational.
1 Introduction to eXtreme Programming Remko Popma Azzurri Ltd.
Extreme Software Engineering A Hands-On Approach From Extreme Software Engineering: A Hands-On Approach Daniel H. Steinberg Daniel W. Palmer.
9th October, 2001Confidential to Ian Mitchell1 XP – An Overview Ian Mitchell, FNZCS.
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.
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.
Project Management Software development models & methodologies
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Software Development - Methodologies
Software Development.
Software Engineering Process Models
Planning User stories are written.
What do you need to know about XP?
Extreme Programming.
Extreme Programming (and Pair Programming)
Presentation transcript:

Extreme Programming--a “New” Process Model Extreme Programming-- a “New” Process Model

Review of Process Models System design—some popular process models Linear Sequential Model Prototyping Model RAD Model Incremental Model Spiral Model Concurrent Development Model Component-Based Development Formal Method Model problem  develop  integrate each step is carried out recursively until an appropriate level of detail is achieved Basic method:

Introduction to Extreme Programming

“12 Practices” of XP

Metaphor

Release Planning 2. release planning requirements are given in terms of "user stories" each "story" is a short (~ 1 index card) description of what the customer wants, in natural language requirements are prioritized by customer resources and risks are estimated by developer "planning game"--each increment is restricted to a "time box"; highest priority and highest risk user stories are in early time boxes; after each increment, replay the "planning game"

Testing 3. testing development is test-driven tests are written before code unit must run at 100% before going on acceptance tests written with customer; they act as "contract", measure progress

Pair Programming 4. pair programming two engineers, one task, one computer "driver" controls keyboard & mouse "navigator" watches, identifies defects, participates in brainstorming roles are rotated periodically

Refactoring 5. refactoring improve design of existing code, but don't change functionality relies on testing; no new errors can be introduced

Simple Design 6. simple design no big design up front "do the simplest thing that could possibly work" don't add features you won't need may use "CRC cards"

Collective Code Ownership 7. collective code ownership code belongs to project, not individual engineers may browse into and modify ANY class

Continuous Integration 8. continuous integration pair writes unit test cases & code pair tests code to 100% pair integrates pair runs ALL test cases to 100% pair moves on to next task

On-Site Customer 9. on-site customer clarifies stories, participates in critical decisions developers don't make assumptions no waiting for decisions face-to-face communication

Small Releases 10. small releases timeboxed as small as possible, but with "business value" get feedback early and often do planning game after each iteration

40-Hour Work Week hour work week burning midnight oil kills performance tired developers make more mistakes workforce is more content

Coding Standards 12. coding standards use coding conventions write intention-revealing code

“13th Practice” "13th practice": stand up meeting 15 minutes at start of each day stand up to keep meeting short each participant says --what they did yesterday --what they plan to do today --any obstacles they are facing pairs can be reformed based on meeting

Contrast with Waterfall Model example contrasts: "waterfall model” || XP planning: upfront || incremental control of project, "people" questions: centralized || distributed customer involvement: only for specification, reviews || ongoing risk analysis, scheduling: all at beginning || in increments code development: assigned sections || collective ownership testing: specific phase || ongoing and required to 100% project type: well-understood, static || new, dynamic