Presentation is loading. Please wait.

Presentation is loading. Please wait.

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.

Similar presentations


Presentation on theme: "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."— Presentation transcript:

1 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 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)807-7390 - Fax: (847)459-1650 Email: dribin@cs.depaul.edu Copyright  2001 - Larry Dribin, Ph.D. - v1.1 - 9/16/01

2 Copyright  2001 - 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

3 Copyright  2001 - 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

4 Copyright  2001 - 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 -1969 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

5 Copyright  2001 - 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.

6 Copyright  2001 - 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”

7 Copyright  2001 - 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.

8 Copyright  2001 - 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 www.agilealliance.org for more details Still have the goal of bringing engineering discipline to software development..

9 Copyright  2001 - 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 www.agilealliance.org

10 Copyright  2001 - 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.

11 Copyright  2001 - 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.

12 Copyright  2001 - 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

13 Copyright  2001 - 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

14 Copyright  2001 - 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.

15 Copyright  2001 - 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.

16 Copyright  2001 - 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.

17 Copyright  2001 - 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.

18 Copyright  2001 - 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

19 Copyright  2001 - 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

20 Copyright  2001 - 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

21 Copyright  2001 - 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

22 Copyright  2001 - 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 10. 40-hour Work week - no than 40 per week 11. On-site customer - on the team 12. Coding standards - rules to emphasize communication


Download ppt "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."

Similar presentations


Ads by Google