SE 470 Software Development Processes James Nowotarski 05 May 2003.

54
SE 470 Software Development Processes James Nowotarski 05 May 2003
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    215
  • download

    0

Transcript of SE 470 Software Development Processes James Nowotarski 05 May 2003.

Page 1: SE 470 Software Development Processes James Nowotarski 05 May 2003.

SE 470Software Development Processes

James Nowotarski

05 May 2003

Page 2: SE 470 Software 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

Page 3: SE 470 Software Development Processes James Nowotarski 05 May 2003.

• 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

Page 4: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 5: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 6: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 7: SE 470 Software Development Processes James Nowotarski 05 May 2003.

What is XP

• Rapid feedback• Assume simplicity• Incremental change• Embrace change• Quality work

First Principles

Page 8: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 9: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 10: SE 470 Software Development Processes James Nowotarski 05 May 2003.

What is XP

Life cycle phase

Co

st

of

ch

an

ge

Req Anal. Des. Impl. Test Prod

y = axp

Page 11: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 12: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 13: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 14: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 15: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 16: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 17: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 18: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 19: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 20: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 21: SE 470 Software Development Processes James Nowotarski 05 May 2003.

Overview

Configuration

Implementation

Kruchten, Chapter 17

HardestPart

Page 22: SE 470 Software Development Processes James Nowotarski 05 May 2003.

Configuration

• Configure for organization/organizational unit

• Configure for project

Page 23: SE 470 Software Development Processes James Nowotarski 05 May 2003.

Why is Implementation so hard?

• Process change affects behavior• Target audience lacks time• Not a “sexy” topic

Page 24: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 25: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 26: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 27: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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?

Page 28: SE 470 Software Development Processes James Nowotarski 05 May 2003.

Technology

ProcessPeople

1. Assess the current state

The focus of SE 470 is the process component of software engineering

SE 470

Page 29: SE 470 Software Development Processes James Nowotarski 05 May 2003.

Technology

ProcessPeople

1. Assess the current state

Methodology introduces new capability into targeted units

Page 30: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 31: SE 470 Software Development Processes James Nowotarski 05 May 2003.

Technology

ProcessPeople

1. Assess the current state

People and Technology elements must be addressed also

• Tools • Standards• Reusable components• Alignment with other frameworks

Page 32: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 33: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 34: SE 470 Software Development Processes James Nowotarski 05 May 2003.

Elements of an Implementation Plan

• Sponsorship• Marketing & Communication• Education & Training• Coordination with other initiatives• Rollout schedule• Support • Metrics

Page 35: SE 470 Software Development Processes James Nowotarski 05 May 2003.

Elements of an Implementation Plan

• Sponsorship– Executive level– Visibility– Accountability

Page 36: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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)

Page 37: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 38: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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)

Page 39: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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”

Page 40: SE 470 Software Development Processes James Nowotarski 05 May 2003.

Elements of an Implementation Plan

• Support– Local experts– Central help desk– Need to capture feedback (“experience

factory”)-- Fixes-- Enhancements-- Innovations

Page 41: SE 470 Software Development Processes James Nowotarski 05 May 2003.

Elements of an Implementation Plan

• Metrics– Training– Awareness– Usage– Local experts time allocation– Help desk requests– Errors/Enhancements

Page 42: SE 470 Software Development Processes James Nowotarski 05 May 2003.

Technology

ProcessPeople

4. Plan the process implementation

Methodology introduces new capability into targeted units

Page 43: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 44: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 45: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 46: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 47: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 48: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 49: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 50: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 51: SE 470 Software Development Processes James Nowotarski 05 May 2003.

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

Page 52: SE 470 Software Development Processes James Nowotarski 05 May 2003.

• CMM• Assignment 3

Topics for May 12

Page 53: SE 470 Software Development Processes James Nowotarski 05 May 2003.

Extra Slides

Page 54: SE 470 Software Development Processes James Nowotarski 05 May 2003.

Rational Unified Process