Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.