improving software economics. software & the internet: business drivers surveyed 100 software...

10
Improving Software Economics

Post on 21-Dec-2015

215 views

Category:

Documents


1 download

TRANSCRIPT

Improving Software EconomicsImproving Software Economics

Software & the Internet: Business DriversSoftware & the Internet: Business Drivers

Surveyed 100 SoftwareIndustry Experts

Surveyed 100 SoftwareIndustry Experts

1. Growth of complexity

2. Continuously-evolving systems

3. Software Development

1. Growth of complexity

2. Continuously-evolving systems

3. Software Development

HighHighHighHigh

MediumMediumMediumMedium

LowLowLowLow

TimeTimeTimeTime

Distributed

Concurrent

Connected

Real-time/embedded

Fault tolerant

Customized

Stock TradingStock Trading

1. Growth of Complexity: e-business1. Growth of Complexity: e-business

2. Continuously-evolving Systems2. Continuously-evolving Systems

Conventional Yearly +

Conventional Yearly +

Modern < Yearly

Modern < Yearly

Near Future Monthly Weekly Daily

Near Future Monthly Weekly Daily

The

New

Eco

nom

yTh

e N

ew E

cono

my

Year 2Year 2Year 1Year 1

Year 2Year 2Year 1Year 1

Year 2Year 2Year 1Year 124x7x365

Global

24x7x365

Global

3. Software Development: Today’s Business Driver3. Software Development: Today’s Business Driver

SoftwareDevelopment

SoftwareDevelopmentBandwidthBandwidth

Accessibility & Usage

Accessibility & UsagePowerPower

Simplified Software EconomicsSimplified Software Economics

Where: Project

Performance = Effort or time Complexity = Volume of human-generated code Process = Methods, notations, maturity Team = Skill set, experience, motivation Tools = Software process automation

Where: Project

Performance = Effort or time Complexity = Volume of human-generated code Process = Methods, notations, maturity Team = Skill set, experience, motivation Tools = Software process automation

ProjectPerformanceProjectPerformance = (Complexity) (Process)

* (Team) * (Tools) = (Complexity) (Process) * (Team) * (Tools)

Software ElementsSoftware Elements

ComponentsComponents

Reduce the Proportion of Hand Written CodeReduce the Proportion of Hand Written CodeHardware ElementsHardware Elements

ChipsChips SystemSystemCardsCards

Higher ComplexityHigher Complexity Lower ComplexityLower Complexity

SubsystemsSubsystemsStatementsStatements

Use higher level software componentsto enable economically significant reuse

Use higher level software componentsto enable economically significant reuse

ApplicationApplication

GatesGates RacksRacks

InstructionsInstructions

If a = b then c=1Else c=2While n> cDecrement_countend

If a = b then c=1Else c=2While n> cDecrement_countend

TimeTime

Results of An Architecture-First ProcessResults of An Architecture-First ProcessR

isk

Ris

k

Risk Resolution

Period

Risk Resolution

Period

Risk Exploration

Period

Risk Exploration

Period

Controlled Risk Management PeriodControlled Risk Management Period

IterativeIterativeWaterfallWaterfall

Risk ReductionRisk Reduction

Improve Team ProficiencyImprove Team Proficiency

Smaller, more capable teams are key to success Consistent, simple communication paths Empowered and self-managed Ownership in the plan and accountable

Smaller, more capable teams are key to success Consistent, simple communication paths Empowered and self-managed Ownership in the plan and accountable

Instrument Through an Integrated EnvironmentInstrument Through an Integrated Environment

AutomatedTesting

Requirements Management

Project Management

Programming Environment

VisualModeling

Project ArtifactsProject Artifacts

Change Management

Change Management

Round-trip

Engineering

Round-trip

Engineering Round-trip

Engineering

Round-trip

Engineering

Round-trip

Engineering

Round-trip

Engineering

Round-trip

Engineering

Round-trip

Engineering