• No results found

Software Development s Low Hanging Fruit.

N/A
N/A
Protected

Academic year: 2021

Share "Software Development s Low Hanging Fruit."

Copied!
56
0
0

Loading.... (view fulltext now)

Full text

(1)

Software

Development’s

Low Hanging Fruit

(2)

Copyright Notice

These class materials are © 2007-2008 Construx Software Builders, Inc.

All Rights Reserved. No part of the contents of this seminar may be reproduced or transmitted in any form or by any means without the written permission of Construx Software Builders, Inc.

(3)

Why Talk About Low

Hanging Fruit?

(4)

Why Talk About Low Hanging Fruit?

Numerous Good

Practices Have Existed

for Decades

(5)

5

Best Practices

(year first available)

™

Project planning and

management

practices

‹ Automated estimation tools (1973) ‹ Evolutionary delivery (1988) ‹ Measurement (1977) ‹ Productivity environments (1984) ‹ Risk-management planning (1981) ™

Requirements

engineering

practices

‹ Change board (1978) ‹ Throwaway user interface prototyping (1975) ‹ JAD sessions (1985)

(6)

6

Best Practices

(year first available, cont.)

™

Design practices

‹ Information hiding

(1972)

‹ Design for change

(1979)

™

Construction

practices

‹ Source code control

(1980) ‹ Incremental integration (1979) ™

Quality assurance

practices

‹ Branch-coverage testing (1979) ‹ Inspections (1976) ™

Process

improvement

‹ SW-CMM (1987) ‹ Software Engineering Process Groups (1988)

(7)

Why Talk About Low Hanging Fruit?

ROI of Good Software

Practices is Well

(8)

8

ROI for Selected Practices

7.5 2.3 JAD Workshops 5.0 2.0 Prototyping (full) 12 2.5

Formal code inspections

5.5 1.2

Management training

10 3.5

Formal design inspections

5.0 0.9

Technical staff training

6.0 1.5

Process assessments

12 2.5

Cost and quality estimation tools

36-month ROI 12-month

ROI Practice

(9)

9

ROI

™

Improved software practices pay an

average ROI of 5-to-1 (including false

starts), and continued improvement is

sustainable for many years

™

The best organizations have sustained

ROIs of 9-to-1 on software improvement

initiatives for many years

Source: James Herbsleb, et al, “Benefits of CMM Based Software Process Improvement: Initial Results,” Pittsburgh: Software Engineering Institute, Document CMU/SEI-94-TR-13, August 1994.

(10)

Why Talk About Low Hanging Fruit?

These Practices Should

Have Been Adopted Long

Ago…

(11)

11

Cycle for Diffusion of Innovations

Innovators

Early Adopters

Early Majority Late Majority

Laggards The “Chasm”

(12)

12

Normal Risk/Reward Structure

High risk / high payoff

Moderate-high risk / moderate-high payoff

Moderate-low risk /

moderate payoff Low risk /moderate payoff

Low risk / low payoff Decreasing Risk

(13)

13

Software’s Unusual Risk/Reward

Structure

High risk / high payoff Moderate risk / high payoff Low risk / high payoff Moderate risk / low payoff High risk / low payoff Decreasing Risk Decreasing Reward Increasing Risk

(14)

Why Talk About Low Hanging Fruit?

… but Many Good Practices

Have Not Been Commonly

Adopted

(15)

15

Some Software Examples

New practices (not mentioned in this talk) Most Low Hanging Fruit Code-and-fix development SW-CMM Waterfall lifecycle model Decreasing Risk Decreasing Reward Increasing Risk

(16)

16

State of the Practice

™

Lots of proven practices are available

™

Risk of not using these practices is

substantially higher than of using them

™

Many of these tried-and-true practices

are readily available,

easy

to adopt, and

(17)

Why Talk About Low Hanging Fruit?

Does It Seem Like We’re

Always Talking About

Long

(18)

18 Number of months to move to the next CMM Level 26 19 Level 1 to 2 76 Orgs Level 2 to 3 56 Orgs 75 50 30 18 0

Largest observed value that is not an outlier

Median

Smallest observed value that is not an outlier

25th Percentile 75th Percentile

Schedule Required to Move Up

One CMM Level

(19)

19

Example Process Improvement

Results

Median Results (13 organizations)

™

Duration: 3.5 years

™

Productivity gain per year: 35% (185% total)

™

Schedule reduction per year: 19% (52% total)

™

Reduction in post-release defect reports per

year: 39% (82% total)

(20)

Why Talk About Low Hanging Fruit?

A Low Hanging Fruit

Hypothesis

(21)

21

Hypothesis:

The industry focus on

“long term

improvements”

has created the

impression that improvements are

attainable

only

in the long term. In

fact, many significant improvements

are attainable in the short term!

(22)

Low Hanging Fruit

(LHF)

(23)

23

Criteria for LHF

™

Low cost of adoption

™

Good or very good chance of first-time

success

™

Excellent chance of long term success

(24)

24

Candidates for LHF

™

Software Best Practices

™

Software Fundamentals that aren’t

(25)

25

LHF Candidates, part 1

™ 4GLs

™ Architectural design

™ Buy vs. build planning

™ Change board

™ Cleanroom

development

™ Coding standards

™ Customer orientation

™ Daily build and smoke test

™ Defect tracking, full lifecycle

™ Designing for change

™ Education, management

™ Education, technical staff

™ Error-prone modules, identification of

™ Estimating tools, use of automated ™ Estimation and scheduling, accurate ™ Evolutionary-delivery lifecycle model ™ Evolutionary-prototyping lifecycle model ™ Feature-set control

(26)

26

LHF Candidates, part 2

™ Goal setting

™ Hiring top talent

™ Inspections

™ Incremental Planning

™ Incremental Integration

™ Joint Application Design (JAD) ™ Lifecycle model selection ™ Measurement ™ Milestones, miniature ™ Minimal specification ™ Motivation ™ Outsourcing ™ Planning tools, automated ™ Principled negotiation ™ Productivity environments ™ Productivity tools ™ Rapid-development languages (RDLs)

(27)

27

LHF Candidates, part 3

™ Requirements scrubbing ™ Reuse ™ Risk management, active ™ Signing up ™ Software configuration management, full ™ Software engineering process group (SEPG)

™ Source code control

™ Spiral lifecycle model

™ Staff specialization

™ Staged-delivery lifecycle model

™ Team structure,

matching to project type

™ Test-first coding

™ Theory-W management

™ Throwaway prototyping

™ Timebox development

™ Tools group

™ Top-10 risks list

™ Project Tracking, Active

™ Up-front Design

™ Up-front Planning

™ Up-front Requirements

™ User-interface prototyping

(28)

28

Is Everything

Low Hanging Fruit?

™

There are

many

good candidates for

LHF (58!)

™

What will constitute LHF from one

organization to the next will vary

‹

Low cost of adoption

‹

Good or very good chance of first-time

success

‹

Excellent chance of long term success

‹

Short time to positive ROI

(29)

29

Examples of Fruit That Isn’t Low

Hanging

™ No evidence of positive ROI

™ Not a high chance of long-term success Pair Programming

™ Not a short time to positive ROI

™ Not a high chance of first-time success or long-term success

Developing Code for Reuse

™ Not a high chance of first-time success Spiral Lifecycle Model

™ More like a whole tree than individual fruit

™ Not low cost to adopt

™ Not high chance of first-time success RUP

Why Not LHF? Practice

(30)

30

Examples of Fruit That Isn’t Low

Hanging (cont.)

™ Not a high chance of first-time success or long-term success

Major Milestones

™ Not a high chance of first-time success or long-term success

Use Cases

™ It’s great fruit, just not low hanging, i.e., not a short time to positive ROI

Statistical Process Control

™ Not low cost to adopt

™ Not a high chance of first-time success or long-term success

CASE Tools

Why Not LHF? Practice

(31)
(32)

32

Where Do You Start?

Depends on who “you” are:

™

Developer

™

Technical Lead

™

Manager

(33)

33

A Developer’s LHF

Assumptions

™

LHF cannot require more than one

contributor

™

LHF doesn’t create any direct expense

™

LHF must not create “atomic” work that

would show up on a task list

(34)

34

A Developer’s LHF

Can Own:

™ Coding Standards

™ Test-First Coding

™ Designing for Change

™ Incremental Integration

™ Throwaway Prototyping

™ Up-Front Design

Can Contribute to:

™ Error-Prone Modules, Identification of

™ Defect Tracking, full lifecycle

™ Daily Build and Smoke

Test

™ Architectural Design

™ User-Interface Prototyping

™ Evolutionary Delivery

™ Source Code Control

(35)

35

A Developer’s LHF

Observations

™

ROI of developer-level LHF is relatively

low, but lots of LHF is easily within reach

™

Lots of LHF is partially reachable

™

Construx has found

violent agreement

in

upper management that developers

should be using LHF

™

Most of these practices are

invisible

to

(36)

36

A Technical Lead’s LHF

Assumptions

™

LHF is primarily technical in nature

™

LHF doesn’t create any direct expense

™

LHF may require more than one contributor

™

LHF may affect detailed task assignments,

task ordering, etc.

™

LHF is minimally visible to upper

management, the customer, or other project

stakeholders

(37)

37

A Technical Lead’s LHF

Can Own:

™ Coding Standards

™ Test-First Coding

™ Designing for Change

™ Incremental Integration

™ Throwaway Prototyping

™ Up-Front Design

™ Error-Prone Modules, Identification of

™ Daily Build and Smoke

Test

™ Defect Tracking, full lifecycle ™ Architectural Design ™ User-Interface Prototyping ™ Evolutionary Delivery ™ Lifecycle Model Selection ™ Inspections ™ Requirements Scrubbing ™ Planning, Incremental

™ Change Control, Formal

(38)

38

A Technical Lead’s LHF (cont.)

Can Contribute to:

™

Source Code

Control Tool

™

Miniature Milestones

™

Timebox

Development

™

Up-Front

Requirements

™

Planning, Up-Front

(39)

39

A Technical Lead’s LHF

Observations

™

Most LHF is reachable by the technical

lead

™

Again, most LHF is invisible to executive

management, and

implicitly supported

by executive management

™

Most of it will work better with project

management and executive support

™

Problem at this level is really choosing

which of numerous options is best—

that’s what expert help is for!

(40)

40

A Manager’s LHF

Assumptions

™

LHF is not highly technical in nature

™

LHF may create direct expenses

™

LHF may affect more than one contributor

™

LHF may affect detailed task assignments,

task ordering, etc.

™

LHF may be visible to upper management, the

customer, or other project stakeholders

™

LHF does not require multiple-project span of

control

(41)

41

A Manager’s LHF

Can Own:

™

Inspections

™

Requirements

Scrubbing

™

Planning, Incremental

™

Change Control,

Formal

™

Top-10 Risks List

™

Feature-Set Control

™

Source Code Control

Tool

™

Miniature Milestones

™

Timebox Development

™

Up-Front

Requirements

™

Theory-W

Management

™

Planning, Up-Front

™

Buy Vs. Build

Planning

™

Joint Application

Design (JAD)

(42)

42

A Manager’s LHF (cont.)

Can Contribute to:

™ Throwaway Prototyping

™ Defect Tracking, full lifecycle

™ Up-Front Design

™ User-Interface Prototyping

™ Evolutionary Delivery

™ Lifecycle Model Selection

™ Staff Specialization

™ Education, Technical Staff

(43)

43

A Manager’s LHF

Observations

™

Most LHF is reachable by the manager

™

Most of the detailed work on the LHF will

need to be done by technical staff

™

Main problem here again is too many

(44)

44

An Organization’s LHF

Assumptions

™

LHF is not highly technical in nature

™

LHF may create direct expense

™

LHF may affect more than one project

™

LHF may degrade single-project

performance to boost overall

organization performance

(45)

45

An Organization’s LHF

Can Own: ™ Staff Specialization ™ Education, Technical Staff ™ Education, Management ™ Planning, Up-Front

™ Buy Vs. Build Planning

™ Change Control, Formal

™ Top-10 Risks List

™ Joint Application Design (JAD)

Can Contribute to:

™ Planning, Incremental

™ Defect Tracking, full lifecycle

™ Timebox Development

™ Up-Front Requirements

(46)

46

An Organization’s LHF

Observations

™

Most organization-level LHF has high ROI, but

longer lead times (opposite of developer-level

LHF)

™

Most detailed work still needs to be done by

technical staff

Bottom Line

™

Most of the work to harvest LHF occurs at the

technical lead levels, but that work

significantly benefits from support at the

(47)

A Low Hanging Fruit

Basket

(48)

48

LHF that are the Fastest to Adopt

™

Coding Standards

™

Daily Build and Smoke Test

™

Source Code Control Tool

™

Top 10 Risks List

(49)

49

LHF that are the Lowest Risk to

Adopt

™

Daily Build and Smoke Test

™

Defect Tracking

™

Education, Technical Staff

™

Inspections

™

Planning, Incremental

™

Source Code Control Tool

(50)

50

LHF that will Not be Resisted by

Individual Contributors

™

Change Control, Formal

™

Planning, Incremental

™

Source Code Control Tool

™

Top 10 Risks List

™

Up-front Design

(51)

51

LHF that will Not be Resisted by

Upper Management

™ Coding Standards ™ Incremental Integration ™ User Interface Prototyping ™ Defect Tracking ™ Up-Front Design ™ Architectural Design ™ Inspections ™ Test-First Coding

™ Designing for Change

™ Error-Prone Modules, Identification of

™ Daily Build and Smoke

Test ™ Evolutionary Delivery ™ Lifecycle Model Selection ™ Planning, incremental ™ Planning, up-front

(52)
(53)

53

Good News

™

Practically everything in software

development is

fundamentals

. There are

no advanced practices.

(This isn’t quite true, but it’s pretty close)

™

The worse off your organization is now, the

higher the ROI of good practices will be!

™

If you’re not currently making substantial

use of good practices, focus on doing

anything

; don’t let “the best” become the

enemy of “the good”

(54)

54

More Good News

™

Low hanging fruit is just the beginning.

Once you harvest that, there is still more

fruit higher up

™

LHF can help an organization “learn how

to change”—which is one of the hardest

aspects of longer-term process

improvement

™

Construx specializes in helping

organizations identify which LHF is best

for them

(55)

55

Construx

Consulting Support

™

Audits, Benchmarks, and Recommendations

(we identify

your

LHF)

™

Improvement Roadmaps

™

Project Chartering Workshops

™

Project Planning Workshops

™

Requirements Workshops

™

Project Scoping & Estimation Workshops

™

Best-Practice Deployment Workshops

™

Project Recovery

(56)

Construx Software is committed to helping individuals and organizations improve their

software development practices. For information about our training and consulting services, contact

[email protected].

Seminar Schedule: www.construx.com/calendar

10900 NE 8th Street, Suite 1350 Bellevue, WA 98004

+1 (866) 296-6300 www.construx.com

References

Related documents

2. Lietuvoje būta kelių ypač ryškių Seimo ir Konstitucinio Teismo susidūrimų, kai įstatymų leidėjas bandė įveikti Konstitucinio Teismo nutarimą priimdamas naują įsta- tymą

Company aims and policies in the categories of Product & Market Strategy, ethical stance, environmental policies and financial performance are stated.. Company actions to

According to the European Environmental Bureau an impact assessment should aim to consider environmental and social impacts of non-environmental policies and ensure that

The discontinuous prescription of data in the study of Kelvin-Helmholtz instability is a viscous potential flow solution of the Navier-Stokes in which no-slip conditions at walls and

College of Arts Sciences; encourages faculty in all disciplines to teach writing using different types of assignments.. Teaching writing to

Consumer’s termination before Court Order is in place: Debt Counsellors confirmed that 20% of Consumers who apply for Debt Review in terms of Section 86(1) each month

Result 7: If the probability of bankruptcy is lower than the probability of the firm’s survival, then the increase in the price uncertainty increases the costs of financing

38 Justice Roberts observed that the law regulates conduct, not speech: "[i]t affects what law schools must do - afford equal access to military recruiters - not