Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.

Slides:



Advertisements
Similar presentations
Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
Advertisements

Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall B.1.
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
Agile Requirements Methods CSSE 371 Software Requirements and Specification Mark Ardis, Rose-Hulman Institute October 26, 2004.
Agile Software Development. Traditional Software Development 1.Initiation (RFP) 2.Feasibility study Technical – can we build it? Economic – should we.
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 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.
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.
Agile Software Development What is Agile? And How are we implementing Agile?
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Chapter 3 – Agile Software Development Lecture 1 1Chapter 3 Agile software development.
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.
Current Trends in Systems Develpment
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.
By Saravanan Bala. General Report 31 % of Software projects are cancelled 75 % of the software projects are considered failures by the people who initiated.
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.
Unified Process versus Extreme Programming. Outline Compare and contrast UP and XP  Processes / Disciplines  Management  Artefacts Risk management.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
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.
XP (not Microsoft) e X treme P rogramming Can KOMAR
Extreme Programming.
Agile
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
Chapter 3 Agile Software Development (1/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 other methodologies 1 Method/Process = step-by-step description of the steps involved.
Informatics 43 – May 14, Open Source Source code is freely available and (usually) re-distributable Examples: Firefox web browser Apache HTTP Server.
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.
Agile Methodology Paul Mohrbacher. Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through.
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.
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.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1.
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.
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.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
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.
Embedded Systems Software Engineering
Appendix B Agile Methodologies
Extreme Programming.
Agile and XP Development
Agile and XP Development
Agile and XP Development
Chapter 3: Agile Software Processes
Coming up: What is Agile?
Introduction to XP.
Appendix B Agile Methodologies
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

Extreme Programming (XP)

Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over comprehensive documentation. Values customer collaboration over contract negotiation. Values responding to change over following a plan.

Agile Methodologies Extreme Programming Adaptive Software Development Crystal Dynamic Systems Development Method Feature-Driven Development Pragmatic Programming Scrum

The Cost of Change Traditional methodologies assume the cost of change rises rapidly (exponentially?) over the life cycle of software. XP assumes that under the right conditions the cost of change can be held constant. These assumptions have a dramatic impact on the development process. There is little empirical evidence to support either assumption. Studies are either too old or too small.

Development as Maintenance In an XP project there is a working system almost from the very beginning. XP development is extremely incremental. Requirements, design, and implementation are all developed in very small increments. Each time a new “story” is elicited from the customer, it is implemented as quickly as possible and delivered to the customer for feedback.

Roles of Developers In XP, each development team member works on all phases of development: analysis, design, implementation and testing. –This is in contrast to traditional methods where people are specialists, and workers further down stream are considered less skilled and are lower paid. In XP, it is assumed that incremental development will continue over the entire life of the software. There is no distinction between developers and maintainers.

Documentation XP projects do not produce nearly as much documentation as traditional approaches. The code is expected to express its intent without the need for additional documentation. There is less need for documentation, since the same team members are involved in all phases of development. The project is not passed off from one group of specialists to another. It is assumed that although there may be some turn over of personnel, the same team will be responsible for the project over its entire lifecycle.

XP Practices (1) The Planning Game –Quickly determine the scope of the next release by combining business priorities and technical estimates. Small Releases –Put a simple system into production quickly, then release new versions on a very short cycle (one or two months). Metaphor –Guide all development with a simple shared story of how the whole system works. –Replaces most system architecture.

XP Practices (2) Simple Design –The system design is kept as simple as possible at all times. The design is only as complex as necessary to support the current development cycle. –There is no designing for the future. –Extra complexity is removed whenever it is discovered. –The design is “in the code”. Testing –Programmers write unit tests before writing implementation code. All unit tests must pass for development to continue. –Customers write functional tests based on stories.

XP Practices (3) Refactoring –Programmers restructure the system without changing its behavior to remove duplication, improve communication, simplify, or add flexibility. Pair programming –All production code is written with two programmers at one machine. Collective ownership –Anyone can change any code anywhere in the system at anytime.

XP Practices (4) Continuous integration –Integrate and build the system many times a day, every time a task is completed. All unit tests must pass after every build, or the change is withdrawn. 40-hour week –Never work overtime in two consecutive weeks. On-site customer –Include a real, live user on the team, available full-time to answer questions. Coding standards –Standard must be adopted voluntarily by all team members.

XP Examined XP was designed to be a lightweight process for small projects with developers. It is probably not suitable for larger projects. Many individual XP practices would be very bad ideas in traditional approaches, but might work when used together. Other XP practices might be useful outside of XP: –e.g. testing, pair programming, 40-hour week