March 25, 2002R McFadyen 91.39131 a lightweight approach to software development. about 5 years old has been used at: Bayerische Landesbank, Credit Swiss.

Slides:



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

Agile Development.
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.
Pair 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 Kent Beck, Ward Cunningham. Software Development History During the 1970s, it was discovered that most large software development.
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.
COMP4710 Senior Design Software Development Process.
Extreme Programming--a “New” Process Model Extreme Programming-- a “New” Process Model.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Software Development Landscape
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Agile Awareness Workshop 2008 Flavours of Agile II eXtreme Programming V I K A S H A Z R A T I June 14' 2008.
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Extreme programming overview Agenda  Extreme programming goals  Extreme programming values  Extreme programming practices  The Extreme programming.
XP-eXtreme Programming Focus on “the simplest thing that could possibly work.” An approach to programming particularly appropriate for: –Small team (2-10.
EXtreme Programming: An Introduction Presentation by: Jon Banta.
1 e X treme P rogramming D. Dranidis September 2000 CITY College.
Integrating Usability Engineering and Agile Software Development: A Literature Review 陳振炎教授 楊哲豪
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.
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
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
CS3100 Software Project Management Agile Approaches.
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
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.
IS3320 Developing and Using Management Information Systems Lecture 20: Project Management Rob Gleasure
Virtually Agile Astro Sabre (Matt Ganis) IBM, Senior Technical Staff Member Hawthorne, NY - September 20, 2007.
Extreme programming (XP) Variant of agile Takes commonsense practices to extreme levels © 2012 by Václav Rajlich1.
Extreme Programming (XP) Web Applications and Services.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
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.
CSC 480 Software Engineering Extreme Programming.
Planning Extreme programming
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
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.
Introduction to Agile. Introduction Who is this guy?
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
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.
Etreme rogramming (XP) eXtreme Programming (XP). 2 A Typical XP Project All programmers in a room together Work in a series of fixed iteration cycles.
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
EXtreme Programming BY R.V.Ramesh MCA II Semester.
Dilbert Scott Adams Manage It! Your Guide to Modern, Pragmatic Project Management. Johanna Rothman.
What do you need to know about XP?
Agile and XP Development
Basic Engineering Methods
Agile and XP Development
CMPUT eXtreme programming
Extreme Programming Extreme programming is "a lightweight methodology for small-to-medium-sized teams developing software in the face of vague or rapidly.
Coming up: What is Agile?
Extreme Programming.
Extreme Programming (and Pair Programming)
Presentation transcript:

March 25, 2002R McFadyen a lightweight approach to software development. about 5 years old has been used at: Bayerische Landesbank, Credit Swiss Life, DaimlerChrysler, First Union National Bank, Ford Motor Company UBS XP was based on observations of what made computer programming faster and what made it slower. e X treme P rogramming (XP)

March 25, 2002R McFadyen create tests first, before the code keep their design simple and clean get feedback by testing their software starting on day one. deliver the system to the customers as early as possible and implement changes as suggested remove redundancy, eliminate unused functionality refactor throughout the entire project life cycle to keep the design simple avoid needless clutter and complexity. keep your code clean and concise so it is easier to understand, modify, and extend. make sure everything is expressed once and only once Extreme Programmers

March 25, 2002R McFadyen All code is created by two people working together at a single computer. It is counter intuitive, but … increased quality generates big savings later in the project Sit side by side in front of the monitor. slide the key board and mouse back and forth. one person types and thinks tactically about the method being created, while other thinks strategically about how that method fits into the class. Pair programming

March 25, 2002R McFadyen written by the customers as things that the system needs to do for them. similar to usage scenarios they are in the format of about three sentences of text written by the customer in the customers terminology without techno-syntax. User Stories

March 25, 2002R McFadyen Developers estimate how long the stories might take to implement. Each story will get a 1, 2 or 3 week estimate in "ideal development time". This ideal development time is how long it would take to implement the story in code if there were no distractions, no other assignments, and you knew exactly what to do. > 3 weeks means you need to break the story down further. < 1 week and you are at too detailed a level, combine some stories. User Stories

March 25, 2002R McFadyen The customer then decides what story is the most important or has the highest priority to be completed User stories are printed or written on cards. Developers and customers move the cards around on a large table to create a set of stories to be implemented as the first (or next) release. A useable, testable system that makes good business sense delivered early is desired. User Stories

March 25, 2002R McFadyen Overtime Once or twice a year, you can work overtime for a week but the need for a second week of overtime in a row is a clear signal that something else is wrong with the project. stand up meetings every morning everyone stands up in a circle to avoid long discussions Communication / Meetings

March 25, 2002R McFadyen Strictly sequential (or single threaded) integration by the developers themselves Single threaded integration allows a latest version to be consistently identified. Single threaded integration developers should be integrating and releasing code into the code repository every few hours, when ever possible. never hold onto changes for more than a day. Integrate often

March 25, 2002R McFadyen XP is controversial  Don't force team members to specialize and become analysts, architects, programmers, testers, and integrators--every XP programmer participates in all of these critical activities every day.  Don't conduct complete up-front analysis and design-- an XP project starts with a quick analysis of the entire system, and XP programmers continue to make analysis and design decisions throughout development.  Develop infrastructure and frameworks as you develop your application, not up-front--delivering business value is the heartbeat that drives XP projects. Designing one day-at-a-time

March 25, 2002R McFadyen Chrysler Comprehensive Compensation System an often quoted example of XP 1997 Payroll for 10,000 employees 2,000 classes 30,000 methods C3

March 25, 2002R McFadyen full-time experienced programmers working 45 minutes on a challenging problem important to their organization 5 alone and 10 in five pairs statistically significant results all teams outperformed the individuals pairs spent 60% more time completed task in 40% of the time produced better algorithms and code 1998 experiment

March 25, 2002R McFadyen students same classes same instruction 13 individual programmers 28 pair-programmers one partner is the “driver”, the other watching for defects, thinking of alternatives, considering implications pairs first assignment took 60% more time then decreased to 15% 1999 experiment University of Utah

March 25, 2002R McFadyen After the initial adjustment period in the first program (the "jelling" assignment), together the pairs only spent about 15% more time on the program than the individuals

March 25, 2002R McFadyen the resulting code has about 15% fewer defects

March 25, 2002R McFadyen

March 25, 2002R McFadyen In statistically significant results, pair programming teams who had earlier programmed alone reported that they enjoyed pair programming more and that they were more confident in their programs than when they programmed alone Most of the programmers enjoyed programming collaboratively 1999 experiment University of Utah

March 25, 2002R McFadyen University of Utah another experiment planned Brook’s Law “Adding manpower to a late project makes it later.” Why? Now they want to see if XP can break that law 200? experiment