DAVID STOTTS DEPT. OF COMPUTER SCIENCE UNIV. OF NORTH CAROLINA AT CHAPEL HILL Extreme Programming.

Slides:



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

An Introduction to eXtreme Programming Michael L. Collard, Ph.D. Department of Computer Science Kent State University.
A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Agile Development.
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.
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.
Agile Methodology: The New Wave in Software Development By Patricia Cleary Thesis Hypothesis: The agile methodologies are better than the current methodology.
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.
XP and Refactoring David Talby. Development Methodologies The Software Crisis – 84% of software projects are not on time – 31% of software projects never.
Transitioning to XP or The Fanciful Opinions of Don Wells.
Extreme Programming--a “New” Process Model Extreme Programming-- a “New” Process Model.
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.
Comparison of CMM Level 2 and eXtreme Programming Copyright, 2002 © Bartosz Walter Quality Connection 2002, Helsinki Poznan University of Technology Poznan,
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Software Development Landscape
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.
CIS 9002 Kannan Mohan Department of CIS Zicklin School of Business, Baruch College.
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
Agile Software Development: Practices through Values C Sc 335 Rick Mercer.
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.
XP – Extreme Programming
Extreme Programming and Systems Engineering Similarities and Synergy (based on talk given to INCOSE New England Chapter) Joseph (Yossi) Weihs Sept 10 th,
Informatics 43 – May 14, Open Source Source code is freely available and (usually) re-distributable Examples: Firefox web browser Apache HTTP Server.
December Using Software Development Methodology (SDM) in the Third Teaching Unit (laboratory) CS Teachers Conference Dr. Orit Hazzan & Yael Dubinsky.
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 2002 by RoleModel Software, Inc. Extreme Programming: So What? Roy W. Miller RoleModel Software, Inc.
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.
EXtreme Programming and Open Source engineering paradigm A comparison
Comparison of CMM Level 2 and eXtreme Programming Copyright, 2002 © Bartosz Walter Web Applications and Services.
An Extreme Makeover Jill Burkart H. Leonard Liaw Amaris Vigil Andrew Switzky Diana Miranda-Murillo Don Turnbull The University of Texas at Austin.
1 Introduction to eXtreme Programming Remko Popma Azzurri Ltd.
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
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
Agile and XP Development
Agile and XP Development
Coming up: What is Agile?
Refactoring.
Introduction to XP.
Extreme Programming (and Pair Programming)
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

DAVID STOTTS DEPT. OF COMPUTER SCIENCE UNIV. OF NORTH CAROLINA AT CHAPEL HILL Extreme Programming

In Reaction to… “Big Process” SEI Capability Maturity Model (CMM)CMM “Heavy” development practices Hard to steer, unresponsive Can we do better for smaller efforts?

Extreme Programming Kent Beck, late 90’s One of several “Agile” processes Small teams (2 to 8 people) Modest projects Emphasis on customer as project driver

“Change Happens” Embrace change as normal Not an aberration whose cause needs to be found Process must be lightweight and agile to respond to change “Steer”able

XP Core Values Communication Simplicity Feedback Courage (fearlessness)

XP Practices Pair programming Test-first development Simple design: Add no function before its time Re-factoring The planning game User/client on-site

XP Practices Small releases Continuous integration Collective code ownership Coding standards (and self- documenting code) No overtime System metaphor

Why Agile Methods? Why is change inevitable? People… People are noisy and unpredictable Process involving people needs small steps, constant measurement to be steerable

eXtreme Programming Try it … Further reading: “XP” by J. Highsmith“XP” by J. Highsmith

Test-first development If a class does not have automatic tests, you must assume it does not work Regression testing … tests retain value JUnit (Beck & Gamma): industrial- strength regression testing for the common man

JUnit Small, easy to learn, easy to use, effective Java classes TestCase, Suite, runners 15 other language implementations

JUnit Test Class One test method per target method “test anything that can break” … “don’t test anything that can’t” Can we give better guidance? Can we systematically produce consistent and complete test classes?

The Planning Game Informal brainstorming… few hours to a few days Customer talks about what he/she wants Engineers listen, ask questions, make “user stories” Each story is a card, a few sentences, describes some function of the system

The Planning Game Engineers “cost” each story Customer “values” each story Rank order of cards Customer selects top 4 or 5 items… Engineers produce Release One