SlideShare a Scribd company logo
WHY IS SOFTWARE
DEVELOPMENT SO HARD?
SEI 2015 Munich
Michael Lamont
lamont@post.harvard.edu
Dragon’sTriangle
Mysterious area off coast
of Japan where ships sink,
planes crash, and all kinds
of weird things happen
Software
BalancingAct
Successfully complete a
project plan while meeting
changing demands and
constraints
Unreasonable Constraints
• Set schedules & budgets without a detailed design
• Estimations performed without input from developers
• Ignoring interlocking relationships between cost, schedule, and
features
Three Sides of Software Dragon’s Triangle
• Scope
• Resources
• Schedule
SoftwareProject
Failure
Interrelated problems of
“Dragon’s Triangle” cause
a significant number of
software projects to
disappear
Non-Software
Industries
Is the grass greener
elsewhere?
Construction
Trade in your Nerf gun for
a nail gun? How much
harder can it be?
Easy&Straight-
Forward,Right?
• Clear requirements
• Expectations are easy
to manage
• Detailed plans
(blueprint)
• Well-established
principles
• Knowledgeable staff
• On time, on scope, on
budget
• $$$ for everyone!
NotActuallyThat
Simple…
• Construction doesn’t
often lend itself to a
cookie-cutter
approach
• Estimation can be
more of a dark art
than a simple process
• Experience and
intuition > science and
engineering
HowContractors
ActuallyGetPaid…
• No change to original
plans, no profit for
contractor
• Changes to original
blueprint are virtually
guaranteed
• Profit comes from
charging for changes
Softwareis
AlwaysNew
Every software system is
different from those that
came before, with its own
set of challenges and
issues.
There are real &
substantial differences
between building in the
real world and building
software.
When building software,
it’s impossible to predict
the problems you’ll face
before you’re well into the
development process.
Development teams love
to work on shiny new
projects, but complexity
lurks within
Physical objects have
tactile properties –
software does not.
Comparison of Hardware/Software Properties
Phenomenon Hardware Software
Manufacture of exact duplicates A challenge Not a problem
Wearing out with use or passage of
time
A major issue Not a problem
Human sensory experiences Not a problem Not experienced
Progress measured during
construction
Observable Observable only via a
baseline process
Cost, schedule, and planning Experienced
physically
Requires speculation
and relatively high risk
We can see & touch our
progress when building
things in the physical
world
In the real world, following
sequential steps gives us
incremental completion
we can experience and
evaluate
In early stages of software
development, all we have
are design and
architecture documents to
experience.
SoftwareIsA
LeapofFaith
All stakeholders have to
trust the process, and
believe progress is being
made.
Software engineering’s
track record at anticipating
and mitigating risks isn’t
great compared to
engineering in the physical
world.
Engineering in the physical
world is based on
unchanging laws that
make the future
predictable.
Lack of hard-and-fast
principles in software
world lets unpredictable
major setbacks occur in
moments.
When developing
software, it’s easy to get
forced into dealing with
simultaneous problems:
• Scheduling
• Cost
• Features
3 Points of the Dragon’s Triangle
Scope
Resources Schedule
3 Points of the Dragon’s Triangle
Scope
Resources Schedule
Softwareprojects
aren’t
deterministic
There isn’t a linear
relationship between
staffing and schedule, and
the relationship can even
go inverted (adding more
people makes the project
take longer)
7 8 9 10 11 12
1 2 3 4 5 6
7 8 9
1 2 3 4 5 6
1 2 3 4 5 6
TimeMarchesAt
AConstantRate
FeatureCreep
The list of required
features always seems to
grow longer as a project
progresses – never shorter.
The“SadTruths”
NegativelyImpact
Morale
Dev team sees the size of
the project increase,
without a corresponding
increase in time and
resources
HiringNewPeople
MakesThings
Worse
New employees (or even
old employees who are
new to the project) require
a long runway to get up to
speed, and drain team
resources in the process
Remedies/Repercussions in Hardware &
Software Projects
Situation Hardware World Software World
Behind schedule Add people and/or equipment,
and balance expense
elsewhere
Adding people makes matters worse, so cut
features, which impacts customers and
morale. Or go into Death March Mode.
Over budget Stretch out delivery time; you
might lose incentive fees.
Adding people makes matters worse, so cut
features, which impacts customers and
morale. Or go into Death March Mode.
Not all features will be
delivered
Renegotiate the contract;
customer might get another
vendor to finish the job.
Reassess, focusing on customer’s “must
have” features; customer expectations might
impact opinion of results. Or go into Death
March Mode.
Remedies/Repercussions in Hardware &
Software Projects
Situation Hardware World Software World
Behind schedule Add people and/or equipment,
and balance expense
elsewhere
Adding people makes matters worse, so cut
features, which impacts customers and
morale. Or go into Death March Mode.
Over budget Stretch out delivery time; you
might lose incentive fees.
Adding people makes matters worse, so cut
features, which impacts customers and
morale. Or go into Death March Mode.
Not all features will be
delivered
Renegotiate the contract;
customer might get another
vendor to finish the job.
Reassess, focusing on customer’s “must
have” features; customer expectations might
impact opinion of results. Or go into Death
March Mode.
“DeathMarch
Mode”
• Slang for quickly
spending ridiculous
amounts of resources
to force a project to
completion
• Caused by the
software manager’s
failings
Deterministic
Problem:Hauling
Dirt
• Adding more people
gets the job done
faster
• But not really: still
scaling problems past
a certain point
SoftwareIsn’t
Deterministic
• No way to predict how
long it’ll take to
identify and fix a
specific defect
• “Death March Mode”
leads to mental
fatigue, which leads to
poor productivity and
mistakes
FeaturesCanBe
CutToResolve
Cost&Schedule
Issues
CuttingFeatures
HurtsDevTeam
Morale
Developers are artists, and
won’t be your biggest fan
if you cut a feature they’ve
poured their heart and
soul into for months
IfYouHaveTo
CutFeatures…
• Reassure the affected
developers that their
work is appreciated
• Feature cuts are due
to scheduling reasons,
not the developers’
skill level or work
product
“Wicked”
Problems
• Put forth by design
theorist Horst Rittel
• Describes a class of
problems that don’t
have bounded
solutions
• The more effort you
put into solving the
problem, the larger
the problem becomes
until infinity
• Software development
is a “wicked” problem
Criteria For “Wicked” Problems
• Cannot be definitively stated
• Software requirements change in unpredictable ways
• No rule or guideline to determine when the problem is solved
• Development on a product only stops when you run out of time or
money
• Solutions are “good” or “bad” – not “right” or “wrong”
• Software provides thousands of ways to meet even the most detailed
specifications
• Some solutions are better than others, even though they all meet spec
Criteria For “Wicked” Problems
• Cannot be definitively tested
• No scientific way to accept or reject a specific software solution
• Spec issues can be argued without clear rights and wrongs
• Solutions are too big (i.e., expensive) to experiment with
• Building multiple software systems and choosing the best is prohibitively
expensive
• There are unlimited solutions, and unlimited criteria for
evaluation
Criteria For “Wicked” Problems
• Every problem is unique
• Symptomatic of higher-level problems
• “Solving” one part of the problem can lead to unanticipated problems in
other areas
Conclusion:
Softwareisa
“WickedProblem”
Project success depends
on:
• Using what we know
when the project
starts
• Using the data we
gather over the course
of the project
• Trusting our data
enough to use it to see
the project through to
completion
Lotsofsoftware
development
“myths”have
takenonapatina
oftruth.
Software Development Myths
1. Software is easier to change than hardware
Large-scale projects in the
physical world undergo
intensive planning before
anyone touches a shovel
With software, it’s too
easy to think we “see” the
solution and start coding
immediately, without
really understanding the
problem.
Example: Y2K
Software Development Myths
1. Software is easier to change than hardware
2. Processes aren’t needed in “maintenance mode”
Aircraft maintenance
processes provide a useful
template for software
maintenance.
Careful records are kept of
every issue and action
taken, and analyzed to
improve results.
Without metrics,
processes, and clearly
defined methods,
everyone loses.
Especially our end users.
Software Development Myths
1. Software is easier to change than hardware
2. Processes aren’t needed in “maintenance mode”
3. Source code is self-documenting
Some developers actually
remove other people’s
comments from code.
Argument: Documentation
is going to be out of date
soon, so I’m saving us time
by removing it before that
happens.
Arguments for removing
comments fail to take staff
turnover issues into
account.
Fix with a simple
requirement: every
developer responsible for
verifying comments are
correct before checking in
changes.
Have QA do basic spot-
checking to verify.
Software Development Myths
1. Software is easier to change than hardware
2. Processes aren’t needed in “maintenance mode”
3. Source code is self-documenting
4. Quality can be tested into a software system
Henry Ford’s rolling
assembly line built quality
into the production
process:
• Break process into
small steps
• Execute each step
perfectly
• Quality inspections at
key milestones during
production
Pre-war Japanese industry
used high-quantity, low-
quality production
processes
Post-war Japanese
industry focused on high
quality products at the
expense of quantity.
Testing only tells you if
quality is present – it
doesn’t help increase a
product’s quality.
Quality products have a
chance to be successful.
Low-quality products end
up where they belong: the
scrap pile.
Software Development Myths
1. Software is easier to change than hardware
2. Processes aren’t needed in “maintenance mode”
3. Source code is self-documenting
4. Quality can be tested into a software system
5. We sell code, not analysis and design documents
Successful engineering has
always depended on
careful analysis, design,
and planning.
A carefully designed plan,
agreed to by the
development team, is
much more likely to lead
to a successful outcome.
Software Development Myths
1. Software is easier to change than hardware
2. Processes aren’t needed in “maintenance mode”
3. Source code is self-documenting
4. Quality can be tested into a software system
5. We sell code, not analysis and design documents
6. We don’t need QA – good programmers don’t make mistakes
QA’s job isn’t testing
software to find bugs – its
job is to prevent bugs in
the first place.
Software Development Myths
1. Software is easier to change than hardware
2. Processes aren’t needed in “maintenance mode”
3. Source code is self-documenting
4. Quality can be tested into a software system
5. We sell code, not analysis and design documents
6. We don’t need QA – good programmers don’t make mistakes
7. Increasing compensation increases performance
Increasing pay doesn’t
make unhappy developers
happy.
The company is signaling
that they like the way
things are going, and they
aren’t going to make any
changes.
Make sure developers
know any overwork
scenario is a short-term
situation
Software Development Myths
2. Processes aren’t needed in “maintenance mode”
3. Source code is self-documenting
4. Quality can be tested into a software system
5. We sell code, not analysis and design documents
6. We don’t need QA – good programmers don’t make mistakes
7. Increasing compensation increases performance
8. Rewarding managers with perks will make management
positions desirable.
PerksDriveWrong
KindOfPersonInto
Management
Managers would rather be
coding, don’t deal
effectively with HR issues,
and are generally
miserable.
PayShouldBeTied
toValue,Not
Position
Many managers at
successful firms are paid
less than some of the
engineers who work for
them.
Software Development Myths
3. Source code is self-documenting
4. Quality can be tested into a software system
5. We sell code, not analysis and design documents
6. We don’t need QA – good programmers don’t make mistakes
7. Increasing compensation increases performance
8. Rewarding managers with perks will make management
positions desirable
9. Processes are great, as long as you aren’t behind schedule
Balance
Don’t abandon your
processes, but don’t
slavishly follow processes
that don’t make sense for
your situation.
GoodProcesses
AreUsefulIn
Emergencies
Effective processes have
evolved over time to work
in both ordinary and
extraordinary
circumstances.
Example:Out-of-
stockAirplane
Parts
Passenger aircraft
manufacturers have
processes to get out-of-
stock parts into customer
hands ASAP.
Manufacturing and quality
processes are streamlined,
but no steps are skipped.
Software Development Myths
4. Quality can be tested into a software system
5. We sell code, not analysis and design documents
6. We don’t need QA – good programmers don’t make mistakes
7. Increasing compensation increases performance
8. Rewarding managers with perks will make management
positions desirable
9. Processes are great, as long as you aren’t behind schedule
10. We have to be first to market, and formal processes just slow
us down
DefiniteFirst-To-
MarketAdvantage
First company to offer a
product in a new market
niche usually grabs 60%-
80% share.
LockUp
Difficult to compete in a
saturated market – “rip
and replace.”
…But how long does it
really take to put together
some reasonable
processes?
“LandRush”
Development
Actually takes more time
to develop a marketable
product in “Land Rush”
mode than it will if you use
defined processes to
organize workflow and
reduce bugs.
Software Development Myths
6. We don’t need QA – good programmers don’t make mistakes
7. Increasing compensation increases performance
8. Rewarding managers with perks will make management
positions desirable
9. Processes are great, as long as you aren’t behind schedule
10. We have to be first to market, and formal processes just slow
us down
11. We can tie together several COTS packages and mostly avoid
writing new code
CommercialOff
TheShelf(COTS)
COTS packages are
designed to solve a
specific problem in a
specific way – probably
not yours.
Using COTS makes your
software the same as
everyone else’s – why
bother to develop it in the
first place?
IntrinsicCOTS
Issues
Some popular COTS
systems introduce
significant latency into
real-time and interactive
software.
Integration of multiple
COTS systems isn’t as easy
as you might think.
Software Development Myths
7. Increasing compensation increases performance
8. Rewarding managers with perks will make management
positions desirable
9. Processes are great, as long as you aren’t behind schedule
10. We have to be first to market, and formal processes just slow
us down
11. We can tie together several COTS packages and mostly avoid
writing new code
12. Formal processes cause talented people to leave
AvoidingProcesses
toAvoidChange
Some poor managers are
afraid of change, others
are afraid that processes
will reveal their poor
leadership.
Instituting formal
processes usually
improves development
team morale (and
productivity).
Process-Induced
Failures
All failure stories lack
detail – the real story is
that the dev team tried
out a method, and had
problems.
Usually the problems
would have been
resolvable, but the
software manager freaked
when code didn’t start
rolling out the door and
abandoned the processes.
Maintaining
ScheduleControl
Time marches forward no
matter what you do.
Too easy to not realize
how far behind a software
project is until it actually
fails.
GodzillaDoesn’t
KillSoftware
Projects
Schedules almost never
slip because of a single
catastrophic event.
DucksKill
SoftwareProjects
A single bite from a duck
won’t kill you, and a small
schedule issue won’t kill a
software project.
Actually,LOTSof
DucksKillSoftware
Projects
A missed delivery or
milestone is a “duck”.
Lots of small schedule slips
add up to big schedule
slips.
If enough ducks show up,
your project’s dead.
Dragon’s Triangle of Software
Scope
Resources Schedule
Software
ManagementIsn’t
AnExactScience
No definite right or wrong
answers, processes, or
solutions.
Key Take-Aways
• Rules, principles, and experience in the physical world doesn’t
often apply to software
• Quality affects performance of both the product AND your
team
• Small scheduling slides very quickly add up to a large slip
Why Is Managing Software So Hard?

More Related Content

What's hot

Intro to Lean Software Development
Intro to Lean Software DevelopmentIntro to Lean Software Development
Intro to Lean Software Development
gcaprio
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software Development
Astrails
 
Agility and planning : tools and processes
Agility and planning  : tools and processesAgility and planning  : tools and processes
Agility and planning : tools and processes
Jérôme Kehrli
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software Development
Cristian Andreica
 
Myths
MythsMyths
The Real Reason That Projects Fail and How to Fix it - An Introduction to Cri...
The Real Reason That Projects Fail and How to Fix it - An Introduction to Cri...The Real Reason That Projects Fail and How to Fix it - An Introduction to Cri...
The Real Reason That Projects Fail and How to Fix it - An Introduction to Cri...
Association for Project Management
 
Agile 2 - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021
Agile 2  - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021Agile 2  - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021
Agile 2 - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021
Lisa Boyer Cooney (she/her)
 
Lean Software Development Principles
Lean Software Development PrinciplesLean Software Development Principles
Lean Software Development Principles
John Vajda
 
Introduction to Agile
Introduction to AgileIntroduction to Agile
Introduction to AgileRichard Cheng
 
Lean Software 101
Lean Software 101Lean Software 101
Lean Software 101
David Hanson
 
Lean Software Development Presentation
Lean Software Development PresentationLean Software Development Presentation
Lean Software Development Presentationsushant.1409
 
5 Secrets of Smarter, Faster, & Cheaper Construction In NYC
5 Secrets of Smarter, Faster, & Cheaper Construction In NYC5 Secrets of Smarter, Faster, & Cheaper Construction In NYC
5 Secrets of Smarter, Faster, & Cheaper Construction In NYC
RahulJaykar21
 
Major Projects - Faster Better Cheaper
Major Projects - Faster Better CheaperMajor Projects - Faster Better Cheaper
Major Projects - Faster Better Cheaper
Ian Heptinstall
 
Improving Focus and Predictability on Projects with Critical Chain Project Ma...
Improving Focus and Predictability on Projects with Critical Chain Project Ma...Improving Focus and Predictability on Projects with Critical Chain Project Ma...
Improving Focus and Predictability on Projects with Critical Chain Project Ma...
Joe Cooper
 
An introduction to Critical Chain Project Management (CCPM)
An introduction to Critical Chain Project Management (CCPM)An introduction to Critical Chain Project Management (CCPM)
An introduction to Critical Chain Project Management (CCPM)
Association for Project Management
 
Intro to Agile and Lean Software Development
Intro to Agile and Lean Software DevelopmentIntro to Agile and Lean Software Development
Intro to Agile and Lean Software Development
Aleksejs Truhans
 
Technical Debt 101
Technical Debt 101Technical Debt 101
Technical Debt 101
Intechnica
 
Agile Methods: The Good, the Hype and the Ugly
Agile Methods: The Good, the Hype and the UglyAgile Methods: The Good, the Hype and the Ugly
Agile Methods: The Good, the Hype and the Ugly
Tyrone Grandison
 
Lecture 1 introduction to applied software project management
Lecture 1   introduction to applied software project managementLecture 1   introduction to applied software project management
Lecture 1 introduction to applied software project managementanasz3z3
 
Introduction to Agile
Introduction to AgileIntroduction to Agile
Introduction to Agile
Charlotte Chang
 

What's hot (20)

Intro to Lean Software Development
Intro to Lean Software DevelopmentIntro to Lean Software Development
Intro to Lean Software Development
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software Development
 
Agility and planning : tools and processes
Agility and planning  : tools and processesAgility and planning  : tools and processes
Agility and planning : tools and processes
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software Development
 
Myths
MythsMyths
Myths
 
The Real Reason That Projects Fail and How to Fix it - An Introduction to Cri...
The Real Reason That Projects Fail and How to Fix it - An Introduction to Cri...The Real Reason That Projects Fail and How to Fix it - An Introduction to Cri...
The Real Reason That Projects Fail and How to Fix it - An Introduction to Cri...
 
Agile 2 - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021
Agile 2  - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021Agile 2  - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021
Agile 2 - The Next Iteration of Agile - Lisa Cooney for Agile Nova 7-29-2021
 
Lean Software Development Principles
Lean Software Development PrinciplesLean Software Development Principles
Lean Software Development Principles
 
Introduction to Agile
Introduction to AgileIntroduction to Agile
Introduction to Agile
 
Lean Software 101
Lean Software 101Lean Software 101
Lean Software 101
 
Lean Software Development Presentation
Lean Software Development PresentationLean Software Development Presentation
Lean Software Development Presentation
 
5 Secrets of Smarter, Faster, & Cheaper Construction In NYC
5 Secrets of Smarter, Faster, & Cheaper Construction In NYC5 Secrets of Smarter, Faster, & Cheaper Construction In NYC
5 Secrets of Smarter, Faster, & Cheaper Construction In NYC
 
Major Projects - Faster Better Cheaper
Major Projects - Faster Better CheaperMajor Projects - Faster Better Cheaper
Major Projects - Faster Better Cheaper
 
Improving Focus and Predictability on Projects with Critical Chain Project Ma...
Improving Focus and Predictability on Projects with Critical Chain Project Ma...Improving Focus and Predictability on Projects with Critical Chain Project Ma...
Improving Focus and Predictability on Projects with Critical Chain Project Ma...
 
An introduction to Critical Chain Project Management (CCPM)
An introduction to Critical Chain Project Management (CCPM)An introduction to Critical Chain Project Management (CCPM)
An introduction to Critical Chain Project Management (CCPM)
 
Intro to Agile and Lean Software Development
Intro to Agile and Lean Software DevelopmentIntro to Agile and Lean Software Development
Intro to Agile and Lean Software Development
 
Technical Debt 101
Technical Debt 101Technical Debt 101
Technical Debt 101
 
Agile Methods: The Good, the Hype and the Ugly
Agile Methods: The Good, the Hype and the UglyAgile Methods: The Good, the Hype and the Ugly
Agile Methods: The Good, the Hype and the Ugly
 
Lecture 1 introduction to applied software project management
Lecture 1   introduction to applied software project managementLecture 1   introduction to applied software project management
Lecture 1 introduction to applied software project management
 
Introduction to Agile
Introduction to AgileIntroduction to Agile
Introduction to Agile
 

Viewers also liked

Time value of money Very important concepts
Time value of money  Very important conceptsTime value of money  Very important concepts
Time value of money Very important concepts
Sumaira Sultana Talpur (MBA Finance)
 
Mgt402 shortnoteslecture23to45
Mgt402 shortnoteslecture23to45Mgt402 shortnoteslecture23to45
Mgt402 shortnoteslecture23to45
sf2004
 
Break Even Analysis
Break Even AnalysisBreak Even Analysis
Break Even Analysis
kevrcal
 
How to Calculate your Marketing ROI
How to Calculate your Marketing ROIHow to Calculate your Marketing ROI
How to Calculate your Marketing ROI
Ricardo Vanegas, MBA
 
Introduction to TCP/IP
Introduction to TCP/IPIntroduction to TCP/IP
Introduction to TCP/IP
Michael Lamont
 
Breakeven Point Presentation
Breakeven Point PresentationBreakeven Point Presentation
Breakeven Point Presentation
Profitable Hospitality
 
Pricing Analytics: Segmenting Customers To Maximize Revenue
Pricing Analytics: Segmenting Customers To Maximize RevenuePricing Analytics: Segmenting Customers To Maximize Revenue
Pricing Analytics: Segmenting Customers To Maximize Revenue
Michael Lamont
 
Financial aspects
Financial aspectsFinancial aspects
Financial aspectsamitgurus
 
Cost behavior and contribution margin reporting
Cost behavior and contribution margin reportingCost behavior and contribution margin reporting
Cost behavior and contribution margin reporting
Sumaira Sultana Talpur (MBA Finance)
 
Pricing Analytics: Estimating Demand Curves Without Price Elasticity
Pricing Analytics: Estimating Demand Curves Without Price ElasticityPricing Analytics: Estimating Demand Curves Without Price Elasticity
Pricing Analytics: Estimating Demand Curves Without Price Elasticity
Michael Lamont
 
Cost Volume Profit Analysis
Cost Volume Profit AnalysisCost Volume Profit Analysis
Cost Volume Profit Analysis
Kapp Edge Solutions Pvt Ltd
 
Break even analysis- A Comprehensive and Clear Description
Break even analysis- A Comprehensive and Clear DescriptionBreak even analysis- A Comprehensive and Clear Description
Break even analysis- A Comprehensive and Clear Description
Shyama Shankar
 
Cost volume profit analysis.
Cost volume profit analysis.Cost volume profit analysis.
Cost volume profit analysis.
Varadraj Bapat
 
BREAK EVEN ANALYSIS
BREAK EVEN ANALYSISBREAK EVEN ANALYSIS
BREAK EVEN ANALYSIS
Sadrani Yash
 
Break-Even Analysis and Break-Even Point
Break-Even Analysis and Break-Even PointBreak-Even Analysis and Break-Even Point
Break-Even Analysis and Break-Even Point
Avinash Chavan
 
20 Vital Sales and Marketing Metrics
20 Vital Sales and Marketing Metrics20 Vital Sales and Marketing Metrics
20 Vital Sales and Marketing Metrics
Satya Mahesh Kallakuru
 
Marketing Performance & Profitability
Marketing Performance & ProfitabilityMarketing Performance & Profitability
Marketing Performance & Profitability
Anand Subramaniam
 
Pricing strategies
Pricing strategiesPricing strategies
Pricing strategies
Peter Ramsden
 

Viewers also liked (20)

Time value of money Very important concepts
Time value of money  Very important conceptsTime value of money  Very important concepts
Time value of money Very important concepts
 
Mgt402 shortnoteslecture23to45
Mgt402 shortnoteslecture23to45Mgt402 shortnoteslecture23to45
Mgt402 shortnoteslecture23to45
 
Break Even Analysis
Break Even AnalysisBreak Even Analysis
Break Even Analysis
 
How to Calculate your Marketing ROI
How to Calculate your Marketing ROIHow to Calculate your Marketing ROI
How to Calculate your Marketing ROI
 
Introduction to TCP/IP
Introduction to TCP/IPIntroduction to TCP/IP
Introduction to TCP/IP
 
Breakeven Point Presentation
Breakeven Point PresentationBreakeven Point Presentation
Breakeven Point Presentation
 
Pricing Analytics: Segmenting Customers To Maximize Revenue
Pricing Analytics: Segmenting Customers To Maximize RevenuePricing Analytics: Segmenting Customers To Maximize Revenue
Pricing Analytics: Segmenting Customers To Maximize Revenue
 
Financial aspects
Financial aspectsFinancial aspects
Financial aspects
 
quantitative analysis(4210)
quantitative analysis(4210)quantitative analysis(4210)
quantitative analysis(4210)
 
Cost behavior and contribution margin reporting
Cost behavior and contribution margin reportingCost behavior and contribution margin reporting
Cost behavior and contribution margin reporting
 
Pricing Analytics: Estimating Demand Curves Without Price Elasticity
Pricing Analytics: Estimating Demand Curves Without Price ElasticityPricing Analytics: Estimating Demand Curves Without Price Elasticity
Pricing Analytics: Estimating Demand Curves Without Price Elasticity
 
Cost Volume Profit Analysis
Cost Volume Profit AnalysisCost Volume Profit Analysis
Cost Volume Profit Analysis
 
Break even analysis- A Comprehensive and Clear Description
Break even analysis- A Comprehensive and Clear DescriptionBreak even analysis- A Comprehensive and Clear Description
Break even analysis- A Comprehensive and Clear Description
 
Cost volume profit analysis.
Cost volume profit analysis.Cost volume profit analysis.
Cost volume profit analysis.
 
BREAK EVEN ANALYSIS
BREAK EVEN ANALYSISBREAK EVEN ANALYSIS
BREAK EVEN ANALYSIS
 
Break-Even Analysis and Break-Even Point
Break-Even Analysis and Break-Even PointBreak-Even Analysis and Break-Even Point
Break-Even Analysis and Break-Even Point
 
20 Vital Sales and Marketing Metrics
20 Vital Sales and Marketing Metrics20 Vital Sales and Marketing Metrics
20 Vital Sales and Marketing Metrics
 
Marketing Performance & Profitability
Marketing Performance & ProfitabilityMarketing Performance & Profitability
Marketing Performance & Profitability
 
Break even analysis
Break even analysisBreak even analysis
Break even analysis
 
Pricing strategies
Pricing strategiesPricing strategies
Pricing strategies
 

Similar to Why Is Managing Software So Hard?

Another Agile Intro
Another Agile IntroAnother Agile Intro
Another Agile Intro
Steve Hayes
 
Agile software development
Agile software development Agile software development
Agile software development
saurabh goel
 
Cost estimation
Cost estimationCost estimation
Cost estimation
Nameirakpam Sundari
 
How to Estimate Software Development Project Cost.pdf
How to Estimate Software Development Project Cost.pdfHow to Estimate Software Development Project Cost.pdf
How to Estimate Software Development Project Cost.pdf
Vrinsoft Technology
 
A Software Engineer
A Software EngineerA Software Engineer
A Software Engineer
Abbasgulu Allahverdili
 
What scrum masters and product owners should know about software quality and ...
What scrum masters and product owners should know about software quality and ...What scrum masters and product owners should know about software quality and ...
What scrum masters and product owners should know about software quality and ...
STX Next
 
The Waterfall Model
The Waterfall ModelThe Waterfall Model
The Waterfall Model
Damian T. Gordon
 
Critical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right WayCritical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right Way
SmartBear
 
A Proven Software Development Process for the Non Technical Founder
A Proven Software Development Process for the Non Technical FounderA Proven Software Development Process for the Non Technical Founder
A Proven Software Development Process for the Non Technical Founder
Founders Workshop
 
importance of resources allocation in formal method of software engineering ...
 importance of resources allocation in formal method of software engineering ... importance of resources allocation in formal method of software engineering ...
importance of resources allocation in formal method of software engineering ...
abdulrafaychaudhry
 
The art of execution
The art of executionThe art of execution
The art of execution
Crystal Taggart
 
Smart CTO Service
Smart CTO ServiceSmart CTO Service
Smart CTO Service
Atlogys Technical Consulting
 
Steve mcconnell
Steve mcconnellSteve mcconnell
Steve mcconnell
Shiraz316
 
Applying both of waterfall and iterative development
Applying both of waterfall and iterative developmentApplying both of waterfall and iterative development
Applying both of waterfall and iterative development
Deny Prasetia
 
How to Plan for Hyper Growth Success by Slack Software Engineer
How to Plan for Hyper Growth Success by Slack Software EngineerHow to Plan for Hyper Growth Success by Slack Software Engineer
How to Plan for Hyper Growth Success by Slack Software Engineer
Product School
 
Popular Pitfalls In Sdlc Phases 1
Popular Pitfalls In Sdlc Phases 1Popular Pitfalls In Sdlc Phases 1
Popular Pitfalls In Sdlc Phases 1
Ramkumar Ramachandran
 
3.pptx
3.pptx3.pptx
3.pptx
ssusere16bd9
 
Chapter 2
Chapter 2 Chapter 2
Chapter 2
KaiEnTee1
 
9 Common Challenges in the Software Development Process
9 Common Challenges in the Software Development Process9 Common Challenges in the Software Development Process
9 Common Challenges in the Software Development Process
Sattrix Software Solutions
 
How Software Developers Destroy Business Value.pptx
How Software Developers Destroy Business Value.pptxHow Software Developers Destroy Business Value.pptx
How Software Developers Destroy Business Value.pptx
Aaron Stannard
 

Similar to Why Is Managing Software So Hard? (20)

Another Agile Intro
Another Agile IntroAnother Agile Intro
Another Agile Intro
 
Agile software development
Agile software development Agile software development
Agile software development
 
Cost estimation
Cost estimationCost estimation
Cost estimation
 
How to Estimate Software Development Project Cost.pdf
How to Estimate Software Development Project Cost.pdfHow to Estimate Software Development Project Cost.pdf
How to Estimate Software Development Project Cost.pdf
 
A Software Engineer
A Software EngineerA Software Engineer
A Software Engineer
 
What scrum masters and product owners should know about software quality and ...
What scrum masters and product owners should know about software quality and ...What scrum masters and product owners should know about software quality and ...
What scrum masters and product owners should know about software quality and ...
 
The Waterfall Model
The Waterfall ModelThe Waterfall Model
The Waterfall Model
 
Critical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right WayCritical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right Way
 
A Proven Software Development Process for the Non Technical Founder
A Proven Software Development Process for the Non Technical FounderA Proven Software Development Process for the Non Technical Founder
A Proven Software Development Process for the Non Technical Founder
 
importance of resources allocation in formal method of software engineering ...
 importance of resources allocation in formal method of software engineering ... importance of resources allocation in formal method of software engineering ...
importance of resources allocation in formal method of software engineering ...
 
The art of execution
The art of executionThe art of execution
The art of execution
 
Smart CTO Service
Smart CTO ServiceSmart CTO Service
Smart CTO Service
 
Steve mcconnell
Steve mcconnellSteve mcconnell
Steve mcconnell
 
Applying both of waterfall and iterative development
Applying both of waterfall and iterative developmentApplying both of waterfall and iterative development
Applying both of waterfall and iterative development
 
How to Plan for Hyper Growth Success by Slack Software Engineer
How to Plan for Hyper Growth Success by Slack Software EngineerHow to Plan for Hyper Growth Success by Slack Software Engineer
How to Plan for Hyper Growth Success by Slack Software Engineer
 
Popular Pitfalls In Sdlc Phases 1
Popular Pitfalls In Sdlc Phases 1Popular Pitfalls In Sdlc Phases 1
Popular Pitfalls In Sdlc Phases 1
 
3.pptx
3.pptx3.pptx
3.pptx
 
Chapter 2
Chapter 2 Chapter 2
Chapter 2
 
9 Common Challenges in the Software Development Process
9 Common Challenges in the Software Development Process9 Common Challenges in the Software Development Process
9 Common Challenges in the Software Development Process
 
How Software Developers Destroy Business Value.pptx
How Software Developers Destroy Business Value.pptxHow Software Developers Destroy Business Value.pptx
How Software Developers Destroy Business Value.pptx
 

More from Michael Lamont

Pricing Analytics: Optimizing Sales Models
Pricing Analytics: Optimizing Sales ModelsPricing Analytics: Optimizing Sales Models
Pricing Analytics: Optimizing Sales Models
Michael Lamont
 
Pricing Analytics: Price Skimming
Pricing Analytics: Price SkimmingPricing Analytics: Price Skimming
Pricing Analytics: Price Skimming
Michael Lamont
 
Business Intelligence: Multidimensional Analysis
Business Intelligence: Multidimensional AnalysisBusiness Intelligence: Multidimensional Analysis
Business Intelligence: Multidimensional Analysis
Michael Lamont
 
Pricing Analytics: Optimizing Price
Pricing Analytics: Optimizing PricePricing Analytics: Optimizing Price
Pricing Analytics: Optimizing Price
Michael Lamont
 
Pricing Analytics: Creating Linear & Power Demand Curves
Pricing Analytics: Creating Linear & Power Demand CurvesPricing Analytics: Creating Linear & Power Demand Curves
Pricing Analytics: Creating Linear & Power Demand Curves
Michael Lamont
 
Understanding Business Intelligence
Understanding Business IntelligenceUnderstanding Business Intelligence
Understanding Business Intelligence
Michael Lamont
 
Email Address Harvesting
Email Address HarvestingEmail Address Harvesting
Email Address Harvesting
Michael Lamont
 
Antispam Image Filtering Technologies
Antispam Image Filtering TechnologiesAntispam Image Filtering Technologies
Antispam Image Filtering Technologies
Michael Lamont
 
Evaluating and Implementing Anti-Spam Solutions
Evaluating and Implementing Anti-Spam SolutionsEvaluating and Implementing Anti-Spam Solutions
Evaluating and Implementing Anti-Spam Solutions
Michael Lamont
 
Installing & Configuring OpenLDAP (Hands On Lab)
Installing & Configuring OpenLDAP (Hands On Lab)Installing & Configuring OpenLDAP (Hands On Lab)
Installing & Configuring OpenLDAP (Hands On Lab)Michael Lamont
 
Evaluating Anti-Spam Filtering Solutions
Evaluating Anti-Spam Filtering SolutionsEvaluating Anti-Spam Filtering Solutions
Evaluating Anti-Spam Filtering Solutions
Michael Lamont
 
Business Intelligence: Data Warehouses
Business Intelligence: Data WarehousesBusiness Intelligence: Data Warehouses
Business Intelligence: Data Warehouses
Michael Lamont
 

More from Michael Lamont (12)

Pricing Analytics: Optimizing Sales Models
Pricing Analytics: Optimizing Sales ModelsPricing Analytics: Optimizing Sales Models
Pricing Analytics: Optimizing Sales Models
 
Pricing Analytics: Price Skimming
Pricing Analytics: Price SkimmingPricing Analytics: Price Skimming
Pricing Analytics: Price Skimming
 
Business Intelligence: Multidimensional Analysis
Business Intelligence: Multidimensional AnalysisBusiness Intelligence: Multidimensional Analysis
Business Intelligence: Multidimensional Analysis
 
Pricing Analytics: Optimizing Price
Pricing Analytics: Optimizing PricePricing Analytics: Optimizing Price
Pricing Analytics: Optimizing Price
 
Pricing Analytics: Creating Linear & Power Demand Curves
Pricing Analytics: Creating Linear & Power Demand CurvesPricing Analytics: Creating Linear & Power Demand Curves
Pricing Analytics: Creating Linear & Power Demand Curves
 
Understanding Business Intelligence
Understanding Business IntelligenceUnderstanding Business Intelligence
Understanding Business Intelligence
 
Email Address Harvesting
Email Address HarvestingEmail Address Harvesting
Email Address Harvesting
 
Antispam Image Filtering Technologies
Antispam Image Filtering TechnologiesAntispam Image Filtering Technologies
Antispam Image Filtering Technologies
 
Evaluating and Implementing Anti-Spam Solutions
Evaluating and Implementing Anti-Spam SolutionsEvaluating and Implementing Anti-Spam Solutions
Evaluating and Implementing Anti-Spam Solutions
 
Installing & Configuring OpenLDAP (Hands On Lab)
Installing & Configuring OpenLDAP (Hands On Lab)Installing & Configuring OpenLDAP (Hands On Lab)
Installing & Configuring OpenLDAP (Hands On Lab)
 
Evaluating Anti-Spam Filtering Solutions
Evaluating Anti-Spam Filtering SolutionsEvaluating Anti-Spam Filtering Solutions
Evaluating Anti-Spam Filtering Solutions
 
Business Intelligence: Data Warehouses
Business Intelligence: Data WarehousesBusiness Intelligence: Data Warehouses
Business Intelligence: Data Warehouses
 

Recently uploaded

A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 

Recently uploaded (20)

A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 

Why Is Managing Software So Hard?

  • 1. WHY IS SOFTWARE DEVELOPMENT SO HARD? SEI 2015 Munich Michael Lamont lamont@post.harvard.edu
  • 2. Dragon’sTriangle Mysterious area off coast of Japan where ships sink, planes crash, and all kinds of weird things happen
  • 3. Software BalancingAct Successfully complete a project plan while meeting changing demands and constraints
  • 4. Unreasonable Constraints • Set schedules & budgets without a detailed design • Estimations performed without input from developers • Ignoring interlocking relationships between cost, schedule, and features
  • 5. Three Sides of Software Dragon’s Triangle • Scope • Resources • Schedule
  • 6. SoftwareProject Failure Interrelated problems of “Dragon’s Triangle” cause a significant number of software projects to disappear
  • 8. Construction Trade in your Nerf gun for a nail gun? How much harder can it be?
  • 9. Easy&Straight- Forward,Right? • Clear requirements • Expectations are easy to manage • Detailed plans (blueprint) • Well-established principles • Knowledgeable staff • On time, on scope, on budget • $$$ for everyone!
  • 10. NotActuallyThat Simple… • Construction doesn’t often lend itself to a cookie-cutter approach • Estimation can be more of a dark art than a simple process • Experience and intuition > science and engineering
  • 11. HowContractors ActuallyGetPaid… • No change to original plans, no profit for contractor • Changes to original blueprint are virtually guaranteed • Profit comes from charging for changes
  • 12. Softwareis AlwaysNew Every software system is different from those that came before, with its own set of challenges and issues.
  • 13. There are real & substantial differences between building in the real world and building software.
  • 14. When building software, it’s impossible to predict the problems you’ll face before you’re well into the development process.
  • 15. Development teams love to work on shiny new projects, but complexity lurks within
  • 16. Physical objects have tactile properties – software does not.
  • 17. Comparison of Hardware/Software Properties Phenomenon Hardware Software Manufacture of exact duplicates A challenge Not a problem Wearing out with use or passage of time A major issue Not a problem Human sensory experiences Not a problem Not experienced Progress measured during construction Observable Observable only via a baseline process Cost, schedule, and planning Experienced physically Requires speculation and relatively high risk
  • 18. We can see & touch our progress when building things in the physical world
  • 19. In the real world, following sequential steps gives us incremental completion we can experience and evaluate
  • 20. In early stages of software development, all we have are design and architecture documents to experience.
  • 21. SoftwareIsA LeapofFaith All stakeholders have to trust the process, and believe progress is being made.
  • 22. Software engineering’s track record at anticipating and mitigating risks isn’t great compared to engineering in the physical world.
  • 23. Engineering in the physical world is based on unchanging laws that make the future predictable. Lack of hard-and-fast principles in software world lets unpredictable major setbacks occur in moments.
  • 24. When developing software, it’s easy to get forced into dealing with simultaneous problems: • Scheduling • Cost • Features
  • 25. 3 Points of the Dragon’s Triangle Scope Resources Schedule
  • 26. 3 Points of the Dragon’s Triangle Scope Resources Schedule
  • 27. Softwareprojects aren’t deterministic There isn’t a linear relationship between staffing and schedule, and the relationship can even go inverted (adding more people makes the project take longer)
  • 28. 7 8 9 10 11 12 1 2 3 4 5 6
  • 29. 7 8 9 1 2 3 4 5 6
  • 30. 1 2 3 4 5 6
  • 32.
  • 33. FeatureCreep The list of required features always seems to grow longer as a project progresses – never shorter.
  • 34. The“SadTruths” NegativelyImpact Morale Dev team sees the size of the project increase, without a corresponding increase in time and resources
  • 35. HiringNewPeople MakesThings Worse New employees (or even old employees who are new to the project) require a long runway to get up to speed, and drain team resources in the process
  • 36. Remedies/Repercussions in Hardware & Software Projects Situation Hardware World Software World Behind schedule Add people and/or equipment, and balance expense elsewhere Adding people makes matters worse, so cut features, which impacts customers and morale. Or go into Death March Mode. Over budget Stretch out delivery time; you might lose incentive fees. Adding people makes matters worse, so cut features, which impacts customers and morale. Or go into Death March Mode. Not all features will be delivered Renegotiate the contract; customer might get another vendor to finish the job. Reassess, focusing on customer’s “must have” features; customer expectations might impact opinion of results. Or go into Death March Mode.
  • 37. Remedies/Repercussions in Hardware & Software Projects Situation Hardware World Software World Behind schedule Add people and/or equipment, and balance expense elsewhere Adding people makes matters worse, so cut features, which impacts customers and morale. Or go into Death March Mode. Over budget Stretch out delivery time; you might lose incentive fees. Adding people makes matters worse, so cut features, which impacts customers and morale. Or go into Death March Mode. Not all features will be delivered Renegotiate the contract; customer might get another vendor to finish the job. Reassess, focusing on customer’s “must have” features; customer expectations might impact opinion of results. Or go into Death March Mode.
  • 38. “DeathMarch Mode” • Slang for quickly spending ridiculous amounts of resources to force a project to completion • Caused by the software manager’s failings
  • 39. Deterministic Problem:Hauling Dirt • Adding more people gets the job done faster • But not really: still scaling problems past a certain point
  • 40. SoftwareIsn’t Deterministic • No way to predict how long it’ll take to identify and fix a specific defect • “Death March Mode” leads to mental fatigue, which leads to poor productivity and mistakes
  • 42. CuttingFeatures HurtsDevTeam Morale Developers are artists, and won’t be your biggest fan if you cut a feature they’ve poured their heart and soul into for months
  • 43. IfYouHaveTo CutFeatures… • Reassure the affected developers that their work is appreciated • Feature cuts are due to scheduling reasons, not the developers’ skill level or work product
  • 44. “Wicked” Problems • Put forth by design theorist Horst Rittel • Describes a class of problems that don’t have bounded solutions • The more effort you put into solving the problem, the larger the problem becomes until infinity • Software development is a “wicked” problem
  • 45. Criteria For “Wicked” Problems • Cannot be definitively stated • Software requirements change in unpredictable ways • No rule or guideline to determine when the problem is solved • Development on a product only stops when you run out of time or money • Solutions are “good” or “bad” – not “right” or “wrong” • Software provides thousands of ways to meet even the most detailed specifications • Some solutions are better than others, even though they all meet spec
  • 46. Criteria For “Wicked” Problems • Cannot be definitively tested • No scientific way to accept or reject a specific software solution • Spec issues can be argued without clear rights and wrongs • Solutions are too big (i.e., expensive) to experiment with • Building multiple software systems and choosing the best is prohibitively expensive • There are unlimited solutions, and unlimited criteria for evaluation
  • 47. Criteria For “Wicked” Problems • Every problem is unique • Symptomatic of higher-level problems • “Solving” one part of the problem can lead to unanticipated problems in other areas
  • 48. Conclusion: Softwareisa “WickedProblem” Project success depends on: • Using what we know when the project starts • Using the data we gather over the course of the project • Trusting our data enough to use it to see the project through to completion
  • 50. Software Development Myths 1. Software is easier to change than hardware
  • 51. Large-scale projects in the physical world undergo intensive planning before anyone touches a shovel
  • 52. With software, it’s too easy to think we “see” the solution and start coding immediately, without really understanding the problem. Example: Y2K
  • 53. Software Development Myths 1. Software is easier to change than hardware 2. Processes aren’t needed in “maintenance mode”
  • 54. Aircraft maintenance processes provide a useful template for software maintenance. Careful records are kept of every issue and action taken, and analyzed to improve results.
  • 55. Without metrics, processes, and clearly defined methods, everyone loses. Especially our end users.
  • 56. Software Development Myths 1. Software is easier to change than hardware 2. Processes aren’t needed in “maintenance mode” 3. Source code is self-documenting
  • 57. Some developers actually remove other people’s comments from code. Argument: Documentation is going to be out of date soon, so I’m saving us time by removing it before that happens.
  • 58. Arguments for removing comments fail to take staff turnover issues into account. Fix with a simple requirement: every developer responsible for verifying comments are correct before checking in changes. Have QA do basic spot- checking to verify.
  • 59. Software Development Myths 1. Software is easier to change than hardware 2. Processes aren’t needed in “maintenance mode” 3. Source code is self-documenting 4. Quality can be tested into a software system
  • 60. Henry Ford’s rolling assembly line built quality into the production process: • Break process into small steps • Execute each step perfectly • Quality inspections at key milestones during production
  • 61. Pre-war Japanese industry used high-quantity, low- quality production processes
  • 62. Post-war Japanese industry focused on high quality products at the expense of quantity.
  • 63. Testing only tells you if quality is present – it doesn’t help increase a product’s quality. Quality products have a chance to be successful. Low-quality products end up where they belong: the scrap pile.
  • 64. Software Development Myths 1. Software is easier to change than hardware 2. Processes aren’t needed in “maintenance mode” 3. Source code is self-documenting 4. Quality can be tested into a software system 5. We sell code, not analysis and design documents
  • 65. Successful engineering has always depended on careful analysis, design, and planning. A carefully designed plan, agreed to by the development team, is much more likely to lead to a successful outcome.
  • 66. Software Development Myths 1. Software is easier to change than hardware 2. Processes aren’t needed in “maintenance mode” 3. Source code is self-documenting 4. Quality can be tested into a software system 5. We sell code, not analysis and design documents 6. We don’t need QA – good programmers don’t make mistakes
  • 67. QA’s job isn’t testing software to find bugs – its job is to prevent bugs in the first place.
  • 68. Software Development Myths 1. Software is easier to change than hardware 2. Processes aren’t needed in “maintenance mode” 3. Source code is self-documenting 4. Quality can be tested into a software system 5. We sell code, not analysis and design documents 6. We don’t need QA – good programmers don’t make mistakes 7. Increasing compensation increases performance
  • 69. Increasing pay doesn’t make unhappy developers happy. The company is signaling that they like the way things are going, and they aren’t going to make any changes. Make sure developers know any overwork scenario is a short-term situation
  • 70. Software Development Myths 2. Processes aren’t needed in “maintenance mode” 3. Source code is self-documenting 4. Quality can be tested into a software system 5. We sell code, not analysis and design documents 6. We don’t need QA – good programmers don’t make mistakes 7. Increasing compensation increases performance 8. Rewarding managers with perks will make management positions desirable.
  • 71. PerksDriveWrong KindOfPersonInto Management Managers would rather be coding, don’t deal effectively with HR issues, and are generally miserable.
  • 72. PayShouldBeTied toValue,Not Position Many managers at successful firms are paid less than some of the engineers who work for them.
  • 73. Software Development Myths 3. Source code is self-documenting 4. Quality can be tested into a software system 5. We sell code, not analysis and design documents 6. We don’t need QA – good programmers don’t make mistakes 7. Increasing compensation increases performance 8. Rewarding managers with perks will make management positions desirable 9. Processes are great, as long as you aren’t behind schedule
  • 74. Balance Don’t abandon your processes, but don’t slavishly follow processes that don’t make sense for your situation.
  • 75. GoodProcesses AreUsefulIn Emergencies Effective processes have evolved over time to work in both ordinary and extraordinary circumstances.
  • 76. Example:Out-of- stockAirplane Parts Passenger aircraft manufacturers have processes to get out-of- stock parts into customer hands ASAP. Manufacturing and quality processes are streamlined, but no steps are skipped.
  • 77. Software Development Myths 4. Quality can be tested into a software system 5. We sell code, not analysis and design documents 6. We don’t need QA – good programmers don’t make mistakes 7. Increasing compensation increases performance 8. Rewarding managers with perks will make management positions desirable 9. Processes are great, as long as you aren’t behind schedule 10. We have to be first to market, and formal processes just slow us down
  • 78. DefiniteFirst-To- MarketAdvantage First company to offer a product in a new market niche usually grabs 60%- 80% share.
  • 79. LockUp Difficult to compete in a saturated market – “rip and replace.” …But how long does it really take to put together some reasonable processes?
  • 80. “LandRush” Development Actually takes more time to develop a marketable product in “Land Rush” mode than it will if you use defined processes to organize workflow and reduce bugs.
  • 81. Software Development Myths 6. We don’t need QA – good programmers don’t make mistakes 7. Increasing compensation increases performance 8. Rewarding managers with perks will make management positions desirable 9. Processes are great, as long as you aren’t behind schedule 10. We have to be first to market, and formal processes just slow us down 11. We can tie together several COTS packages and mostly avoid writing new code
  • 82. CommercialOff TheShelf(COTS) COTS packages are designed to solve a specific problem in a specific way – probably not yours. Using COTS makes your software the same as everyone else’s – why bother to develop it in the first place?
  • 83. IntrinsicCOTS Issues Some popular COTS systems introduce significant latency into real-time and interactive software. Integration of multiple COTS systems isn’t as easy as you might think.
  • 84. Software Development Myths 7. Increasing compensation increases performance 8. Rewarding managers with perks will make management positions desirable 9. Processes are great, as long as you aren’t behind schedule 10. We have to be first to market, and formal processes just slow us down 11. We can tie together several COTS packages and mostly avoid writing new code 12. Formal processes cause talented people to leave
  • 85. AvoidingProcesses toAvoidChange Some poor managers are afraid of change, others are afraid that processes will reveal their poor leadership. Instituting formal processes usually improves development team morale (and productivity).
  • 86. Process-Induced Failures All failure stories lack detail – the real story is that the dev team tried out a method, and had problems. Usually the problems would have been resolvable, but the software manager freaked when code didn’t start rolling out the door and abandoned the processes.
  • 87. Maintaining ScheduleControl Time marches forward no matter what you do. Too easy to not realize how far behind a software project is until it actually fails.
  • 89. DucksKill SoftwareProjects A single bite from a duck won’t kill you, and a small schedule issue won’t kill a software project.
  • 90. Actually,LOTSof DucksKillSoftware Projects A missed delivery or milestone is a “duck”. Lots of small schedule slips add up to big schedule slips. If enough ducks show up, your project’s dead.
  • 91. Dragon’s Triangle of Software Scope Resources Schedule
  • 92. Software ManagementIsn’t AnExactScience No definite right or wrong answers, processes, or solutions.
  • 93. Key Take-Aways • Rules, principles, and experience in the physical world doesn’t often apply to software • Quality affects performance of both the product AND your team • Small scheduling slides very quickly add up to a large slip