EXtreme Programming By: Aaron Flocke, Leena Paulose, Geetha Krishna (Team 6)

Slides:



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

Alternate Software Development Methodologies
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall B.1.
NAUG NAUG Knowledge Evening – th February 2007.
Agile Process Models. Prescriptive models don’t work It is unrealistic to not have changes. Why? The Agile Manifesto: Individuals and interactions over.
XP – eXtreme Programming A gentle introduction. Cleviton Vinícius Jobson Ronan Thiago Rodrigues.
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 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.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
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.
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: 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.
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.
Roles in a Project Team By Sebastian Wagner And Michal Pieniazek.
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
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
XP Overview Short Life cycle Risky / Dynamic Requirements Increase developer productivity.
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.
Goals for Presentation Explain the basics of software development methodologies Explain basic XP elements Show the structure of an XP project Give a few.
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.
Test Driven Development Daniel Brown dxb17u. Introduction Originates from Extreme Programming (XP) Proposed by Kent Beck in Test Driven Development.
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 XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
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.
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 1 eXtreme Programming – one of the Agile Software Development Methodologies.
Planning Extreme programming
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.
1 Introduction to eXtreme Programming Remko Popma Azzurri Ltd.
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Project Management Software development models & methodologies
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Planning User stories are written.
Alexander Kanavin Lappeenranta University of Technology
Extreme Programming.
What do you need to know about XP?
Agile and XP Development
eXtreme Programming (XP) and eXtreme Modeling (XM)
Agile and XP Development
Chapter 3 – Agile Software Development
Coming up: What is Agile?
Refactoring.
Extreme Programming.
Agile software development
Extreme Programming (and Pair Programming)
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

eXtreme Programming By: Aaron Flocke, Leena Paulose, Geetha Krishna (Team 6)

What is XP?

XP is… A set of rules\principles\practices used to rapidly develop high-quality software Tools not Rules -Ron Jeffries One of the more prominent lightweight software-engineering methodologies Main Goal: Customer Satisfaction Highest quality in Lowest time frame.

XP emphasizes: Communication Communication Simplicity Simplicity Feedback Feedback Courage Courage …Using 12 main principles, including: Comprehensive unit tests Short release cycles Adding only what’s needed for the current task Collective code ownership Pair programming

Where did XP come from? “Father of XP”: Kent Beck Wrote “Extreme Programming Explained: Embracing Change” Wrote “Extreme Programming Explained: Embracing Change” Had years of experience in OOP such as Small Talk (at time of xP creation) Had years of experience in OOP such as Small Talk (at time of xP creation) Ward Cunningham Ron Jeffries…

It all started… Kent Beck developed XP back in 1996 while working at Daimler Chrysler Its use in developing the payroll system for D.C. is considered one of the great XP success stories.

Pros/Cons of XP Pros: Handles changing requirements well Handles changing requirements well Maximizes quality while minimizing time Maximizes quality while minimizing timeCons Only works well with small groups (around a dozen) Only works well with small groups (around a dozen) Many people dislike Pair Programming and think of it as overkill and a waste of resources Many people dislike Pair Programming and think of it as overkill and a waste of resources

A more in depth look -> And now my associates will give you all a more in depth look at XP so you can decide for yourself how useful or worthless XP is…

Extreme Roles Extreme Roles Customer  writes & explains user stories  sets priorities, specifies tests  may or may not be an end-user Programmer  estimates stories  defines tasks from stories  implements stories and unit tests Tracker  monitors progress  keeps track of schedule Coach  guides & mentors the team  watches the progress

Extreme Roles (contd.) Tester  runs functional tests  makes sure people know when test results decline. Doomsayer  ensures that everybody knows the risks involved  ensures that bad news isn't hidden, glossed over, or blown out of proportion Manager  schedules meetings, passes results to tracker  responsible to the Gold Owner. Gold Owner  the person funding the project  may or may not be the same as the Customer

Extreme Practices  The Planning Process  Simple Design  System Metaphor  Frequent, Small Releases  On-site Customer  40 hr weeks  Pair Programming  Refactoring  Test Driven Development  Collective Code Ownership  Continuous Integration  Coding Standard The 12 Golden Rules

XP Practice Cycle XP Practice Cycle

The Planning Process  defines desired features briefly  describes each feature's business value and priority  helps estimate project cost Simple Design  the best design is the easiest one that works  a correct design must have:  no duplicate code  fewest possible classes and methods  meets the business value and expected functionality  System Metaphor  provide a broad view of the project’s goal  describes how the system should work, its functionality  defines the overall theme to which developers and clients can relate XP Practices

Frequent, Small Releases  develop and deliver the application in a series of frequently updated versions.  provides frequent feedback On-site Customer  integral part of the development effort.  must be available at all times to set priorities, deliver and establish requirements, and answer questions. and establish requirements, and answer questions. Sustainable Pace / 40 hr weeks  avoid overtime  re-examine schedule  rested programmers = fewer mistakes

Pair Programming  all code is written in pairs  programmer and observer  code is simpler  less defects found  continuous code review  software quality increases  increases learning  every programmer knows all aspects

Refactoring Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure The aim of refactoring is to :  constantly revise  make the design simpler  make the code more understandable  improve the tolerance of code to change  remove duplication,  improve communication & add flexibility Change it even if it is not broken!

XP Practices (contd.) Collective Code Ownership  code belongs to the team  encourages team to work closer  everybody tries to produce a high-quality system Test Driven Development  plays central role in XP  each block is tested thoroughly  2 kinds - acceptance and unit test Continuous Integration  immediate integration  new system must pass all tests Coding Standard  common naming & formatting schemes  makes pair progamming and collective code ownership easier  rapid code sharing & reduces the learning curve

XP Project - Phases

Stages of an XP Project Initiation Use stories Spike solutions Release Planning Release Iteration 1 Iteration 1DevelopmentDeployment Acceptance Testing Iteration 2 Iteration 2DevelopmentDeployment Acceptance Testing.. Iteration n Iteration n

User Stories Short Description of the behavior of the system Customer’s point of view Customer terminology – no technical terms One for each major feature of the system Create low-risk time estimates for the project Similar to Requirements Documents but not the same Different from Use Cases – written by user, not programmer Average implementation time ( 2-3 weeks) 80 +/- 20 stories – sufficient to create a release plan. Printed on cards, similar to CRC cards.

Spike Solution Simple programs Explore solutions for tough technical / design problems Address only the problem under consideration Ignore other concerns If not good – throw away

Release Planning Create release plan for the whole project ( 1-6 months ) Programmer provides estimates of 1,2 or 3 points for each story Customer decides which stories should be included in the release Customer decides the priorities of the stories Stories chosen for the release are arranged in 1-3 week iteration High risk/high priority stories – earlier iteration Release and iteration dates are fixed.

Iteration Iteration planning meeting-beginning of each iteration Each iteration – 1-3 weeks For each iteration, user stories and failed tests are chosen Programmers break stories into tasks Programmers sign up for tasks and estimate time needed Programmers have a limitation on the task they can sign up for Can only sign up for as many points as were completed in the last iteration If the iteration is too long, Customer chooses stories to be put off for later iterations – called ‘Snow Plowing’ If iteration is too short, extra stories are added.

Acceptance Tests Same as Functional Tests – determines if the system is acceptable ‘Test First’ Principle – Tests are written first and then code is written to pass the test No code goes into production without an associated test Tests determine what code to write Customers specify the conditions to be tested These conditions are taken from user stories For each user story, there can be 1 or more tests Test scores are published to the customers and programmers Failed tests become part of the next iteration