XP – Extreme Programming

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.
 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.
Agile development By Sam Chamberlain. First a bit of history..
Agile
XP – eXtreme Programming A gentle introduction. Cleviton Vinícius Jobson Ronan Thiago Rodrigues.
Agile Requirements Methods CSSE 371 Software Requirements and Specification Mark Ardis, Rose-Hulman Institute October 26, 2004.
Agile Methods and Extreme Programming CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 23, 2007.
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 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.
Agile Software Development What is Agile? And How are we implementing Agile?
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Software Engineering Modern Approaches
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
One XP Experience: Introducing Agile (XP) Software Development into a Culture that is Willing but not Ready Joe Bergin * Fred Grossman * David Leip **
EXtreme Programming: An Introduction Presentation by: Jon Banta.
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.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Extreme Programming.
Agile
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.
XP Overview Short Life cycle Risky / Dynamic Requirements Increase developer productivity.
DAVID STOTTS DEPT. OF COMPUTER SCIENCE UNIV. OF NORTH CAROLINA AT CHAPEL HILL Extreme Programming.
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
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.
Extreme programming (XP) Variant of agile Takes commonsense practices to extreme levels © 2012 by Václav Rajlich1.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.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.
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.
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.
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.
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.
Agile Project Management and the yin & yang of
Appendix B Agile Methodologies
Planning User stories are written.
EXtreme Programming BY R.V.Ramesh MCA II Semester.
Extreme Programming.
Waterfall and Agile Quality Techniques
What do you need to know about XP?
Agile and XP Development
Agile and XP Development
Agile and XP Development
Chapter 3: Agile Software Processes
Coming up: What is Agile?
Agile Development – a new way of software development?
Agile software development
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

XP – Extreme Programming

XP in general XP is an agile discipline of software develop-ment. It emphasis high customer satisfaction and customer involvement. When working with XP everybody works as a hole team, but the customers and the manager as well. XP aims at short iterations, and to provide working code, at the end of each iteration.

XP Values Communication (communication among team members and between the team and the customer must be maximized). Simplicity (do the simplest thing that could possibly work). Simplicity favors communication, reduces the amount of code and improves the quality. Feedback Courage (communication, simplicity and feedback allow to tackle with courage even big changes in requirements……) Respect (if members of a team don’t care about each other and their work, no methodology can work).

Extreme Programming Practices Fine scale feedback - Pair Programming - Planning game - Test Driven development - Whole team Continous process - Continuous integration - design involvement - small releases

Shared understanding - coding standard - collective code ownweship - Simple design - System Metaphor Programmer welfare - Sustainable Pace

Coding standard An agreed upon set of rules that the entire development team agree to adhere to throughout the project A consistent style and format for source code

Collective code ownership Everybody is responsible for all the code Every programmer has the right to change the code

Continous Integration The development team should always be working on the latest version of the software Upload current version to the code repository every few hours

Design improvement Implement as simple as possible Refactor the code when needed - refactoring is the process of rewriting a computer program or other material to improve its structure or readability, while explicitly preserving its meaning or behavior.

Simple design a shared understanding practice Programmers should take a ”simple is best” approach to software design

Small Releases a continous rocess practice The delivery of the software is done in predetermined releases (sometimes called ”Builds”) Ther small releases provides the customer to gain confidence over the progress of the project.

Sustainable Pace a programmer welfare practice Programmers or software developers should not work more than 40 hours weeks. People perform best and most creatively if they are rested.

System Methaphor A naming concept for classes and methods that should make it easy for a team member to guess the functionality of a particular class/method, from its name only. For example a library system mat create loan_records(class) for borrowers (class), and if the item were to become overdue it may perform a make_overdue operation on a catalogue (class). For each class or operation the functionality is transparent to the entire team

Pair Programming a fine scale feedback practice All code is produced by two people programming on one task on one workstation. One programmer has control over the workstation and is thinking mostly about the code in detail. The other programmer is more focused on the big picture, ans is continually reviewing the code that is being produced by the first programmer. Programmers trade roles regularly

Planning game a fine scale feedback practice Release Planning - focused on determining whar requirements are included in which release and when it’s going to be delivered. - the customers and developers are both part of this. Iteration planning - plans the activities and task of the developers. In this process the customer is not involved.

Planning game Release planning 3 phases: - Exploration Phase: in this phase the custo- mer will give all his requirements for the system. These bwill be written down on user story cards- - Commitment phase: within the commitment phase business and development will commit themselves to the functionality that will be included and the date of the next release. - Steering Phase: in the steering phase the plan can be ajusted, new requirements can be added and or existing requirements can be changed or removed.

Planning game Iteration planning 3 phases: Exploration phase: within this phase the requirement will be translated to different tasks. The task are recorded on task cards. Commitment phase: the tasks will be assigned to the programmers and the time it takes to complete will be estimated. Steering phase: the tasks are performed and the end result is matched with the original user story.

Test driven development a fine scale feedback practice Unit test are written before the eventual code is coded. Intended to stimulate the programmer to think about conditions in which his or her code could fail

Whole team a fine scale feedback practice The ”customer” is not the one who pays the bill, but one who will really uses the system The customer should be at hand at all times and available for questions.