Transcript Document

SE 470
Software Development Processes
James Nowotarski
05 May 2003
Course Map
Week
1
2
3
4
5
6
7
8
9
Content
. Rational Unified Process
. Extreme Programming
Implementation
. Tools, Training, Roles
. CMM, Metrics
. Selection & Evaluation
Briefings (Term Papers)
Assignments
Quizzes
Memorial Day
Overview
. Introduction
. History
10
11
Today’s Objectives
• Understand who uses methodology and why
• Understand key strategies and issues affecting
methodology deployment, adoption, and usage
• Be able to outline a methodology deployment plan
Today’s agenda
Topic
Duration
• Recap
15 minutes
• Who reads methodology and why
30 minutes
• Deployment, adoption, use
45 minutes
• *** Break
10 minutes
• Deployment, adoption, use (cont.)
45 minutes
• Term Project
10 minutes
• Quiz
40 minutes
Today’s agenda
Topic
Duration
• Recap
15 minutes
• Who reads methodology and why
30 minutes
• Deployment, adoption, use
45 minutes
• *** Break
10 minutes
• Deployment, adoption, use (cont.)
45 minutes
• Term Project
10 minutes
• Quiz
40 minutes
Lightweight Methods
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
What is XP
First Principles
•
•
•
•
•
Rapid feedback
Assume simplicity
Incremental change
Embrace change
Quality work
What is XP
Key Features
• 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
What is XP
Key Features
•
•
•
•
40-hour week
Coding standards
Refactoring and evolutionary design
Metaphor to aid in understanding the
architecture
• Only highest priority tasks are worked
• Collective ownership
What is XP
Cost of change
y = axp
Req
Anal. Des. Impl. Test
Prod
Life cycle phase
What is XP
Cost of change
XP purports to change the curve so that the cost to find
and repair software problems does not rise
dramatically over time
Time
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 XP
• 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
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 7
roadmap)
Today’s agenda
Topic
Duration
• Recap
15 minutes
• Who reads methodology and why
30 minutes
• Deployment, adoption, use
45 minutes
• *** Break
10 minutes
• Deployment, adoption, use (cont.)
45 minutes
• Term Project
10 minutes
• Quiz
40 minutes
Who Reads Methodology and Why
• Study of 1000 practitioners by Prof. Gezinus Hidding,
Loyola University (mid-1990’s)
• Practitioners seldom “read” the methodology
• But when they do, it is to:
– learn about something new (training)
– look something up that they once knew or want to
confirm (reference)
• Different needs depending on role
Who Reads Methodology and Why
Methodology is used mostly by planners and
mostly for reference purposes
How Used
Training
Roles
Reference
Planning
8%
36%
Selling
6%
20%
Doing
6%
13%
Managing
2%
9%
Source: Gezinus Hidding, Loyola University
Who Reads Methodology and Why
Process descriptions and artifacts are the
most valuable types of information
Reference
Process
Artifact
Guideline
Concept
Planning
43%
37%
14%
7%
Selling
48%
35%
12%
5%
Doing
40%
34%
16%
10%
Managing
42%
34%
18%
6%
Source: Gezinus Hidding, Loyola University
Who Reads Methodology and Why
• Information needs of planners (“crucial target”)
– need for speed
– summary overviews of processes and artifacts
• Information needs of doers
– artifact samples
– guidelines
Today’s agenda
Topic
Duration
• Recap
15 minutes
• Who reads methodology and why
30 minutes
• Deployment, adoption, use
45 minutes
• *** Break
10 minutes
• Deployment, adoption, use (cont.)
45 minutes
• Term Project
10 minutes
• Quiz
40 minutes
Overview
Kruchten, Chapter 17
Configuration
Implementation
Hardest
Part
Configuration
• Configure for organization/organizational unit
• Configure for project
Why is Implementation so hard?
• Process change affects behavior
• Target audience lacks time
• Not a “sexy” topic
Kruchten’s Implementation Steps
Current process
1. Assess the current state
2. Set (or revise) goals
3. Identify risks
4. Plan the process implementation
New process
Completely
Implemented
5. Execute the process implementation
6. Evaluate the process implementation
Kruchten’s Implementation Steps
Current process
1. Assess the current state
2. Set (or revise) goals
3. Identify risks
4. Plan the process implementation
New process
Completely
Implemented
5. Execute the process implementation
6. Evaluate the process implementation
1. Assess the current state
One approach to assessment: Look at assets,
deployment of assets, and usage of assets
Scorecard/Gap Analysis
Assets
Bus. Modeling
Requirements
Analysis & Design
etc.
Deployment
Usage
1. Assess the current state
• Assets: Do we have good stuff?
• Deployment: Do people know about the assets? Do
people know what to do with the assets?
• Usage: Are people using the assets on projects?
1. Assess the current state
The focus of SE 470 is the process
component of software engineering
SE 470
Process
Technology
People
1. Assess the current state
Methodology introduces new capability into
targeted units
Process
Technology
People
1. Assess the current state
People and Technology elements must be
addressed also
Process
Technology
People
• Ownership/Sponsorship
• Motivation
• Rewards/Incentives
• Training
• Physical work environment
• Roles, reporting relationships
• Performance measurement
1. Assess the current state
People and Technology elements must be
addressed also
Process
Technology
People
• Tools
• Standards
• Reusable components
• Alignment with other frameworks
Kruchten’s Implementation Steps
Current process
1. Assess the current state
2. Set (or revise) goals
3. Identify risks
4. Plan the process implementation
New process
Completely
Implemented
5. Execute the process implementation
6. Evaluate the process implementation
Kruchten’s Implementation Steps
Current process
1. Assess the current state
2. Set (or revise) goals
3. Identify risks
4. Plan the process implementation
New process
Completely
Implemented
5. Execute the process implementation
6. Evaluate the process implementation
Elements of an Implementation Plan
•
•
•
•
•
•
•
Sponsorship
Marketing & Communication
Education & Training
Coordination with other initiatives
Rollout schedule
Support
Metrics
Elements of an Implementation Plan
• Sponsorship
– Executive level
– Visibility
– Accountability
Elements of an Implementation Plan
• Marketing & Communication
– Need to be aware of where target audience is:
-- Misinformed
-- Unaware
-- Aware
-- Understand
-- Believe
-- Action
– Err on side over-communication
– Relate to business performance objectives
– Types of materials? (discuss)
Elements of an Implementation Plan
• Education & Training
– Train-the-Trainer
– Rollout training (one-time event)
-- For the unwashed masses
-- “Retread” training
– Ongoing training curriculum
– Levels to target
-- User
-- Developer
-- Manager
-- Executive
Elements of an Implementation Plan
• Coordination with other initiatives
– Align vocabulary, practices
– Examples:
-- Performance evaluations
-- IT strategy
– Allow others to “invoke” methodology
-- Analogous to Microsoft publishing API’s in
a Software Developer Kit (SDK)
Elements of an Implementation Plan
• Rollout schedule
– Incremental approach recommended
– Pilot is usually a good idea
-- Shake out
-- Success story will help with takeup by
others
-- Especially critical if risks are great
-- “the most effective way to introduce
process and tools”
Elements of an Implementation Plan
• Support
– Local experts
– Central help desk
– Need to capture feedback (“experience
factory”)
-- Fixes
-- Enhancements
-- Innovations
Elements of an Implementation Plan
• Metrics
– Training
– Awareness
– Usage
– Local experts time allocation
– Help desk requests
– Errors/Enhancements
4. Plan the process implementation
Methodology introduces new capability into
targeted units
Process
Technology
People
Kruchten’s Implementation Steps
Current process
1. Assess the current state
2. Set (or revise) goals
3. Identify risks
4. Plan the process implementation
New process
Completely
Implemented
5. Execute the process implementation
6. Evaluate the process implementation
Kruchten’s Implementation Steps
Current process
1. Assess the current state
2. Set (or revise) goals
3. Identify risks
4. Plan the process implementation
New process
Completely
Implemented
5. Execute the process implementation
6. Evaluate the process implementation
Kruchten’s Implementation Steps
Implementing a process is a project
Phase 1
Phase 2
Phase 3
Phase 4
The group of people working on implementing the
process should be dedicated
Implementation Key Success Factors
• Involve systems developers in assessing current process
• Implement appropriate tools
– Software development tools
– Methodology related tools
 configuration/customization
 browsing
 estimating
 project planning/management
 workflow management
• Communicate, communicate, communicate
• Executive support
• Positive track record
• Incremental/Iterative implementation of methodology
– For XP, start with testing or planning
Usual Causes of Implementation
Failure
• Lack of visible leadership/sponsorship
• Lack of adequate training
• Lack of effective communication
• Death by 1000 initiatives
• New/Changed roles not implemented
• Fail to account for different information needs of
“planners” and “doers”
– Too detailed for planners
– Not enough detail for doers
Today’s agenda
Topic
Duration
• Recap
15 minutes
• Who reads methodology and why
30 minutes
• Deployment, adoption, use
45 minutes
• *** Break
10 minutes
• Deployment, adoption, use (cont.)
45 minutes
• Term Project
10 minutes
• Quiz
40 minutes
Term Paper
Summary:
A briefing on a significant, currently relevant software
development methodology or process-related framework
not covered in class
Deliverables:
Paper
Presentation and Discussion (30 minutes)
Topic Ideas:
SCRUM
Feature Driven Development
Adaptive Software Development
Crystal
SEI Team Software Process
SEI Personal Software Process
Term Paper
Paper Outline:
1. Abstract
2. Historical Background
3. 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
Today’s agenda
Topic
Duration
• Recap
15 minutes
• Who reads methodology and why
30 minutes
• Deployment, adoption, use
45 minutes
• *** Break
10 minutes
• Deployment, adoption, use (cont.)
45 minutes
• Term Project
10 minutes
• Quiz
40 minutes
Topics for May 12
• CMM
• Assignment 3
Extra Slides
Rational Unified Process