Questioning Extreme Programming

Similar documents
Agile Development Methods: Philosophy and Practice. CSCE 315 Programming Studio, Fall 2017 Tanzir Ahmed

Let s Talk About Being Agile

Dr J Paul Gibson, Dept. INF, TSP, Evry, France

Extreme programming XP 5

Certified Scrum Master

04. Agile Development

Scrum er ikke en religion

Agile Methodologies. Introduction ISSSR 2013/2014

Agile. How would you implement agile methodologies and tools for web projects? What do you see as the benefits and challenges to doing this?

Non-object-oriented design methods. Software Requirements and Design CITS 4401 Lecture 15

User-centered System Design. Agile

KF5008 Program Design & Development. Introduction to the Module

Agile 101. Brent Hurley Chief Problem Solver Gira Solutions. Values, Principles

AGILE AND AGILE TESTING KAIZANIA 9 DECEMBER Lionel Bisschoff / Arrie van der Dussen. Kaizania 2009

Agile Business Analysis - Resurgence. Dorothy Tudor - TCC

Lecture 29: Agile Design and Extreme Programming

We are agile but... Gitte Ottosen

CS 5704: Software Engineering

Agile Methods. Introduction to Agile Methods by Pietari Kettunen

Patrick Masson Chief Technology Officer University of Massachusetts Office of the President, UMassOnline

Agile Software Construction. This Course. Course information. Course Contents. Daisy: Software Engineering Agile Methods

Agile Software Development:

Agile Software Development. Agile Software Development Basics. Principles of the Agile Alliance. Agile Manifesto. Agenda. Agile software development

From Adoption to Transition

Build Agile Knowledge - Participate in a sprint!

Agile, a software development model or a religion? Pablo Garcia Munos Knowit AB

A Literature Review on Agile Model Methodology in software Development

Presented by Kiefer Consulting, Inc. 10/31/2016 1

Be Agile. Scale Up. Stay Lean. Have More Fun.

INDEX. Numerics 1970s - iterative practice s - iterative practice 85

Agile Methods. Course "Softwareprozesse" Lutz Prechelt Freie Universität Berlin, Institut für Informatik

Moonzoo Kim. KAIST cs350 Intro. to SE Spring

Lightweight Tools for Agile Methods

Agile BI: Accounting for progress. Tom Breur Data Vault Automation Utrecht, 6 Oktober 2011

The Agile Performance Holarchy

Agile Software Development

Scrum - Introduction. Petri Heiramo. Agile Coach, CST

Chicago PMO Roundtable March 2015

Project Management in Practice Agile Agile 101 Introduction to Agile

EVERYTHING YOU VE HEARD ABOUT AGILE DEVELOPMENT IS WRONG

Foundations of Software Engineering. Process: Agile Practices Michael Hilton

Agile Software Development Agreements: Navigating the Complex Contracting Issues

Guideline for Sizing Agile Projects with COSMIC

Agile Software Development in a Regulated Environment. Natalie Custer

13. Team evolutionary developement

2. True or false: In Scrum all the requirements for the project are known prior to the start of development.

Lecture 1. Topics covered. Rapid p development and delivery is now often the most important requirement for software systems.

Agility and Scrum: And Responsibility. Jim Coplien Gertrud&Cope

Intersection of Agile and Change Management: Agenda

Management by Consensus

Software Development Methodologies

TOCICO CONFERENCE 2004

Agile Projects 7. Agile Project Management 21

Ken Auer RoleModel Software, Inc. Copyright , RoleModel Software, Inc.

The problem. extreme Programming (XP) Conclusions Resources. Problems in software development. Practices Why XP works Benefits of XP

Extreme Programming, an agile software development process

Agile Program Development. Agile Manifesto 9/3/2013. What is Agile Development? 12 Principles of Agile Development 1 of 4

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

Australia New Zealand Testing Board ANZTB SIGIST. Presenter: Leanne Howard. May 2010

Russell Pannone February 10, 2009

COMP 6481 Fall 2006 System Requirement Specifications

Software Engineering G Session 12 Sub-Topic 1 Risk Management in Adaptive Software Engineering. Dr. Jean-Claude Franchitti

Johanna Rothman. Chapter 1 Why Agile and Lean Approaches Work. Copyright 2017

Fundamentals of Agile Webinar. Copyright 2011 Coveros, Inc.. All rights reserved.

Agile Methods. Course "Softwareprozesse" Lutz Prechelt Freie Universität Berlin, Institut für Informatik

Agile Thinking. Petri Heiramo. Agile Coach, CST

Lecture 8 Agile Software Development

Marrying AM and EA in large organizations

Debunking Agile Myths

Selling Agile Transformation to Upper Management

THE ADVANTAGES OF AGILE METHODOLOGIES APPLIED IN THE ICT DEVELOPMENT PROJECTS

Agile & Lean / Kanban

Certified Scrum Product Owner Course. Pre-Course Reading and Exercises

Agile Beyond Software

Software Engineering & Project Management Engr. Abdul-Rahman Mahmood MS, PMP, MCP, QMR(ISO9001:2000)

Ian Koenig Quality IS Projects, Inc. Philippines Chapter Project Management Institute June 8 th 2010

Agile Essentials Track: Business Services

SCEA 2010 EST06. Estimating Issues Associated with Agile Development. Bob Hunt Vice President, Services Galorath Incorporated

A SANTEON COMPANY. KEY CONCEPTS OF AGILE Ahmed Sidky, Ph.D. (aka Dr. Agile)

Other Agile Approaches & Methodologies

Agile delivery. Delight your organisation & increase job satisfaction

ESSENTIAL RECIPES FOR THE DIGITAL JOURNEY OF ENTERPRISES

Introduction. Agile overview. 12 Agile Principles

Agile Development Processes. CSCE Lecture 3-08/31/2017

Agile Software Development

Are we Agile Yet? Agile is NOT a Destination

Agile Manifesto & XP

SOFTWARE ENGINEERING SOFTWARE-LIFE CYCLE AND PROCESS MODELS. Saulius Ragaišis.

ONE! TEAM! 2010, Nick Athanassiadis. All rights reserved.!

The Stability States of Scrum: 2 Keys to Building High Performing Teams

AGILE METHODS AND DATA WAREHOUSING:

Software Engineering Part 2

Dissatisfaction with the overheads involved in software design methods of the 1980s and 1990s led to the creation of agile methods.

Web Application Development Process

Being Agile at a Small Agency How to Apply Agile Principles in a Not-So-Iterative Environment

Agile Software Construction

Agile Planning with a Multi-customer, Multi-project, Multi-discipline Team

Software Engineering Lecture 5 Agile Software Development

Chapter 3 Agile Software Development. Part 1b

Software Development*

Transcription:

2002 McBreen.Consulting Questioning Extreme Programming Should we optimize our software development process? Pete McBreen, McBreen.Consulting petemcbreen@acm.org

Agile approaches to software development are getting a lot of publicity, is this good? This talk asks questions about Agile methods and Extreme Programming What is so special about the Agile approaches? What other agile approaches are there? Should we be optimizing our processes for particular outcomes? If so, who gets to choose the desirable outcomes? What outcomes are valued by your organization? What should the future of software development look like? Page 2

Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. Page 3

The methodologies that contributed to the manifesto are quite diverse Adaptive Software Development Crystal methods Dynamic Systems Development Method Extreme Programming Feature Driven Development Pragmatic Programming Scrum Page 4

Adaptive Software Development was created by Jim Highsmith ASD is based on the ideas of Complexity and Emergence Managing the workstate rather than the workflow is the key difference Collaboration and self-organization enable emergence Describes a new lifecycle Speculate, Collaborate, Learn ASD is intended for extreme projects that push the limits of what is possible Page 5

The Crystal methods were developed by Alistair Cockburn The Crystal methods apply the idea that all processes are situational They are a set of human scale, tolerant processes tuned for different projects Trust people to be good citizens Use incremental development so the team gets practice at delivering, and, Are barely sufficient to avoid overloading people with process. Page 6

Dynamic Systems Development Method is modernized Rapid Application Development DSDM is about controlling and managing the rapid delivery of applications DSDM uses empowered teams to deliver quality applications through the use of timeboxed development Do enough and no more, Use active user involvement to ensure fitness for business purpose, and Iterative development to converge on an accurate solution. Page 7

Extreme Programming: the revenge of the programmers :-) A set of synergistic practices that maximize the amount of work not done A highly incremental process that allows an on-site customer to steer the project Based on 5 core values Communication, Simplicity, Feedback, Courage and Respect Uses pair programming for all production code Does the simplest thing that could possibly work Preaches the idea of Test Driven Development Page 8

Feature Driven Development was designed by Peter Coad FDD aims to deliver frequent, tangible, working results FDD is unique among the Agile methods in promoting the use of CASE tools Uses Feature Teams lead by a Chief Programmer Has a heavy focus on modeling and archetypes Supported by CASE tool that is also a Java IDE Design By Feature, Build By Feature using a two week cycle Page 9

Pragmatic Programming is based on a book written by Andy Hunt and Dave Thomas Pragmatic Programming addresses the facing issues teams of 2 or 3 developers More concerned with individual mastery of the craft of software development Individual craftsmanship as a foundation for overlal team success Focuses on effective, appropriate use of tools Encourages a seamless approach - specification and implementation as different aspects of the same process Page 10

Scrum was created by Ken Schwaber, Jeff Sutherland and Mike Beedle Scrum is an empirical process for managing software product development It reintroduces flexibility, adaptability and productivity into systems development Work can and should be an ennobling experience Projects are divided into sprints to allow developers to focus on delivery Empirical management using frequent, first hand observations and daily scrum meetings Page 11

What is so different about these Agile approaches? All put people and the interaction between people as the main focus of attention All embrace the idea that dealing with partial knowledge is the key to success Their response to schedule pressure is to prioriotize and focus on early delivery They require extensive involvement by the project sponsors and users Page 12

The Agile approaches are changing the way that software development is done The Agile approaches are changing the conversation about software development Agile shifted our attention to small teams incrementally delivering quality software Whether this is a good thing or not is still open to question In optimizing our process towards the Agile approach, what are we giving up? Page 13

What does it mean to optimize a process? Optimization means altering the process to gain a different (more valuable?) outcome Optimization is directed process improvement Who gets to choose the direction? How do we decide which aspects of a process are the valuable ones? How do we decide what we are willing to give up in order to get the valued outcome? Does process specialization have any risks? Page 14

Before looking any deeper, first let us look at how we optimize a process Optimization implies changing something Getting the team to work in a different way Changing the deliverables and standards Changing the interactions between team roles Changing the vocabulary and conversations The easiest way to change behavior is to change the vocabulary and conversations Reworking code to conform to standards is a pain, but Refactoring is fun XP has successfully changed the conversation Page 15

What does Extreme Programming optimize? Hint: Look at the project outcomes Developer enjoyment Entire team agrees this is the best project they ve ever been on - Ron Jeffries speaking about C3 Predictable, sustained and sustainable pace The project can go at any pace it wants to. The point is steering, not going full speed Maximizing the team's tacit knowledge The best way to keep the knowledge of a system alive and well is to maintain the continuity of the development team. - Robert Martin Page 16

What else might you want to optimize for? The business as usual answer is everything but it doesn't work out that way When everything is important, the item that gets paid attention to seems to be pseudo-random Faster, Better, Cheaper is not realistic On Time, On Budget, On Mars - pick two As Jim Highsmith suggests, choose an appropriate Mission Profile Then optimize to excel at the chosen outcome Page 17

Different organizations could want to optimize many different things Productivity Minimum budget Rapid delivery Efficiency/Burn rate On-time delivery Beating the estimates Success with newbies Following the plan Working with incomplete knowledge Handling emergent requirements Leveraging experts Exploiting serendipity Community involvement Successful diversity Supporting individuality Page 18

Optimization affects Agile development if taken to extremes Agility means supporting the Manifesto for Agile Software Development Valuing individuals and interactions is key Extreme Programming sometimes devalues the experience of individuals You can use any coding standard you like, just not on this project - the team outweighs individuals Although they are just rules, XP is intolerant of variations that could reduce predictability Page 19

Does your organization value what Extreme Programming offers? Product development organizations usually value a predictable, sustainable pace Many recognize that it is hard to write everything down, so they value the team's tacit knowledge Developer enjoyment is rarely a priority, but two out of three is not that bad Contract and in-house development are dominated by the project plan XP doesn't offer much to the project manager Page 20

By Questioning Extreme Programming we can shape the future of software development Something else will follow XP and further redefine software development Is your voice going to be heard? XP was not a corporate initiative, it was just a couple of people with a vision What is your vision for software development? What conversations are you going to start? Do you need to create any new distinctions? Our challenge - The Feyerabend Project Page 21

The Feyerabend Project An Invitation to Redefine Computing Fifty years into the First Computing Era some of us in the computing arena have come to realize we ve made a false start that can t be fixed, and for us to finally be able to produce lasting, correct, beautiful, usable, scalable, enjoyable software that stands the tests of time and moral human endeavor, we need to start over. Perhaps we ll be able to salvage some of what we ve learned from the First Era, but I expect almost everything except the most mathematical fundamentals to be brushed aside. Richard P. Gabriel http://www.dreamsongs.com/ Page 22