View
214
Download
0
Tags:
Embed Size (px)
Citation preview
SE 470Software Development Processes
James Nowotarski
28 April 2003
Course Map
Overview. Introduction. History
Content. Rational Unified Process. Extreme Programming
Implementation. Tools, Training, Roles. CMM, Metrics. Selection & Evaluation
Briefings (Term Papers)
1 2 3 4 6 7 8 9 10 115
Assignments
Quizzes
Week
Mem
ori
al D
ay
• Background on Lightweight Methods• Understand basics of Extreme Programming
– Principles– Benefits– What’s Different– Applicability– Track Record– Key Players & Products– References
Today’s Objectives
Topic Duration
• Quiz 2 and Assignment 1 Recap 10 minutes
• Lightweight Methods 30 minutes
• Extreme Programming 45 minutes
• *** Break 10 minutes
• Assignment 5 reports 15 minutes
• Extreme Programming (cont.) 60 minutes
• Term Project 15 minutes
Today’s agenda
Topic Duration
• Quiz 2 and Assignment 1 Recap 10 minutes
• Lightweight Methods 30 minutes
• Extreme Programming 45 minutes
• *** Break 10 minutes
• Assignment 5 reports 15 minutes
• Extreme Programming (cont.) 60 minutes
• Term Project 15 minutes
Today’s agenda
Rational Unified Process
Assignment 1 Recap
Best practice average top vote low vote
Iterative development 19.3 2.5 1Manage requirements 15.8 1 1Use component-based architecture 17.7 2 1Visually model software 18.1 2 1Continuously verify software quality 18.2 1.5 1Control changes to software 10.9 0 4
Topic Duration
• Assignment 1 Recap 10 minutes
• Lightweight Methods 30 minutes
• Extreme Programming 45 minutes
• *** Break 10 minutes
• Assignment 5 reports 15 minutes
• Extreme Programming (cont.) 60 minutes
• Term Project 15 minutes
Today’s agenda
Lightweight Methods
• Just enough process• Emphasis on the people on the team• Embrace change (adaptive/agile vs. predictive)• Frequent testing• Frequent releases• Much less documentation
Key Principles
Lightweight Methods
• Extreme Programming (XP) (Kent Beck)• Crystal (Alistair Cockburn)• Adaptive Software Development (Jim Highsmith)• SCRUM (Ken Schwaber)• Feature Driven Development (Peter Coad, Ken
DeLuca, Steve Palmer)
Several methodologies fit under this lightweight banner
Lightweight Methods
• On February 11-12, 2001 seventeen proponents met at Snowbird ski resort and what emerged was the:Agile “Software Development” Alliance
• “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”
Approach References
XP www.extremeprogramming.org
www.xprogramming.com
Crystal A. Cockburn, Agile Software Development, Addison-Wesley, 2001
SCRUM K. Schwaber and M. Beedle, Agile Software Development with Scrum, Prentice Hall, 2001.
Adaptive Software Development
J. Highsmith, Adaptive Software Development, Dorset House, 2000.
FDD S. Palmer, A Practical Guide to Feature-Driven Development, Prentice Hall, 2002.
Agile - General http://www.agilealliance.org/home
Lightweight Methods
Topic Duration
• Quiz 2 and Assignment 1 Recap 10 minutes
• Lightweight Methods 30 minutes
• Extreme Programming 45 minutes
• *** Break 10 minutes
• Assignment 5 reports 15 minutes
• Extreme Programming (cont.) 60 minutes
• Term Project 15 minutes
Today’s agenda
XP Background
• Developed by Kent Beck and Ward Cunningham• Based on Beck and Ward’s experiences developing
Smalltalk software at Tektronix• First large project was the C3 Payroll Project at Chrysler
– 1993 project started with Business Modeling– 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 a new method that we now call Extreme Programming
What is XP
• Rapid feedback• Assume simplicity• Incremental change• Embrace change• Quality work
First Principles
What is XP
• Pair programming • Test all the time
– unit testing– functional testing– continuous integration
• Short iterations, small releases– 2 month releases, 2 week iterations
• Incremental planning (learning to drive)• Customer on-site as integral part of team• Do simplest thing that could possibly work
Key Features
What is XP
• 40-hour week• Coding standards• Refactoring and evolutionary design• Metaphor to aid in understanding the
architecture• Only highest priority tasks are worked• Collective ownership
Key Features
What is XP
Life cycle phase
Co
st
of
ch
an
ge
Req Anal. Des. Impl. Test Prod
y = axp
What is XP
Time
Co
st
of
ch
an
ge
XP purports to change the curve so that the cost to find and repair software problems does not rise dramatically over time
What is XP
• Start design with a test• Start coding with a test• Test things that might break• Testing is isolated• Testing is automated• At least one dedicated tester
Begin with the end in mind . . .
What is XP
• Faster• Better quality• Cheaper• Reduced risk• More likely to be followed than a heavyweight
methodology• More fun
Benefits
When to Use XP
• Small to medium sized teams• Vague or rapidly changing requirements• 2-10 programmers • Responsible and motivated developers• Not sharply constrained by existing computing
environment• A reasonable job of executing tests can be done in a
fraction of a day• Customer who understands and will get involved
When Not to Use• Culture
– Pointing the car– Big specification– Long hours
• 20 or more programmers– though projects are emerging with up to 50 developers
• More than 15 months’ duration• More than 50K source lines of code (SLOC)• Fixed price contracts• Technology barriers
– Exponential cost curve– Long time needed to get feedback
• Geographic separation• Architecture not well established• Developers are low quality and motivation
What’s the Same
What’s Different
RUP vs. XP
Attribute RUP (“Heavyweight”) XP (“Lightweight”)
Time and Effort Allocation
2 weeks-6 months 2 weeks - 2 months
Architecture Stabilized during Elaboration phase
Just enough to support functionality
Scope of Activities and Artifacts
Broad Narrow
Omits:
• Business modeling
• Deployment
Project size Small to Very Large Small to Medium
Artifacts 25-30 in small project roadmap
roughly 30
Roles ~ 30 (5 in small project roadmap)
7
Assignment 1 Recap
Best practice average top vote low vote
Iterative development 19.3 2.5 1Manage requirements 15.8 1 1Use component-based architecture 17.7 2 1Visually model software 18.1 2 1Continuously verify software quality 18.2 1.5 1Control changes to software 10.9 0 4
Topic Duration
• Quiz 2 and Assignment 1 Recap 10 minutes
• Lightweight Methods 30 minutes
• Extreme Programming 45 minutes
• *** Break 10 minutes
• Assignment 5 reports 15 minutes
• Extreme Programming (cont.) 60 minutes
• Term Project 15 minutes
Today’s agenda
Term Paper
Summary:A briefing on a significant, currently relevant software development methodology or process-related framework not covered in class
Deliverables:PaperPresentation and Discussion (30 minutes)
Topic Ideas:SCRUMFeature Driven DevelopmentAdaptive Software DevelopmentCrystalSEI Team Software ProcessSEI Personal Software Process
Term Paper
Paper Outline:1. Abstract2. Historical Background3. Description
• Philosophy/Principles• Components• Benefits
4. Usage Guidelines• When to use/avoid• Success factors/Challenges
5. Marketplace Analysis• Key Players/Products/Gurus• Market data/forecasts
6. References• Books, articles, web sites• Need to interview a practitioner and/or faculty
member
• Kruchten, Chapter 17• Quiz #3
– XP
– Implementing Methodology
Topics for May 5
Extra Slides