Introduction to extreme Programming (XP)



Similar documents
Agile processes. Extreme Programming, an agile software development process

Introduction. Motivational Principles. An Introduction to extreme Programming. Jonathan I. Maletic, Ph.D.

Agile processes. Extreme Programming, an agile software development process. Extreme Programming. Risk: The Basic Problem

Génie Logiciel Avancé Cours 6 Extreme Programming

Extreme Programming, an agile software development process

Extreme Programming, an agile software development process

XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

An Introduction to Extreme Programming

Extreme Programming. Sergey Konovalov and Stefan Misslinger. May 23, 2006

Contents. 3 Agile Modelling Introduction Modelling Misconceptions 31

Agile Testing and Extreme Programming

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

RUP and XP, Part I: Finding Common Ground

Agile with XP and Scrum

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Development Techniques. CSE301 University of Sunderland Harry R. Erwin, PhD

Agile Development Overview

Introduction to Agile Software Development

Quality Assurance Software Development Processes

Build your Project using Extreme Programming #2 of a Series, by Pavan Kumar Gorakavi, M.S., M.B.A, G.M.C.P, C.A.P.M.

Extreme Programming: Strengths and Weaknesses

EXTREME PROGRAMMING AGILE METHOD USED IN PROJECT MANAGEMENT

Software Development Life Cycle (SDLC)

Extreme Programming. As software organizations continue to move

EPL603 Topics in Software Engineering

Agile Development with C#

An Overview of Quality Assurance Practices in Agile Methodologies

CSE 435 Software Engineering. Sept 16, 2015

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming

Agile and Secure: Can We Be Both?

Atern The latest version of the DSDM approach which makes DSDM appropriate to all types of project.

Deep Agile Blending Scrum and Extreme Programming. Jeff Sutherland Ron Jeffries

Agile Methodologies XP and Scrum

Agile Models. Software Engineering Marco Scotto Software Engineering

Agile Methodologies and Its Processes

Basic Trends of Modern Software Development

History of Agile Methods

Agile Software Development Methodologies and Its Quality Assurance

Agile Software Development and Service Science

Test Driven Development Part III: Continuous Integration Venkat Subramaniam

Agile Software Development and Service Science

Human Aspects of Software Engineering: The Case of Extreme Programming

Agile So)ware Development

The Agile Manifesto is based on 12 principles:

XP and TDD. Extreme Programming and Test Driven Development. Bertrand Meyer, Manuel Oriol Andreas Leitner. Chair of Software Engineering ETH Zurich

A Capability Maturity Model (CMM)

Agile and lean methods for managing application development process

Embracing Change with Squeak: Extreme Programming (XP)

Agile Software Development

The Agile approach Extreme Programming (XP) Implementing XP into a software project Introducing HCI design into agile software development Summary

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

Comparing Agile Software Processes Based on the Software Development Project Requirements

CSSE 372 Software Project Management: More Agile Project Management

Software Development Methodologies

SOFTWARE ENGINEERING CSC 423 B - MWF EXTREME PROGRAMMING

Agile Methods: extreme Programming (XP)

A Glossary of Scrum / Agile Terms

An Agile Methodology Based Model for Change- Oriented Software Engineering

Introduction to Agile Software Development. EECS 690 Agile Software Development

Agile Software Development

INTERNATIONAL JOURNAL OF ADVANCES IN COMPUTING AND INFORMATION TECHNOLOGY An International online open access peer reviewed journal

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

Copyright is owned by the Author of the thesis. Permission is given for a copy to be downloaded by an individual for the purpose of research and

Enhancement of XP for Cloud Application Development Sara Tariq, Muhammad Mohsin Nazir, Farhat Saleemi

Software Requirements and Specification

AGILE SOFTWARE DEVELOPMENT

An Agile Software Development Framework

EXIN Agile Scrum Foundation. Sample Exam

D25-2. Agile and Scrum Introduction

Agile Scrum Workshop

Slide 2.1. Slide 2.3. Slide 2.5

Agile and lean methods for managing application development process

Vragen. Software development model. Software development model. Software development model

Scrum. SE Presentation. Anurag Dodeja Spring 2010

Introduction to Agile Software Development Process. Software Development Life Cycles

extreme Programming An Overview

Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study

Agile Notetaker & Scrum Reference. Designed by Axosoft, the creators of OnTime the #1 selling scrum software.

SmartBear Software Pragmatic Agile Development (PAD) Conceptual Framework

SOFTWARE PROCESS MODELS

Agile and Secure: OWASP AppSec Seattle Oct The OWASP Foundation

Life-Cycle Model. Software Life-Cycle Models. Software Development in Theory. Software Development in Practice

Agile Software Development

CS435: Introduction to Software Engineering! " Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman

EXIN Agile Scrum Foundation

Agile and Secure Can We Be Both? Chicago OWASP. June 20 th, 2007

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

Transcription:

Introduction to extreme Programming (XP) Extreme Programming (XP) Kent Beck C3 Project Chrysler Comprehensive Compensation system. XP Values: Communication Courage Feedback Simplicity Established the Twelve Practices 2 1

Four Project Variables Time duration of the project Quality the requirements for correctness Resources personnel, equipment, etc. Scope what is to be done; the features to be implemented Pick three, any three... 3 Metaphor Release Planning Testing Pair Programming Refactoring Simple Design Collective Code Ownership Continuous Integration On-site Customer Small Releases 40-Hour Work Week Coding Standards Twelve Practices (XP) 4 2

The Extreme Lifecycle http://www.extremeprogramming.org/index.html 5 The 12 Practices of XP 1. Metaphor 2. Release Planning 3. Testing 4. Pair Programming 5. Refactoring 6. Simple Design 7. Collective Code Ownership 8. Continuous Integration 9. On-site Customer 10. Small Releases 11. 40-Hour Work Week 12. Coding Standards 6 3

The closest XP comes to architecture Metaphor Gives the team a consistent picture of describing the system, where new parts fit, etc. C3 payroll... The paycheck goes down the assembly line and pieces of information are added. Sometimes, you just can t come up with one 7 Release Planning Requirements via User Stories Short (index-card length) natural language description of what a customer wants (A commitment for further conversation) Prioritized by customer Resource and risk estimated by developers Via The Planning Game Highest priority, highest risk user stories included in early time boxed increments Play the Planning Game after each increment 8 4

Test-Driven Development (TDD) Write tests before code Tests are automated Often use xunit framework Must run at 100% before proceeding Testing Acceptance Tests Written with the customer Acts as contract Measure of progress 9 Pair Programming Pair-programming has been popularized by the extreme Programming (XP) methodology With pair-programming: Two software engineers work on one task at one computer One engineer, the driver, has control of the keyboard and mouse and creates the implementation The other engineer, the navigator, watches the driver s implementation to identify defects and participates in on-demand brainstorming The roles of driver and observer are periodically rotated between the two software engineers 10 5

Pair Programming 11 Research Findings to Date Strong anecdotal evidence from industry We can produce near defect-free code in less than half the time. Empirical Study Pairs produced higher quality code 15% more test cases passed (difference statistically significant) Pairs completed their tasks in about half the time 58% of elapsed time (difference not statistically significant) Most programmers reluctantly embark on pair programming Pairs enjoy their work more (92%) Pairs feel more confident in their work products (96%) 12 6

Refactor Mercilessly Improve the design of existing code without changing functionality Simplify code Opportunity for abstraction Remove duplicate code Relies on testing to ensure nothing breaks in the process of refactoring. 13 Simple Design No Big Design Up Front (BDUF) Do The Simplest Thing That Could Possibly Work Including documentation You Aren t Gonna Need It (YAGNI) CRC cards (optional) 14 7

Collective Code Ownership Code to belongs to the project, not to an individual engineer As engineers develop required functionality, they may browse into and modify any class. 15 Continuous Integration Pair writes up unit test cases and code for a task (part of a user story) Pair unit tests code to 100% Pair integrates Pair runs ALL unit test cases to 100% Pair moves on to next task with clean slate and clear mind Should happen once or twice a day. Prevents IntegrationHell 16 8

On-Site Customer 17 On-Site Customer Customer available on site to clarify stories and to make critical business decisions. Developers don t make assumptions Developers don t have to wait for decisions Face to face communication minimizes the chances of misunderstanding 18 9

Small Releases Timeboxed As small as possible, but still delivering business value No releases to implement the database Get customer feedback early and often Do the planning game after each iteration Do they want something different? Have their priorities changed? 19 40 Hour Work Week 20 10

Sustainable Pace Kent Beck says,... fresh and eager every morning, and tired and satisfied every night Burning the midnight oil kills performance Tired developers make more mistakes, which slows you down more in the long run If you mess with people s personal lives (by taking it over), in the long run the project will pay the consequences 21 Coding Use Coding Conventions Considering Pair Programming, Refactor Mercilessly, and Collective Code Ownership... need to easily find your way around (other people s) code Method Commenting Priority placed on intention-revealing code If your code needs a comment to explain it, rewrite it. If you can't explain your code with a comment, rewrite it. 22 11

The 13 th Practice? The Stand Up Meeting Start day with 15-minute meeting Everyone stands up (so the meeting stays short) in circle Going around the room everyone says specifically: What they did the day before What they plan to do today Any obstacles they are experiencing Can be the way pairs are formed 23 Agile Software Development Portal: agile.csc.ncsu.edu/ Resources Agile Alliance www.agilealliance.com www.extremeprogramming.org/ Laurie Williams North Carolina State: collaboration.csc.ncsu.edu/laurie/index.html 24 12