Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - Presented to CS 611 at GVSU, 4/6/2005.

Slides:



Advertisements
Similar presentations
© University of Glamorgan1 Extreme Programming and its effect on project management Second Computing Project Management Workshop 13 September 02, University.
Advertisements

Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
Alternate Software Development Methodologies
ITEC 370 Lecture 25 Lifecycles. Review Questions? F give prototype demonstration –Testing plan for your software Life cycles –Scrum (Roles, Meetings,
NAUG NAUG Knowledge Evening – th February 2007.
Agile development By Sam Chamberlain. First a bit of history..
Agile Methods and Extreme Programming CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 23, 2007.
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.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Chapter 3 – Agile Software Development Lecture 1 1Chapter 3 Agile software development.
An Agile View of Process
Introduction to Agile Methodologies and Concepts Roy Osherove Principal, Team Agile Blog : ISerializable.com.
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.
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 overview Agenda  Extreme programming goals  Extreme programming values  Extreme programming practices  The Extreme programming.
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 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.
Agile Software Development: Practices through Values C Sc 335 Rick Mercer.
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.
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
Chapter 3 Agile Software Development (1/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
XP Overview Short Life cycle Risky / Dynamic Requirements Increase developer productivity.
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.
Agile Software Development Jeff Sutherland, one of the developers started it In February 2001, 17 Tools: continuous integration, automated or xUnit test,
Test Driven Development Daniel Brown dxb17u. Introduction Originates from Extreme Programming (XP) Proposed by Kent Beck in Test Driven Development.
What Is Agile? Agile is a group of software development methodologies Scrum Extreme Programming (XP) Lean Etc. Key Characteristics: Small increments Adaptive.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
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)
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 1 eXtreme Programming – one of the Agile Software Development Methodologies.
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.
By Manish Shrotriya CSE MS 4 Point Agile Manifesto 1.Individuals and interactions over processes and tools 2.Working software over comprehensive.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Project Management Software development models & methodologies
Chapter 3 Agile software development 1 Chapter 3 – Agile Software Development.
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
Agile and XP Development
Agile and XP Development
Coming up: What is Agile?
Refactoring.
Introduction to XP.
Agile Development – a new way of software development?
Presentation transcript:

Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - Presented to CS 611 at GVSU, 4/6/2005

Surfin’ the waterfall The Caste System The factory mentality Scientific Management ‘Managing Scope Creep’ and other bad ideas Can we have predictability without demeaning people?

Enter XP If our software development groups could just provide visibility and consistency, maybe customers, management, and coders could share the uncertainty. “Extreme Programming is a discipline of business and software development that focuses both parties on common, reachable goals. XP teams produce quality software at a sustainable pace. The practices that make up “book” XP are chosen for their dependence on human creativity and acceptance of human frailty.” – Kent Beck, Extreme Programming Installed

Implications XP is a from-scratch development model that expects change and tries to share risk, instead of forcing it onto one group or another. The Truth is always a good thing. Even when it’s bad news. Self-Determination (Content, Collaboration, and Choice) The central person in the story of development is the CODER.

‘Book’ XP Whole Team Small Releases Simple Design Test-First DevelopmentDesign Improvement Coding StandardMetaphor Sustainable PaceContinuous Integration Pair Programming Planning Game Collective Code OwnershipCustomer Tests

Agile requirements … Customer and Developers write stories Developers estimate stories in “Points”; –1-3 points per story Customers Prioritize Stories Developers break Stories into tasks Developers sign up for work 1 st iteration: Roughly 3 weeks

Iterations Iterative Feature-Based Time boxed Incremental –Jim Highsmith, Agile Project Management, 40 Inch-Pebble Concept

Releases However often you need to realease 3 months sounds about right (or does it?)

‘Whole’ Team Concept Customers are members of the team Co-Location Who needs a ‘spec’?

“When will you be done?” 3 weeks Implications

Velocity V = D/T Velocity = Points Accomplished/Weeks Velocity normalizes over time Points for a story – “About the same size as” heuristics get better over time

On estimating Simple Working System Feature at a time Spikes as risk management

Design Sessions Two guys at a Whiteboard Emergent design (3 weeks ain’t that long) Very few, high-value artifacts Focus on design, documentation, etc in working code (you ain’t gonna update it)

Coding sessions Pair Programming One Task at a time / Continuous Integration Integration Machine Test Everything that could possibly break AUTOMATED, Test Driven Development – Unit, Integration, System

More coding Collective Code Ownership Coding Standard Simple Design Refactoring

Code Standards Indentation Capitalization Hungarian Notation (Variable Names) Curly-Brace Placement Function Names

Problems with frequent release Regression Testing

Test Driven Development Objects and Functions have unwritten, contracted behavior Mis-understanding about expected behavior causes integration defects Automated tests establish and evaluate expected behavior

More TDD Test-First Development (see handout) Maintenance programming: Find a defect, write a test for it, fix it, make sure it passes the test After the fix, automatically regression test the entire system

The XP Life-Style Sustainable Pace Rarely work 1 week of mild overtime Minimal Coding Simplest solution Least number of interfaces, modules, classes, functions Do not "design for extensibility" Refactoring Get Rid of Duplicate Code

“Steering” Requirements & Priorities Change Estimates change – Truth is good Steer the iteration/steer the release by managing velocity, stories, and bugs

When do you release? Customer-derived acceptance test No QA Department! No V&V! Iterate until the customer is happy or the money runs out. (Shippable at any time; always deliver business value.)

No Testers? 3. Cease dependence on mass inspection Eliminate the need for mass inspection as the way of life to achieve quality by building quality into the product in the first place. Require statistical evidence of built in quality in both manufacturing and purchasing functions. - Dr. Deming’s 3 rd Point of TQM Note that this requires massive, constant peer review. (Pair Design, Pair Programming, Pair Test Script Writing …)

XP Values Simplicity, Communication, Courage, Feedback You ain’t gonna need it Simplest thing that could possibly work

Tailoring XP Few people do ‘book’ XP Use what works for you Apply context-driven principles No Testers?

Cons Probably best for small-to-medium projects Involves change and investment (time) in learning new methods of testing Culture Problems (“We don’t need no silly pair programming”) May have problems with shrink-wrapped development

Conclusions XP is a collection of mutually supportive practices that optimize the shared mental model and keeps developers working on code.

Discussion

References Extreme Programming Installed Extreme Programming Explained Planning Extreme Programming Agile Project Management