290t: the business of software: teams and processes in … ·  · 2003-10-21290t: the business of...

26
landay 1 1 290T: The Business of Software: Teams and Processes in SW Professor Kurt Keutzer Fall 2003 EECS [email protected] 2 Class News For case on Wednesday: John Fernandes, Director of Business Development and Strategy in the Emerging Business Team, Microsoft Before Monday: Please take the personality inventory at: http://www.humanmetrics.com/cgi-win/JTypes1.htm And record your results Due today: Interim results on your development of the Business Model, Template was presented in Lecture 7 Team overview Business environment Product Overview Marketing Plan Distribution strategy

Upload: nguyenthuy

Post on 17-May-2018

220 views

Category:

Documents


2 download

TRANSCRIPT

landay 1

1

290T: The Business of Software:Teams and Processes in SW

Professor Kurt KeutzerFall [email protected]

2

Class News

• For case on Wednesday: • John Fernandes, Director of Business Development and

Strategy in the Emerging Business Team, Microsoft• Before Monday: Please take the personality inventory at:

• http://www.humanmetrics.com/cgi-win/JTypes1.htm

• And record your results

Due today: Interim results on your development of the Business Model, Template was presented in Lecture 7

• Team overview• Business environment• Product Overview

• Marketing Plan• Distribution strategy

landay 2

3

Outline

• WRS retrospective• Review of elements of software process• Putting elements of software process together • Key points of software project management

• Reflections on teams and software

4

What did we learn from Jerry?

landay 3

5

Issues WRS Faced as they Grew

• Evolving management and organizational structure• Mergers and acquisitions• Changing trends

• End-customer requirements

• Technology• Competitive environment• Wall street

6

Proliferation of Embedded Devices• Most of our access to information will come through embedded

systems

Jerry Fiddler, DAC Keynote 2002

landay 4

7

8

Everything is connected ….

Jerry Fiddler, DAC Keynote 2002

landay 5

9

embedded system-on-achip

Courtesy Synopsys

Proliferation of peripherals/device drivers/code complexity

10

WRS Golden Era

• Wind River System enjoyed it’s “gold era” when:• A single application language –

ANSII C• Demanding, but manageable

IDE and RTOS requirements• >1, but still a modest number of

target processors

29k29k

680x0680x0

CPU32CPU32

80x8680x86

SPARCSPARC

MIPS R3kMIPS R3k

i960i960

Scheduling &System Clock

Facilities

Synchronization & Intertask Communication

MutualExclusion

I/Osystem

FileSystems

MemoryManagement

NetworkingSupport

DeviceSupport

. . .

landay 6

11

680x0680x0CPU32CPU32

PowerPCPowerPC

29k29k680x0680x0CPU32CPU3280x8680x86

SPARCSPARCMIPS R3kMIPS R3k

i960i960

Microprocessor Chaos

19801980 19901990 19961996 19981998

6800068000

80x8680x86MIPS 3k/4k/5kMIPS 3k/4k/5k

SPARCSPARCSH 1/2/3SH 1/2/3

29k29kRAD 6kRAD 6k

Siemens C16xSiemens C16xNEC V8xxNEC V8xxPARISCPARISC

i960i960563xx563xx

ST 20ST 20M32 R/DM32 R/D

StrongARMStrongARMARMARM

SHSH--DSPDSPSH 4SH 4

MCOREMCORE680x0680x0CPU32CPU32

PowerPCPowerPC80x8680x86

MIPS 3k/4k/5kMIPS 3k/4k/5kSPARCSPARCSH 1/2/3SH 1/2/3

29k29kRAD 6kRAD 6k

Siemens C16xSiemens C16xNEC V8xxNEC V8xxPARISCPARISC

i960i960563xx563xx

Jerry Fiddler, DAC Keynote 2002

12

End Customer: Software complexity increasing….

Kernel KernelNetworkingFile System

KernelNetworkingFile System

MultiprocessingMemory Management

WindNetX Windows

Application

Application

Application

Application

KernelNetworkingFile System

MultiprocessingMemory Management

High AvailabilityAdvanced NetworkingAdvanced Interconnect

JavaBrowser / GUI

19801980 19901990 19961996 19991999Jerry Fiddler, DAC Keynote 2002

landay 7

13

Embedded Software CrisisCheaper, more powerfulCheaper, more powerful

MicroprocessorsMicroprocessors

MoreMoreApplicationsApplications

IncreasingIncreasingTimeTime--toto--marketmarket

pressurepressure

Bigger, More Complex Bigger, More Complex ApplicationsApplications

EmbeddedEmbeddedSoftwareSoftware

CrisisCrisis

Jerry Fiddler, DAC Keynote 2002

14

WRS Challenging Era

• It’s a challenging time for WRS• More variety of application

languages: C, C++, Java, Matlab…

• Increasing number of IDE and RTOS requirements

• Tremendous proliferation of target processors to support

ST 20ST 20M32 R/DM32 R/D

StrongARMStrongARMARMARM

SHSH--DSPDSPSH 4SH 4

MCOREMCORE680x0680x0CPU32CPU32

PowerPCPowerPC80x8680x86

MIPS 3k/4k/5kMIPS 3k/4k/5kSPARCSPARCSH 1/2/3SH 1/2/3

29k29kRAD 6kRAD 6k

Siemens C16xSiemens C16xNEC V8xxNEC V8xxPARISCPARISC

i960i960563xx563xx

Kernel

Networking

File System

Multiprocessing

Memory Management

High Availability

Advanced Networking

Advanced Interconnect

Java

Browser / GUI

landay 8

15

Plus Increasing Competition

• VxWorks : Wind River Systems• OS-9 : Microware• OSE : Enea Systems • EPOC : Symbian

• VRTX : Mentor Graphics• Windows CE : Microsoft• Palm OS : PalmSource• Spox :(Spectron Microsystems)• HP-RT : Hewlett-Packard• Integrity : Green Hills

• Linux, RTLinux : FSMLabs etc.

16

Outline

• WRS retrospective• Review of elements of software process• Putting elements of software process together • Key points of software project management

• Reflections on teams and software

landay 9

17

One Step of a Process

ENTRYCRITERIA TASKS VALIDATION

PROCEDURES

INPUTSOUTPUTS

• Clearly defined: • Entry criteria – can we start?• Repeatable tasks – what do we do?• Validation – how do we know we did it?

• Exit criteria – are we done?

EXITCRITERIA

18

Process Documentation Template

OBJECTIVES

What are the objectives for this element of the process? what does it try to achieve?

Who is the owner for this element of the process? who is responsible person for the documentation, communication, maintenance, and continuously improving this process?

What are the inputs? where are the inputs coming from? are there any constraints or dependencies for the inputs?

What are the outputs? where are the outputs going to? are there any constraints or dependencies for the outputs?

What are the starting requirements for this element

What are the completion requirements for this element?

What are the tasks required to achieve the objectives of this element?

Are there any requirements/constraints for the tasks or steps in the process? Who arethe owners for the dependencies?

What are the measurements for the process? How to know that tasks work as expected?How to know that objectives are met?

PROCESS DOCUMENTSECTION

1. Objectives

2. Owner

3. Inputs

4. Outputs

5. Entry Criteria

6. Exit Criteria

7. Tasks

8. Dependencies/constraints

9. Validation

landay 10

19

Dreaming• Inputs: problems• Tasks:

• Reflection, typically by an individual or an informal team (e.g. after softball practice):

• Could the idea work (technology)?• Could it make money (market)?

• Validation:• Bouncing the idea off of friends, mentors etc.

• Output:

• a new technology (logic synthesis) • a new market opportunity (Matlab acceleration)

20

Investigating• Inputs: a new technology/a new market opportunity and questions• Often the key question in a marketing driven idea is a technical

question. Alternatively , the key question in a technically driven idea is a market question.

• Tasks: • Technology: Could we really accelerate Matlab?

• Key issues:• Can we perform “compile code” simulation for Matlab? Or

do we have to do interpreted-code Matlab simulation?• Key point: managing types in Matlab)

• Marketing: Is the market for my bright idea big enough?• Prove in key market issues:

• Market segmentation• Market sizing: top down, bottom up• Customer interviews

• Output: Confirmation of technology or market – a “business case”

landay 11

21

Requirements specification• Inputs: target customer and market• Tasks:

• Market requirements: • What are broad characteristics of the market? (How

much will Matlab customers pay for an accelerator?)• Customer requirements:

• What are specific customer requirements? (How much acceleration is required to be interesting? 2x 10x?)

• Must “look and feel” remain the same?• Speed versus accuracy trade-offs?

• Output: Market requirements specification

22

Software Design specification• Inputs: market requirements specification• Tasks:

• Group market requirements: • For each identified market market requirement• Translate into major programming task• Group programming tasks into a software architecture

• Output: Design specification including hierarchical software architecture

landay 12

23

Implementation and Test Plan• Inputs: Software Design Specification• Tasks:

• Refine major software modules in architecture into manageable (for the programmer) and schedulable (for the manager) software tasks

• Create unit test plan for each individual unit• Create system test plan for system and validation in

environment• Output: Implementation and test plan and targets for

acceptance

24

Other software activities

• Reviews of all of the above• Hiring/recruiting• Actual implementation• Actual unit testing

• Actual system testing• Porting

• SW needs to be tested on all the platforms (PC variants, Workstations: SUN, SGI, HP) on which it runs

landay 13

25

Outline

• WRS retrospective• Review of elements of software process• Putting elements of software process together • Key points of software project management

• Reflections on teams and software

26

Waterfall model

Requirementsdefinition

System andsoftware design

Implementationand uni t testing

Integration andsystem testing

Operat ion andmaintenance

landay 14

27

Prototyping Model

[Pressman 97]

Listen to Customer

CustomerTest-drivesMock-up

Build/ReviseMock-Up

28

Spiral model of the software process

Riskanalysis

Riskanalysis

Riskanalys is

Riskanalysis P roto-

type 1

Prototype 2Proto type 3

Opera-tionalprotoype

Concept o fOperation

Simulations , models, benchmarks

S/Wrequirements

Requirementvalidati on

DesignV&V

P roductdesign Detailed

design

CodeUnit tes t

Integr ationtestAcceptance

testServ ice D evelop, verifynext-level p roduct

Evaluate alternativesid en tify, resolve risks

Determine ob jectivesalternatives and

constraints

Plan next phas e

Integr ationand tes t p lan

Developmentplan

Requirements planLife-cycle plan

REVIEW

landay 15

29

Outline

• WRS retrospective• Review of elements of software process• Putting elements of software process together • Key points of software project management

• Reflections on teams and software

30

So which process?

• Common elements:• Gather requirements before you implement• Develop acceptance criteria and test as you go

• Know when to pull the plug on a project

• Provide mechanisms for iteration - even back to the beginning –you may need them anyway

• Provide mechanisms for direct customer feedback before actual release

• Beta-testing in structured development• Phased-releases

• Fit process to your software problem

landay 16

31

Cost to Detect and Correct a Fault

What process makes sense in this world?

32

Premise: Cost of change

Cost

Stage of process

Concept Implementation System Testing Launch

•Conventional wisdom•Often true•But … becomes a self-fulfilling prophecy in most software development processes

landay 17

33

Given these facts which process makes sense?

34

Waterfall model

Requirementsdefinition

System andsoftware design

Implementationand uni t testing

Integration andsystem testing

Operat ion andmaintenance

landay 18

35

Cost of a Design Change

• Many organizations have created slow laborious software design processes

• In such cases of course there is a high cost of design change• Bad reasons not to change the design – even in the field

• Diffusing change expensive – silly in ``communication age’’

• GUI change could confuse customer – current GUI may be even more confusing

• Good reasons not to change the design• Life critical situations• Situations requiring significant retraining• Customer perceptions, etc. ..

36

What if?

Cost

Stage of process

Concept Implementation System Testing Launch

landay 19

37

38

Choosing a Software Process

• Fit the process to the software problem• What are the most important characteristics of the problem?

• Time to market (TTM)?• Robustness?

• Cost of development?• Administrate the process faithfully

• If you do waterfall process – generate documents• If you do extreme programming – generate iteration releases• If you do ``Synopsys’’ hold the review meetings

landay 20

39

Where do the biggest slips occur?

DREAM INVESTIGATION DEVELOP

ReleaseGate

FCSDevelopmentStart

Analysis Plan ProductDevel

ReleasePrep

Package and

Delivery

IdeasCreation

Support&

Service

Integrationand Test

LAUNCH SUPPORT

Go/No go

40

SNPS Software Development Process

Stage entry/Exit Check Points

Project Phase Decision Points

DREAM INVESTIGATION DEVELOP

ReleaseGate

FCSDevelopmentStart

Analysis Plan ProductDevel

ReleasePrep

Package and

Delivery

IdeasCreation

Support&

Service

Integrationand Test

LAUNCH SUPPORT

landay 21

41

Outline

• WRS retrospective• Review of elements of software process• Putting elements of software process together • Key points of software project management

• Reflections on teams and software

42

Managing the product development cycle

• Impact of 6 month development slip in 6 year product cycle?

8/1/98 8/1/04 2/1/99 8/1/04

$144M $132M

landay 22

43

More likely impact of 6 month development slip

• Not $12M but $44M - or more

8/1/98 8/1/042/1/99 2/1/04

$144M

$100M

• Smaller market share• Less profitable• Earlier exit

$250K please

44

Where do the biggest slips occur?

DREAM INVESTIGATION DEVELOP

ReleaseGate

FCSDevelopmentStart

Analysis Plan ProductDevel

ReleasePrep

Package and

Delivery

IdeasCreation

Support&

Service

Integrationand Test

LAUNCH SUPPORT

Go/No go

landay 23

45

Where do the biggest slips occur?

DREAM INVESTIGATION DEVELOP

ReleaseGate

FCSDevelopmentStart

Analysis Plan ProductDevel

ReleasePrep

Package and

Delivery

IdeasCreation

Support&

Service

Integrationand Test

LAUNCH SUPPORT

mgmtattn

Go/No go

Hint from Dilbert

46

Must Front-load management attention

DREAM INVESTIGATION DEVELOP

ReleaseGate

FCSDevelopmentStart

Analysis Plan ProductDevel

ReleasePrep

Package and

Delivery

IdeasCreation

Support&

Service

Integrationand Test

LAUNCH SUPPORT

mgmtattn

Go/No go

•Dilbert is right•Management focuses on the wrong part of the process

landay 24

47

In an informal analysis

• In an informal (e.g. hard to get hard data) analysis of 25 products at Synopsys we (Bob Dahlberg and I) found:• Most time (often >2 years) was spent in ``investigation phase’’• Any product that was ``late’’ to market by more than 6 months

• VSS – VHDL simulator

• FPGA express• Chip architect – chip floorplanner• Behavioral synthesis

• Had been under investigation for at least 2 years• All these products came under intense management scrutiny

when they were finally in development• Rapid management decision making would have given more

than adequate time for development

48

Rapid decision making

..most companies don’t die because they are wrong; most die because

they don’t commit themselves They fritter away their momentum and their valuable resources while

attempting to make a decision. The greatest danger is standing still.

Andy Grove “Only the Paranoid Survive”

landay 25

49

Outline

• WRS retrospective• Review of elements of software process• Putting elements of software process together • Key points of software project management

• Reflections on teams and software

50

Summary

• Initiating and managing a successful software product entails:• Recruiting and staffing the team• Clearly designating the proper roles and responsibilities• Identifying the objective of the software product

• Choosing a software development process that meets those objectives

• Managing the process

landay 26

51

Individuals and Group Dynamics

• Jung – psychological foundation• Myers-Briggs – modern theory• Keirseyetc. – broad dissemination www.keirsey.com• Last ``free’’ site: http://www.humanmetrics.com/• The key dimensions

• Introversion (I) vs. Extroversion (E)• Intuitive (N) vs. Sensing (S)• Thinking (T) vs. Feeling (P)• Perceptive (P) vs. Judging (J)

• There’s no right and wrong and you can’t really change yourself anyway!• Learn the strengths and weakness of your character type