SlideShare a Scribd company logo
1 of 29
Download to read offline
/
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

More Related Content

Viewers also liked

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
 

Viewers also liked (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
 

Similar to 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
 

Similar to 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
 

More from 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
 

More from 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
 

Recently uploaded

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...Nitya salvi
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsBert Jan Schrijver
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durbanmasabamasaba
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is insideshinachiaurasa2
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
%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
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfayushiqss
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationShrmpro
 

Recently uploaded (20)

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
%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
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 

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