Copyright  2001 - Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level.

Slides:



Advertisements
Similar presentations
Keith McMillan Principal, Adept Technologies Copyright (C) 2008, Adept Technologies llc.
Advertisements

Colin Weaver The Eleven Essential Behaviours of Successful Agile Project Teams.
E X treme Programming & Agile Modeling Copyright © 2003 Patrick McDermott UC Berkeley Extension
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
Software Development Methodologies 1. A methodology is: A collection of procedures, techniques, principles, and tools that help developers build a computer.
Slide Set to accompany Web Engineering: A Practitioner’s Approach
Agile Project Management with Scrum
Agile Architecture? Paul Lund 24 th Nov Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Agile Methods.
Agile Software Development
Agile Principles Suradet Jitprapaikulsarn 1. What is Agility? Effective (rapid and adaptive) response to change Effective communication among all stakeholders.
The Agile Alliance By Mark Rucker. The Agile Alliance What is the Agile Alliance? History of the Agile Alliance What is the Agile Alliance today? The.
Does it work with Data Warehouses?. “We are uncovering better ways of developing software by doing it and helping others do it. Through this work we.
An Agile View of Process
Introduction to Agile.
Software engineering Process models Pavel Agejkin.
Agile Development Methods: Philosophy and Practice
How Agile Are You? Larry Apke Agile Expert
The Two Faces of Project Management Bendik Bygstad, NITH IFI, 25.Sept 2009.
1 Staffordshire UNIVERSITY School of Computing Slide: 1 Prototyping Agile Software Development 2 Agile Methods and Software Architectures.
The Two Faces of Project Management Bendik Bygstad, NITH IFI, 16.Sept 2008.
1 Agile Methodology & Programming Ric Holt July 2009.
Software Engineering Modern Approaches
Agile Programming Principles.
The Agile Primer July 2008 © ThoughtWorks 2008.
Agile Web Development C. Daniel Chase University of Colorado at Boulder.
Developed by Reneta Barneva, SUNY Fredonia Agile Development.
Chapter 4 Agile Development
AGILE Methodology. AGILE  derived from the word ‘agile manifesto’, also called the Manifesto for Agile Software Development which is a formal proclamation.
Agile Methods. Agile Process/Method lightweight processes/methods that can be used to manage and control software and product development using iterative,
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
AgileCamp Presents: Agile 101. Good luck in your presentation! This slide deck has been shared by AgileCamp Kit under the Creative Commons Attribution.
Project Workflow. How do you do it? -Discussion-
CS1: Classic Software Life Cycle “Waterfall” method: 1.Requirements/Analysis Determine the problem to be solved – client-centered 2.Specification.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
1 김 수 동 Dept. of Computer Science Soongsil University Tel Fax
AGILE COTS Václav Pergl We are uncovering better ways of developing software by doing it and helping others do it. Through this work.
1 11/21/2015 ã 2007, Spencer Rugaber Agile Manifesto February, 2001 XP, SCRUM, DSDM, Adaptive Software Development,
Why (or When) Agile Fails Creating high performance software delivery teams.
Jeff Briggs Senior Consultant Capstone Consulting.
#2-What is Agile? Why Agile? Subtopics 1- Agile motivation for software / systems 2- Agile tenets and principles 3- Agile as a risk mitigation strategy.
- Discussion of Chapter 1 in Martin and Martin.  We are uncovering better ways of developing software by doing it and helping others do it. Through this.
Chapter 3 Agile Development
Module 2: What is Agile? Why use it? TLO: Given a DoD program involved in software development, the student will recognize situations where applying agile.
Agile Introduction Emerson Murphy-Hill. Agile Manifesto/Alliance XP, SCRUM, DSDM, Adaptive Software Development, Crystal, FDD February 2001 (Snowbird,
By: Isuru Abeysekera AGILE DEVELOPMENT. WHAT IS AGILE DEVELOPMENT? Broad term used to describe several methods for a development process Introduced in.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Baby Steps to Agility How to Grow Into Agile. A little about me A little about Agile Growing into Agile Questions Goals.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Chapter 5 Agile Development Moonzoo Kim KAIST
Agile Project Management
Agile Project Management and the yin & yang of
Introduction to Agile Software Development
Principles for Agile Development
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
#2-What is Agile? Why Agile?
Teaching Agile Methods CSEE&T 2017, Savannah, Georgia
Project Management and the Agile Manifesto
Agile Software Development Paradigms
Rosa María Torres de Paz
Agile Development Agile Development Damian Gordon Damian Gordon.
How Strong is Your Agile Foundation
Adjective: Able to move quickly and easily. Principles and Values
Chapter 3: Agile Software Processes
Projects, Assignments, and other Assessments
Agile Development.
Presentation transcript:

Copyright  Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level SE470 - Extreme Programming Overview Excellence in Software Engineering Repeatable Level Defined Level Managed Level Initial Level Optimized Level Larry Dribin, Ph.D. - DePaul University Phone: (847) Fax: (847) Copyright  Larry Dribin, Ph.D. - v /16/01

Copyright  Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 2 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Agenda  Lecture / discussion on XP  A1 - Informal presentation of each person’s experiences  A2 - Present, discuss and plan

Copyright  Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 3 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Symptoms and Root Causes Some Symptoms:  Requirements in flux  Users needs not met  Poor quality  Schedule slips  Projects cancelled  Cost over runs  Difficulty in maintaining software  Software that work in pilot does not work in production  Business changes faster than systems can keep up  Staff turnover Some Root Causes:  Insufficient and misunderstood requirement  Ambiguous communication  Lack of good software architectures  Undetected inconsistencies  Poor testing  Overwhelming complexity  Uncontrolled changes  Manual practices  Exponentially increasing cost of change

Copyright  Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 4 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Our Goal is to fix the Root Causes through the use of Good Software Engineering Practices Definition of Software Engineering: “The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.” Fritz Bauer Sound Engineering principles consist of:  Processes - Procedures and Life Cycles  Techniques - or Methods  Practices - Repeated performances of activities  Tools - to support Processes, Techniques and Practices

Copyright  Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 5 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Rational’s View of Best Practices The Best Practices reinforce each other and tools are used to guide and support the best practices.

Copyright  Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 6 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Best Practices Rational’s View of Best Practices:  Develop Iteratively  Manage Requirements  Use Component Architectures  Model Visually  Continuously Verify Quality  Control Change XP View of Best Practices:  The Planning Game  Small releases  Metaphor  Simple design  Testing  Refractoring  Pair Programming  Collective ownership  Continuous integration  40-hour work week  On-site customer  Coding standards “An organized and documented set of principles, methods and processes that increase quality and productivity of software development.” Source: Rational - “Principles of Managing Iterative Development v2.0” “An organized and documented set of principles, methods and processes that increase quality and productivity of software development.” Source: Rational - “Principles of Managing Iterative Development v2.0”

Copyright  Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 7 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Extreme Programming  Developed by Kent Beck and Ward Cunningham  Based on Kent and Ward’s initial experiences developing Smalltalk software at Tektronix  First large project was the C3 Payroll Project at Chrysler  1993 project started with a Business Modeling Phase  1994 development begun with a small 40 person consulting firm & Smalltalk  1995 Performance problems - Kent Beck brought in to improve quality  1996 Kent Beck took over project and began implementing project in an new methodology in what we now call Extreme Programming Extreme Programming tends to be less tool and process oriented and more focused on “light weight” processes than many other methodologies.

Copyright  Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 8 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Extreme Programming Background  Part of a movement toward new approaches to software development  Other new approaches include:  Crystal  SSSCRUM  DSDM  Adaptive Software Development  Feature-Driven Development  Pragmatic Programming  On February 11-12, 2001 seventeen of these proponents met at Snowbird ski resort and what emerged was the: Agile “Software Development’ Alliance  See for more details Still have the goal of bringing engineering discipline to software development..

Copyright  Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 9 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Goto

Copyright  Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 10 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level 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. Kent Beck James Grenning Robert C. Martin Mike BeedleJim Highsmith Steve Mellor Arie van BennekumAndrew Hunt Ken Schwaber Alistair CockburnRon Jeffries Jeff Sutherland Ward CunninghamJon Kern Dave Thomas Martin Fowler Brian Marick © 2001, the above signatories this declaration may be freely copied in any form, but only in its entirety through this notice.

Copyright  Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 11 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level As Members of The Agile Alliance, We follow the following principles:  Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.  Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.  Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.  Business people and developers must work together daily throughout the project.  Build projects around motivated individuals.  Give them the environment and support they need, and trust them to get the job done.  The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.  Working software is the primary measure of progress.  Agile processes promote sustainable development.  The sponsors, developers, and users should be able to maintain a constant pace indefinitely.  Continuous attention to technical excellence and good design enhances agility.  Simplicity--the art of maximizing the amount of work not done--is essential.  The best architectures, requirements, and designs emerge from self-organizing teams.  At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Copyright  Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 12 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Back to Extreme Programming Overview of key concepts:  Economics of Software Development  The Four Variables  Cost of Change  Learning to Drive  Four Values  Basic Principles

Copyright  Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 13 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Economics of Software Development  What is the value of a software project  Cash flows in  Cash flows out  Interest rates  Project Mortality  How can we create a strategy for maximizing the economic value of a software project:  Spend less  Earn more  Spend later vs. earlier  Increase probability that project will stay alive to get the big payoff late in the project  Software Project Management Options:  Abandon the project, but still get some value  Switch the direction of the project (change requirements)  Defer the project  Grow the project  Five factors of involved:  Investment to get option  Price of the prize  Current Value of the project  Time till you can exercise the option  Uncertainty in the value of the prize Extreme Programming is about what we have to do as project managers to maximize the value of the project at any time:  Accurate and frequent feedback about progress  Many opportunities to dramatically change the requirements  As smaller initial investment  The opportunity to go faster Extreme Programming is about what we have to do as project managers to maximize the value of the project at any time:  Accurate and frequent feedback about progress  Many opportunities to dramatically change the requirements  As smaller initial investment  The opportunity to go faster

Copyright  Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 14 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level The Four Variables  Software Project Management’s Four Key Variables:  Cost (Effort)  Time (Duration)  Quality (Number of defects)  Scope (Amount of functionality)  Based upon our experiences, these variable are not independent.  If the customer gets to pick any three, then the development team gets to pick the fourth variable A basic problem occurs when the customer believes that they can pick all four variables.

Copyright  Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 15 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Controlling these Variables  Cost - more money will solve our problems  More programmers  More computers and software tools  Time - more time will improve all aspects of delivery  More time will increase quality and scope  May result in software that misses the market window  Quality - is very hard to control  If you can increase quality brute force by more testers and more time  If you decrease quality, you usually do not get a workable solution  Scope - reduced scope will improve quality, deliver faster at lower costs  We can reduce scope to maintain a certain level of cost, time and quality.  We can not increase scope without increasing cost, time or reducing quality. The key variable to control is scope. We can reduce scope to maintain a certain level of cost, time and quality.

Copyright  Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 16 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level The Traditional View of the Cost to Change Software The traditional view is that problems are 100 to 1000 times more expensive to find and repair later in the life cycle than earlier.

Copyright  Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 17 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level XP View of Cost to Change Software Let’s try and find a way to change the curve so that the cost to find and repair software problems does not rise dramatically over time.

Copyright  Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 18 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Some things that would have to change for this cost model to work  Simple design with no extra design elements  Automated tests so that we had confidence we would know if we accidentally changed the existing behavior of the system  Lots of practice so that when we wanted the time came to change the system late in the game, we weren’t not too afraid to try

Copyright  Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 19 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Four Values of XP  Communication - keep the right communication flowing  Simplicity - “What is the simplest thing that could possibly work?”  Feedback - Concrete feedback about the current state of the system  Courage - to do the “right thing” even when it feels like you should be afraid, like making a major architectural change to a system that breaks 1/2 of the test caste

Copyright  Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 20 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Basic Principles  Rapid feedback  Assume simplicity  Incremental change  Embracing change  Quality work

Copyright  Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 21 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Basic Activities XP focuses on basic activities:  Coding  Testing  Listening  Designing

Copyright  Larry Dribin, Ph.D. SE470_XP_v1_1.ppt SE470 XP - 22 Excellence in Software Engineering Repeatable Level Defined Level Manage d Level Initial Level Optimized Level Extreme Programming - Practices 1. The Planning Game - to determine scope 2. Small releases - put into production quickly 3. Metaphor - guides development 4. Simple design - removes extra complexity 5. Testing - continually by programmers and customers 6. Refractoring - t improve the system 7. Pair Programming - to produce all code (artifacts) 8. Collective ownership - anyone can change any code anywhere 9. Continuous integration - build the system many times a day hour Work week - no than 40 per week 11. On-site customer - on the team 12. Coding standards - rules to emphasize communication