SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
/
Controlling Complexity,
Eliminating Technical Debt, &
Chimera Pet-Care
Illusions of Engineering
Wednesday, September 16, 2009
Technical Debt
Shipping first time code is like going into
debt. A little debt speeds development so
long as it is paid back promptly with a
rewrite.... The danger occurs when the debt
is not repaid. Every minute spent on not-
quite-right code counts as interest on that
debt. Entire engineering organizations can
be brought to a stand-still under the debt
load of an unconsolidated implementation,
object-oriented or otherwise.
Ward Cunningham:
“
”Wednesday, September 16, 2009
Technical Debt Misunderstood
Interest on technical debt
is time spent on
“not-quite-right”
code.
Wednesday, September 16, 2009
Technical Debt Misunderstood
I find that many developers
poorly define
“not-quite-right”
Wednesday, September 16, 2009
Technical Debt: Developer’s Perspective
Lack of elegance.
Lack of extensibility.
Wednesday, September 16, 2009
Technical Debt: Engineer’s Perspective
does not meet:
functional specifications;
security requirements;
performance requirements.
Wednesday, September 16, 2009
Technical Debt Misunderstood
Why?
Wednesday, September 16, 2009
Technical Debt Understood
Fixing function, security or
performance issues is part of
the original project
on the original budget.
Wednesday, September 16, 2009
Technical Debt Understood
New functional requirements
have new budgets and
the cost of refactoring
existing components
can and must
be included.
Wednesday, September 16, 2009
Technical Debt Understood
Choosing to not refactor
when needed converts
technical debt into
financial debt.
Wednesday, September 16, 2009
Technical debt as a tool
Debt is a financial instrument;
Technical debt is a software
engineering instrument.
Wednesday, September 16, 2009
Technical debt as a tool
If you do not use it,
you will not keep up.
If you do not manage it,
it will suffocate you.
Wednesday, September 16, 2009
Safe technical debt
Lack of elegance.
Lack of extensibility.
Rapid prototyping. END.
Wednesday, September 16, 2009
Typical technical debt
Lack of documentation.
Lack of optimization.
Wednesday, September 16, 2009
Risky technical debt
Lack of complete function.
Lack of complete tests.
Lack of architectural design.
Wednesday, September 16, 2009
Reality
80% of elegance is useful,
20% is self-indulgence.
We call this part “good engineering.”
Wednesday, September 16, 2009
Reality
You likely have no idea how
someone (even you)
will want to extend your code.
Wednesday, September 16, 2009
Reality
100% of premature
optimization is wasteful.
Not all optimization is
premature.
Good luck.
Wednesday, September 16, 2009
Reality
• Implementation averaged 25% over budget [1]
• 52.7% will cost 189% of original estimates [3]
• First year supports costs were underestimated an average of 20% [1]
• 40% failed to achieve their business case within a year of launch [1]
• 75% or more blew their schedules by over 30% [2]
• 31.1% will be canceled before they ever get completed [3]
[1] The Conference Board Survey (2001)
[2] The KPMG Canada Survey (1997)
[3] The Chaos Report (1995)
Wednesday, September 16, 2009
RULE I
TODOs related to
function or security
shall not be used.
Instead try
function or security.
Wednesday, September 16, 2009
RULE II
Observe the
Principle of Least Surprise
Wednesday, September 16, 2009
RULE III
Keep
It
Simple,
Stupid
Wednesday, September 16, 2009
RULE IV
If your code isn’t elegant
it’s worth less.
If your code doesn’t work
it’s worthless.
Wednesday, September 16, 2009
RULE V
Write functional tests.
Wednesday, September 16, 2009
RULE VI
Always use best coding
practices.
Wednesday, September 16, 2009
RULE VII
Optimize everything*
* consider the optimal approach to each problem and articulately
justify using anything else in comments/documentation
Wednesday, September 16, 2009
The Truth
The “Truth” is
software engineering
is a hard balance
Wednesday, September 16, 2009
The Truth
Technical debt must be
measured along side:
financial budgets,
time budgets,
opportunity costs,
expected project longevity.
Wednesday, September 16, 2009
Parting thought
I challenge you to be a
better engineer
and align your goals
with those of the project.
Wednesday, September 16, 2009

Contenu connexe

En vedette

Velocity 2010: Scalable Internet Architectures
Velocity 2010: Scalable Internet ArchitecturesVelocity 2010: Scalable Internet Architectures
Velocity 2010: Scalable Internet ArchitecturesTheo Schlossnagle
 
The math behind big systems analysis.
The math behind big systems analysis.The math behind big systems analysis.
The math behind big systems analysis.Theo Schlossnagle
 
Big Bad PostgreSQL @ Percona
Big Bad PostgreSQL @ PerconaBig Bad PostgreSQL @ Percona
Big Bad PostgreSQL @ PerconaTheo Schlossnagle
 
Scalable Internet Architecture
Scalable Internet ArchitectureScalable Internet Architecture
Scalable Internet ArchitectureTheo Schlossnagle
 
A Coherent Discussion About Performance
A Coherent Discussion About PerformanceA Coherent Discussion About Performance
A Coherent Discussion About PerformanceTheo Schlossnagle
 
Wireless telemetry systems
Wireless telemetry systemsWireless telemetry systems
Wireless telemetry systemsSneha Suluru
 
Monitoring and observability
Monitoring and observabilityMonitoring and observability
Monitoring and observabilityTheo Schlossnagle
 
Telemetry types, frequency,position and multiplexing in telemetry
Telemetry types, frequency,position and multiplexing in telemetryTelemetry types, frequency,position and multiplexing in telemetry
Telemetry types, frequency,position and multiplexing in telemetrysagheer ahmed
 
Data transmission and telemetry
Data transmission and telemetryData transmission and telemetry
Data transmission and telemetryslide rock
 

En vedette (20)

PostgreSQL on Solaris
PostgreSQL on SolarisPostgreSQL on Solaris
PostgreSQL on Solaris
 
Velocity 2010: Scalable Internet Architectures
Velocity 2010: Scalable Internet ArchitecturesVelocity 2010: Scalable Internet Architectures
Velocity 2010: Scalable Internet Architectures
 
The math behind big systems analysis.
The math behind big systems analysis.The math behind big systems analysis.
The math behind big systems analysis.
 
Understanding Slowness
Understanding SlownessUnderstanding Slowness
Understanding Slowness
 
Xtreme Deployment
Xtreme DeploymentXtreme Deployment
Xtreme Deployment
 
Atldevops
AtldevopsAtldevops
Atldevops
 
What's in a number?
What's in a number?What's in a number?
What's in a number?
 
Big Bad PostgreSQL @ Percona
Big Bad PostgreSQL @ PerconaBig Bad PostgreSQL @ Percona
Big Bad PostgreSQL @ Percona
 
SRECon Coherent Performance
SRECon Coherent PerformanceSRECon Coherent Performance
SRECon Coherent Performance
 
Adaptive availability
Adaptive availabilityAdaptive availability
Adaptive availability
 
Scalable Internet Architecture
Scalable Internet ArchitectureScalable Internet Architecture
Scalable Internet Architecture
 
A Coherent Discussion About Performance
A Coherent Discussion About PerformanceA Coherent Discussion About Performance
A Coherent Discussion About Performance
 
Telrmetry1
Telrmetry1Telrmetry1
Telrmetry1
 
Wireless telemetry systems
Wireless telemetry systemsWireless telemetry systems
Wireless telemetry systems
 
Monitoring and observability
Monitoring and observabilityMonitoring and observability
Monitoring and observability
 
Telemetry types, frequency,position and multiplexing in telemetry
Telemetry types, frequency,position and multiplexing in telemetryTelemetry types, frequency,position and multiplexing in telemetry
Telemetry types, frequency,position and multiplexing in telemetry
 
Esperwhispering
EsperwhisperingEsperwhispering
Esperwhispering
 
Monitoring the #DevOps way
Monitoring the #DevOps wayMonitoring the #DevOps way
Monitoring the #DevOps way
 
Data transmission and telemetry
Data transmission and telemetryData transmission and telemetry
Data transmission and telemetry
 
Operational Software Design
Operational Software DesignOperational Software Design
Operational Software Design
 

Similaire à Project reality

The Principles of Secure Development
The Principles of Secure DevelopmentThe Principles of Secure Development
The Principles of Secure DevelopmentSecurity Ninja
 
Bim & supply chain
Bim & supply chainBim & supply chain
Bim & supply chainOmar Selim
 
Design reliability 2.0: Safety is Everything
Design reliability 2.0: Safety is Everything Design reliability 2.0: Safety is Everything
Design reliability 2.0: Safety is Everything Amir Rahat
 
Security Architecture for Cyber Physical Systems
Security Architecture for Cyber Physical SystemsSecurity Architecture for Cyber Physical Systems
Security Architecture for Cyber Physical SystemsAlan Tatourian
 
Wireless Electric Vehicle Charging as an Example of Breakthrough Innovation
Wireless Electric Vehicle Charging as an Example of Breakthrough InnovationWireless Electric Vehicle Charging as an Example of Breakthrough Innovation
Wireless Electric Vehicle Charging as an Example of Breakthrough InnovationGrzegorzOmbach
 
Bank and Insurance Investor Relations Best Practices: Building an Effective E...
Bank and Insurance Investor Relations Best Practices: Building an Effective E...Bank and Insurance Investor Relations Best Practices: Building an Effective E...
Bank and Insurance Investor Relations Best Practices: Building an Effective E...InsuranceIR LLC
 
Scrum and the World Crisis
Scrum and the World CrisisScrum and the World Crisis
Scrum and the World Crisismgarridobr
 
Scrum and the World Crisis
Scrum and the World CrisisScrum and the World Crisis
Scrum and the World Crisisscrumability
 
Identifying Code Risks in Software M&A
Identifying Code Risks in Software M&AIdentifying Code Risks in Software M&A
Identifying Code Risks in Software M&AMatt Tortora
 
Dancing With The Agile Goddess Agile 2008
Dancing With The Agile Goddess Agile 2008Dancing With The Agile Goddess Agile 2008
Dancing With The Agile Goddess Agile 2008Israel Gat
 
Managing technical debt
Managing technical debtManaging technical debt
Managing technical debtFadi Stephan
 
Why RCM Doesn't Work Report - Digital Version
Why RCM Doesn't Work Report - Digital VersionWhy RCM Doesn't Work Report - Digital Version
Why RCM Doesn't Work Report - Digital VersionRicky Smith CMRP, CMRT
 
Getting Through the Tough Times - Tim Bray
Getting Through the Tough Times - Tim BrayGetting Through the Tough Times - Tim Bray
Getting Through the Tough Times - Tim BrayCarsonified Team
 
Building the Business Case for Capacity Planning and Management
Building the Business Case for Capacity Planning and ManagementBuilding the Business Case for Capacity Planning and Management
Building the Business Case for Capacity Planning and ManagementZuchaela Smylie
 
Selecting SaaS providers
Selecting SaaS providersSelecting SaaS providers
Selecting SaaS providersDennis Howlett
 

Similaire à Project reality (20)

The Principles of Secure Development
The Principles of Secure DevelopmentThe Principles of Secure Development
The Principles of Secure Development
 
Bim & supply chain
Bim & supply chainBim & supply chain
Bim & supply chain
 
Magma Eng245 2017
Magma Eng245 2017Magma Eng245 2017
Magma Eng245 2017
 
How Automation Reveals Technical Debt
How Automation Reveals Technical DebtHow Automation Reveals Technical Debt
How Automation Reveals Technical Debt
 
Why Agile
Why AgileWhy Agile
Why Agile
 
Dream2
Dream2Dream2
Dream2
 
Design reliability 2.0: Safety is Everything
Design reliability 2.0: Safety is Everything Design reliability 2.0: Safety is Everything
Design reliability 2.0: Safety is Everything
 
Security Architecture for Cyber Physical Systems
Security Architecture for Cyber Physical SystemsSecurity Architecture for Cyber Physical Systems
Security Architecture for Cyber Physical Systems
 
Wireless Electric Vehicle Charging as an Example of Breakthrough Innovation
Wireless Electric Vehicle Charging as an Example of Breakthrough InnovationWireless Electric Vehicle Charging as an Example of Breakthrough Innovation
Wireless Electric Vehicle Charging as an Example of Breakthrough Innovation
 
Bank and Insurance Investor Relations Best Practices: Building an Effective E...
Bank and Insurance Investor Relations Best Practices: Building an Effective E...Bank and Insurance Investor Relations Best Practices: Building an Effective E...
Bank and Insurance Investor Relations Best Practices: Building an Effective E...
 
Scrum and the World Crisis
Scrum and the World CrisisScrum and the World Crisis
Scrum and the World Crisis
 
Scrum and the World Crisis
Scrum and the World CrisisScrum and the World Crisis
Scrum and the World Crisis
 
Identifying Code Risks in Software M&A
Identifying Code Risks in Software M&AIdentifying Code Risks in Software M&A
Identifying Code Risks in Software M&A
 
3.1.1 . lean manufature
3.1.1 . lean manufature3.1.1 . lean manufature
3.1.1 . lean manufature
 
Dancing With The Agile Goddess Agile 2008
Dancing With The Agile Goddess Agile 2008Dancing With The Agile Goddess Agile 2008
Dancing With The Agile Goddess Agile 2008
 
Managing technical debt
Managing technical debtManaging technical debt
Managing technical debt
 
Why RCM Doesn't Work Report - Digital Version
Why RCM Doesn't Work Report - Digital VersionWhy RCM Doesn't Work Report - Digital Version
Why RCM Doesn't Work Report - Digital Version
 
Getting Through the Tough Times - Tim Bray
Getting Through the Tough Times - Tim BrayGetting Through the Tough Times - Tim Bray
Getting Through the Tough Times - Tim Bray
 
Building the Business Case for Capacity Planning and Management
Building the Business Case for Capacity Planning and ManagementBuilding the Business Case for Capacity Planning and Management
Building the Business Case for Capacity Planning and Management
 
Selecting SaaS providers
Selecting SaaS providersSelecting SaaS providers
Selecting SaaS providers
 

Plus de Theo Schlossnagle

Adding Simplicity to Complexity
Adding Simplicity to ComplexityAdding Simplicity to Complexity
Adding Simplicity to ComplexityTheo Schlossnagle
 
Put Some SRE in Your Shipped Software
Put Some SRE in Your Shipped SoftwarePut Some SRE in Your Shipped Software
Put Some SRE in Your Shipped SoftwareTheo Schlossnagle
 
Distributed Systems - Like It Or Not
Distributed Systems - Like It Or NotDistributed Systems - Like It Or Not
Distributed Systems - Like It Or NotTheo Schlossnagle
 
Applying SRE techniques to micro service design
Applying SRE techniques to micro service designApplying SRE techniques to micro service design
Applying SRE techniques to micro service designTheo Schlossnagle
 
Social improvements in monitoring
Social improvements in monitoringSocial improvements in monitoring
Social improvements in monitoringTheo Schlossnagle
 
Building Scalable Systems: an asynchronous approach
Building Scalable Systems: an asynchronous approachBuilding Scalable Systems: an asynchronous approach
Building Scalable Systems: an asynchronous approachTheo Schlossnagle
 

Plus de Theo Schlossnagle (11)

Adding Simplicity to Complexity
Adding Simplicity to ComplexityAdding Simplicity to Complexity
Adding Simplicity to Complexity
 
Put Some SRE in Your Shipped Software
Put Some SRE in Your Shipped SoftwarePut Some SRE in Your Shipped Software
Put Some SRE in Your Shipped Software
 
Monitoring 101
Monitoring 101Monitoring 101
Monitoring 101
 
Distributed Systems - Like It Or Not
Distributed Systems - Like It Or NotDistributed Systems - Like It Or Not
Distributed Systems - Like It Or Not
 
Applying SRE techniques to micro service design
Applying SRE techniques to micro service designApplying SRE techniques to micro service design
Applying SRE techniques to micro service design
 
Commandments of scale
Commandments of scaleCommandments of scale
Commandments of scale
 
Is this normal?
Is this normal?Is this normal?
Is this normal?
 
Social improvements in monitoring
Social improvements in monitoringSocial improvements in monitoring
Social improvements in monitoring
 
Building Scalable Systems: an asynchronous approach
Building Scalable Systems: an asynchronous approachBuilding Scalable Systems: an asynchronous approach
Building Scalable Systems: an asynchronous approach
 
Webops dashboards
Webops dashboardsWebops dashboards
Webops dashboards
 
Http front-ends
Http front-endsHttp front-ends
Http front-ends
 

Dernier

MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxAnnaArtyushina1
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...chiefasafspells
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...masabamasaba
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...masabamasaba
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 

Dernier (20)

MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 

Project reality

  • 1. / Controlling Complexity, Eliminating Technical Debt, & Chimera Pet-Care Illusions of Engineering Wednesday, September 16, 2009
  • 2. Technical Debt Shipping first time code is like going into debt. A little debt speeds development so long as it is paid back promptly with a rewrite.... The danger occurs when the debt is not repaid. Every minute spent on not- quite-right code counts as interest on that debt. Entire engineering organizations can be brought to a stand-still under the debt load of an unconsolidated implementation, object-oriented or otherwise. Ward Cunningham: “ ”Wednesday, September 16, 2009
  • 3. Technical Debt Misunderstood Interest on technical debt is time spent on “not-quite-right” code. Wednesday, September 16, 2009
  • 4. Technical Debt Misunderstood I find that many developers poorly define “not-quite-right” Wednesday, September 16, 2009
  • 5. Technical Debt: Developer’s Perspective Lack of elegance. Lack of extensibility. Wednesday, September 16, 2009
  • 6. Technical Debt: Engineer’s Perspective does not meet: functional specifications; security requirements; performance requirements. Wednesday, September 16, 2009
  • 8. Technical Debt Understood Fixing function, security or performance issues is part of the original project on the original budget. Wednesday, September 16, 2009
  • 9. Technical Debt Understood New functional requirements have new budgets and the cost of refactoring existing components can and must be included. Wednesday, September 16, 2009
  • 10. Technical Debt Understood Choosing to not refactor when needed converts technical debt into financial debt. Wednesday, September 16, 2009
  • 11. Technical debt as a tool Debt is a financial instrument; Technical debt is a software engineering instrument. Wednesday, September 16, 2009
  • 12. Technical debt as a tool If you do not use it, you will not keep up. If you do not manage it, it will suffocate you. Wednesday, September 16, 2009
  • 13. Safe technical debt Lack of elegance. Lack of extensibility. Rapid prototyping. END. Wednesday, September 16, 2009
  • 14. Typical technical debt Lack of documentation. Lack of optimization. Wednesday, September 16, 2009
  • 15. Risky technical debt Lack of complete function. Lack of complete tests. Lack of architectural design. Wednesday, September 16, 2009
  • 16. Reality 80% of elegance is useful, 20% is self-indulgence. We call this part “good engineering.” Wednesday, September 16, 2009
  • 17. Reality You likely have no idea how someone (even you) will want to extend your code. Wednesday, September 16, 2009
  • 18. Reality 100% of premature optimization is wasteful. Not all optimization is premature. Good luck. Wednesday, September 16, 2009
  • 19. Reality • Implementation averaged 25% over budget [1] • 52.7% will cost 189% of original estimates [3] • First year supports costs were underestimated an average of 20% [1] • 40% failed to achieve their business case within a year of launch [1] • 75% or more blew their schedules by over 30% [2] • 31.1% will be canceled before they ever get completed [3] [1] The Conference Board Survey (2001) [2] The KPMG Canada Survey (1997) [3] The Chaos Report (1995) Wednesday, September 16, 2009
  • 20. RULE I TODOs related to function or security shall not be used. Instead try function or security. Wednesday, September 16, 2009
  • 21. RULE II Observe the Principle of Least Surprise Wednesday, September 16, 2009
  • 23. RULE IV If your code isn’t elegant it’s worth less. If your code doesn’t work it’s worthless. Wednesday, September 16, 2009
  • 24. RULE V Write functional tests. Wednesday, September 16, 2009
  • 25. RULE VI Always use best coding practices. Wednesday, September 16, 2009
  • 26. RULE VII Optimize everything* * consider the optimal approach to each problem and articulately justify using anything else in comments/documentation Wednesday, September 16, 2009
  • 27. The Truth The “Truth” is software engineering is a hard balance Wednesday, September 16, 2009
  • 28. The Truth Technical debt must be measured along side: financial budgets, time budgets, opportunity costs, expected project longevity. Wednesday, September 16, 2009
  • 29. Parting thought I challenge you to be a better engineer and align your goals with those of the project. Wednesday, September 16, 2009