SE 470 Software Development Processes James Nowotarski 05 May 2003

Preview:

Citation preview

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

Recommended