1 Introduction to eXtreme Programming Remko Popma Azzurri Ltd.

Slides:



Advertisements
Similar presentations
An Introduction to eXtreme Programming Michael L. Collard, Ph.D. Department of Computer Science Kent State University.
Advertisements

NAUG NAUG Knowledge Evening – th February 2007.
1 JASS 2006, Sergey Konovalov, Stefan Misslinger XP Extreme Programming Joint Advanced Student School (JASS) XP EXTREME PROGRAMMING.
6 December ’s  60’s “Cowboys” wrote software anyway that they could Difference between best programmers and worst as high as 28:1 (many sources)
XP – eXtreme Programming A gentle introduction. Cleviton Vinícius Jobson Ronan Thiago Rodrigues.
1 March Extreme programming. Presentations Tuesday Campus Tour Sami Says Hawks Thursday Read2Me UNCSET Oral Lab NetVis If helpful, invite your client.
Agile Requirements Methods CSSE 371 Software Requirements and Specification Mark Ardis, Rose-Hulman Institute October 26, 2004.
Extreme Programming: Practices and Strategies Extreme Programming Practices and Strategies Mohammad Alshayeb Information and Computer.
Extreme Programming Collaboration in Software Development Process.
Extreme Programming Team Members Gowri Devi Yalamanchi Sandhya Ravi.
EXtreme Programming By: Aaron Flocke, Leena Paulose, Geetha Krishna (Team 6)
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
Extreme Programming Theory & XPeriences
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.
Extreme Programming Adam Cogan Database Architect ssw.com.au.
Software Engineering Modern Approaches
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: Introduced Matthew Heusser Excelon Development – xndev.com - Presented to CS 611 at GVSU, 4/6/2005.
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
EXtreme Programming: An Introduction Presentation by: Jon Banta.
1 e X treme P rogramming D. Dranidis September 2000 CITY College.
Extreme Programming Sylvain Giroux October 3 rd, 2000.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Introduction to Extreme Programming William C. Wake
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
XP (not Microsoft) e X treme P rogramming Can KOMAR
Extreme Programming.
XP – Extreme Programming
Implementing XP at PUT Copyright, 2000 © Jerzy R. Nawrocki Quality Management.
Page 1 Copyright © 1999, RoleModel Software, Inc. An Introduction to Extreme Programming Ken Auer
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.
XP Overview Short Life cycle Risky / Dynamic Requirements Increase developer productivity.
December Using Software Development Methodology (SDM) in the Third Teaching Unit (laboratory) CS Teachers Conference Dr. Orit Hazzan & Yael Dubinsky.
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.
Extreme Programming Based on and
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
Extreme programming (XP) Variant of agile Takes commonsense practices to extreme levels © 2012 by Václav Rajlich1.
Extreme Programming (XP) Web Applications and Services.
Copyright 2002 by RoleModel Software, Inc. Extreme Programming: So What? Roy W. Miller RoleModel Software, Inc.
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
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.
Agile Methodologies (including: XP & Scrum) By Avi Wortzel
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Planning User stories are written.
EXtreme Programming BY R.V.Ramesh MCA II Semester.
Extreme Programming.
Waterfall and Agile Quality Techniques
eXtreme Programming (XP) and eXtreme Modeling (XM)
Chapter 3: Agile Software Processes
Coming up: What is Agile?
Extreme Programming (and Pair Programming)
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

1 Introduction to eXtreme Programming Remko Popma Azzurri Ltd.

2 Contents The problem –Problems in software development eXtreme Programming (XP) –Values –Practices –Why XP works –Benefits of XP Conclusions Resources

3 Problems in software development Risks: Schedule slips Business misunderstood Defect rate Project cancelled System goes sour Business changes

4 Schedule slips Many projects are not delivered on time –Examples: Word 1.0, Netscape 6 Some deadlines cannot be moved –Example: Y2K What if: most business value is delivered on time

5 Business misunderstood Without direct communication, developers have to guess what the customer wants. –Example: The Orthodontics Project What if: an on-site customer steers development

6 Defect rate The software is put in production, but the defect rate is so high that it isn’t used. What if: you have automated testing

7 Project cancelled Size of projectEarlyOn-TimeDelayedCancelledSum 1 function point14.68%83.16%1.92%0.25%100.00% 10 function points11.08%81.25%5.67%2.00%100.00% 100 function points6.06%74.77%11.83%7.33%100.00% 1,000 function points1.24%60.76%17.67%20.33%100.00% 10,000 function points0.14%28.00%23.83%48.00%100.00% 100,000 function points0.00%13.67%21.33%65.00%100.00% Average5.53%56.94%13.71%23.82%100.00% Table 1: Percentage of projects early, on-time, late, canceled (from Patterns of Software Systems Failure and Success, by Capers Jones)

8 Project cancelled What if: short releases deliver at least some useful working software, reflecting investment to date

9 System goes sour Software is put into production successfully, but after a couple of years the cost of making changes or the defect rate rises so much that the system must be replaced. What if: the design is simple and the code quality is high

10 Business changes New laws, market changes: business priorities change What if: the customer can change their mind, substitute functionality, and change priorities

11 Economics of software development

12 What if…

13 eXtreme Programming A system of practices that a community of software developers is evolving to address the problems of quickly delivering quality software, and then evolving it to meet changing business needs.

14 eXtreme… Taking proven practices to the extreme If testing is good, let everybody test all the time If code reviews are good, review all the time If design is good, refactor all the time If integration testing is good, integrate all the time If simplicity is good, do the simplest thing that could possibly work If short iterations are good, make them really, really short

15 XP values Communication Simplicity Feedback Courage

16 XP practices The Planning Game* Small Releases Metaphor Simple Design* Testing* Refactoring* Pair Programming* Collective Ownership Continuous Integration 40-Hour Week On-Site Customer Coding Standards Open workspace Daily Schema migration

17 The Planning Game Business writes a story describing desired functionality Stories are written on index cards Development estimates stories Velocity determines number of stories per iteration Business splits and prioritizes stories and determines the composition of releases Velocity is measured and adjusted every iteration Customer steers development

18 Testing Unit Tests and Functional Tests Test a little, code a little… –“Test-first programming” Tests become the specification Tests give confidence in the system Tests give courage to change the system

19 Unit tests

20 Pair Programming Two people looking at one machine, with one keyboard and one mouse Two roles: implementation and strategy All production code is written in pairs

21 Pair Programming Benefits 15% less output than 2 solo programmers Continuous code review: better design, fewer defects Confidence to add to or change the system Discipline to always test and refactor Teach each other how the system works (reduced staffing risks) Learn from partner’s knowledge and experience (enhances technical skills)

22 Simple design Do the simplest thing that could possibly work Passes all the tests No duplicate code States every intention Fewest possible classes and methods

23 Refactoring Design becomes everybody’s daily business Continuously improve quality of the code Unit Tests and Pair Programming give courage Result: Fast development speed Code becomes easy to change

24 Why XP works Light-weight: discipline without bureaucracy Under stress, people do what is easiest –All XP practices have short-term benefits as well as long-term benefits Development as a Conversation The code is the documentation XP is fun

25 Who benefits from XP? get clear requirements & priorities can do a good job can make technical decisions don’t work overtime get most business value first get accurate feedback can make informed business decisions can change their mind Programmers:Customers:

26 Conclusions Use XP on projects –with vague or changing requirements –with small teams XP works, and is very fast XP is fun to execute At Azzurri, we use XP as much as possible with clients, and exclusively for internal projects

27 XP books and papers Extreme Programming Explained – Kent Beck Refactoring – Martin Fowler Planning Extreme Programming – Kent Beck et al Extreme Programming Installed – Ron Jeffries et al Extreme Programming Examined – Giancarlo Succi et al Extreme Programming in Practice – Robert C. Martin et al Extreme Programming Explored – William C. Wake Extreme Programming Applied – Ken Auer et al The Costs and Benefits of Pair Programming – Alistair Cockburn et al

28 Web resources

29 Thank you Questions?