se 470 software development processes james nowotarski 05 may 2003
Post on 20-Dec-2015
216 views
TRANSCRIPT
SE 470Software Development Processes
James Nowotarski
05 May 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
• 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 Objectives
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
Today’s agenda
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
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
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 roadmap)
7
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
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
Training Reference
Planning 8% 36%
Selling 6% 20%
Doing 6% 13%
Managing 2% 9%
Methodology is used mostly by planners and mostly for reference purposes
Source: Gezinus Hidding, Loyola University
Roles
How Used
Who Reads Methodology and Why
Process Artifact Guideline Concept
Planning 43% 37% 14% 7%
Selling 48% 35% 12% 5%
Doing 40% 34% 16% 10%
Managing 42% 34% 18% 6%
Process descriptions and artifacts are the most valuable types of information
Source: Gezinus Hidding, Loyola University
Reference
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
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
Overview
Configuration
Implementation
Kruchten, Chapter 17
HardestPart
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
1. Assess the current state2. Set (or revise) goals
3. Identify risks
4. Plan the process implementation
5. Execute the process implementation
Current process
New processCompletelyImplemented
6. Evaluate the process implementation
Kruchten’s Implementation Steps
Current process
New processCompletelyImplemented
1. Assess the current state2. Set (or revise) goals
3. Identify risks
4. Plan the process implementation
5. Execute the process implementation
6. Evaluate the process implementation
1. Assess the current state
Assets Deployment Usage
Bus. Modeling
Requirements
Analysis & Design
etc.
One approach to assessment: Look at assets, deployment of assets, and usage of assets
Scorecard/Gap Analysis
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?
Technology
ProcessPeople
1. Assess the current state
The focus of SE 470 is the process component of software engineering
SE 470
Technology
ProcessPeople
1. Assess the current state
Methodology introduces new capability into targeted units
Technology
ProcessPeople
1. Assess the current state
People and Technology elements must be addressed also
• Ownership/Sponsorship • Motivation• Rewards/Incentives• Training• Physical work environment• Roles, reporting relationships• Performance measurement
Technology
ProcessPeople
1. Assess the current state
People and Technology elements must be addressed also
• Tools • Standards• Reusable components• Alignment with other frameworks
Kruchten’s Implementation Steps
Current process
New processCompletelyImplemented
1. Assess the current state2. Set (or revise) goals
3. Identify risks
4. Plan the process implementation
5. Execute the process implementation
6. Evaluate the process implementation
Kruchten’s Implementation Steps
Current process
New processCompletelyImplemented
1. Assess the current state2. Set (or revise) goals
3. Identify risks
4. Plan the process implementation
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
Technology
ProcessPeople
4. Plan the process implementation
Methodology introduces new capability into targeted units
Kruchten’s Implementation Steps
Current process
New processCompletelyImplemented
1. Assess the current state2. Set (or revise) goals
3. Identify risks
4. Plan the process implementation
5. Execute the process implementation
6. Evaluate the process implementation
Kruchten’s Implementation Steps
Current process
New processCompletelyImplemented
1. Assess the current state2. Set (or revise) goals
3. Identify risks
4. Plan the process implementation
5. Execute the process implementation
6. Evaluate the process implementation
Kruchten’s Implementation Steps
Phase 1 Phase 2 Phase 3 Phase 4
Implementing a process is a project
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
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
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
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
• CMM• Assignment 3
Topics for May 12
Extra Slides
Rational Unified Process