Technical debt - why I love
it (and so should you)
DevSecCon Boston
Mike Bursell
Chief Security Architect | Red Hat
Sept 2018
2
Agenda
● What is technical debt?
● Bringing technical debt out into the open
● Benefits to projects
● Benefits for stakeholders
● What to do (and not)
3
First: an admission
The two reasons I love technical debt
The bad reason
● There’s lots of it
● It’s interesting
● It keeps me in a job
● I can poke my nose into new projects
The good reason
● When it’s acknowledged, we’re half-way there*
4
First: an admission
The two reasons I love technical debt
The bad reason
● There’s lots of it
● It’s interesting
● It keeps me in a job
● I can poke my nose into new projects
The good reason
● When it’s acknowledged, we’re half-way there*
5
First: an admission
The two reasons I love technical debt
The bad reason
● There’s lots of it
● It’s interesting
● It keeps me in a job
● I can poke my nose into new projects
The good reason
● When it’s acknowledged, we’re half-way there*
6
First: an admission
The two reasons I love technical debt
The bad reason
● There’s lots of it
● It’s interesting
● It keeps me in a job
● I can poke my nose into new projects
The good reason
● When it’s acknowledged, we’re half-way there*
*honestly, we’re not even a quarter-way there, but at least there’s hope
What is technical debt?
8
What is technical debt?
And how does it arise?
“Stuff we didn’t do that we should have done”
“Decisions we made that could have been … better”
9
What is technical debt?
And how does it arise?
“Stuff we didn’t do that we should have done”
“Decisions we made that could have been … better”
Examples:
● Neglecting to put authentication on currently non-public APIs
● Lumping capabilities together
● Hard-coding roles to initial expectations without thought to future reqs
● Compiling cipher suite selections into the application
10
What is technical debt?
And how does it arise?
“Stuff we didn’t do that we should have done”
“Decisions we made that could have been … better”
Not always for bad reasons
● Lack of time
● Lack of resources
● Lack of requirements
● Lack of knowledge/expertise
11
Old-style methodologies vs DevOps
(Surely we’re immune now…?)
Yuh-huh.
Old-style (e.g. Waterfall): Product manager makes a decision
● hopefully considered for “next release”
● if enough customers complain, feature might get included
DevOps
● easy to let features slip to the bottom of the board
● unless you consolidate requests, focus on per-sprint features can obscure debt
12
Old-style methodologies vs DevOps
(Surely we’re immune now…?)
Yuh-huh.
Old-style (e.g. Waterfall): Product manager makes a decision
● hopefully considered for “next release”
● if enough customers complain, feature might get included
DevOps
● easy to let features slip to the bottom of the board
● unless you consolidate requests, focus on per-sprint features can obscure debt
13
Old-style methodologies vs DevOps
(Surely we’re immune now…?)
Yuh-huh.
Old-style (e.g. Waterfall): Product manager makes a decision
● hopefully considered for “next release”
● if enough customers complain, feature might get included
DevOps
● easy to let features slip to the bottom of the board
● unless you consolidate requests, focus on per-sprint features can obscure debt
Bringing technical debt into the open
15
Bringing technical debt into the open
The importance of naming
Naming allows knowledge
● If technical debt is unacknowledged, it cannot be fixed
● If technical debt is known, decisions can be made
○ Sometimes that decision is, quite rightly, to maintain that debt
16
Bringing technical debt into the open
The importance of naming
Naming allows knowledge
● If technical debt is unacknowledged, it cannot be fixed
● If technical debt is known, decisions can be made
○ Sometimes that decision is, quite rightly, to maintain that debt
For closed source projects, the owner gets to make informed decisions
17
Bringing technical debt into the open
The importance of naming
Naming allows knowledge
● If technical debt is unacknowledged, it cannot be fixed
● If technical debt is known, decisions can be made
○ Sometimes that decision is, quite rightly, to maintain that debt
For closed source projects, the owner gets to make informed decisions
For open source projects, naming is even better
● It allows somebody else to take on the work, if they wish
18
Why is it a security issue?
Because security concerns are often non-functional
● And are therefore less likely to be tracked
19
Why is it a security issue?
Because security concerns are often non-functional
● And are therefore less likely to be tracked
Because of scarcity of knowledge
● Too few owners, architects and designers understand the impact of security
20
Why is it a security issue?
Because security concerns are often non-functional
● And are therefore less likely to be tracked
Because of scarcity of knowledge
● Too few owners, architects and designers understand the impact of security
Because security is often left till last
Benefits to projects
22
Benefits to projects
Naming -> documentation
Document why decisions were made
Example: Encryption not included on particular interface.
23
Benefits to projects
Naming -> documentation
Document why decisions were made
Example: Encryption not included on particular interface.
Project documentation
● “We ran out of time, existing reqs don’t include certificate management.”
24
Benefits to projects
Naming -> documentation
Document why decisions were made
Example: Encryption not included on particular interface.
Project documentation
Product documentation
● “This API is designed to be used in a protected environment, and should not be
exposed on the public Internet.”
25
Benefits to projects
Naming -> documentation
Document why decisions were made
Example: Encryption not included on particular interface.
Project documentation
Product documentation
In-line documentation
// 2018-05-02 ( mbursell@redhat.com ) Planned to use TLS 1.2 (check for newer version)
// probably won’t need client authentication. Don’t use ECC cipher suites.
// Certificate management and revocation currently not specced.
Benefits for stakeholders
27
Benefits to stakeholders
Documentation -> decisions
Document why decisions were made
Example: Encryption not included on particular interface.
Project documentation
Product documentation
In-line documentation
28
Benefits to stakeholders
Documentation -> decisions
Document why decisions were made
Example: Encryption not included on particular interface.
Project documentation
Product documentation
In-line documentation
Allows reqs to be created
Allows customers to deploy safely
Allows future implementation
29
Benefits to stakeholders
Documentation -> decisions
Document why decisions were made
Example: Encryption not included on particular interface.
Project documentation
Product documentation
In-line documentation
This is now documented, known, and useful technical debt.
Allows reqs to be created
Allows customers to deploy safely
Allows future implementation
30
Technical debt and blame
This is what you’re trying to avoid
Architects
Designers
Engineers
Product managers
Project owners
Sales & marketing
Support
Customers
What to do (and not)
32
What to do (and not)
Do:
● Encourage honesty
● Document everything
● Record “I suddenly thought…”
moments
● Reserve time in every project meeting
for discussion of technical debt
● Consider a project “debt recorder”
33
What to do (and not)
Do:
● Encourage honesty
● Document everything
● Record “I suddenly thought…”
moments
● Reserve time in every project meeting
for discussion of technical debt
● Consider a project “debt recorder”
Don’t:
● Allow a culture of blame, even after the
fact
● Assume that it’s better to hide from the
customer
● Put off unit tests just because it’s not
implemented yet
34
What to do (and not)
Do:
● Encourage honesty
● Document everything
● Record “I suddenly thought…”
moments
● Reserve time in every project meeting
for discussion of technical debt
● Consider a project “debt recorder”
Don’t:
● Allow a culture of blame, even after the
fact
● Assume that it’s better to hide from the
customer
● Put off unit tests just because it’s not
implemented yet
Properly documented and
managed debt is a project
asset
Mike Bursell
Chief Security Architect | Red Hat
Blog: https://aliceevebob.com
THANK YOU
plus.google.com/+RedHat
linkedin.com/company/red-hat
youtube.com/user/RedHatVideos
facebook.com/redhatinc
twitter.com/RedHat

More Related Content

PDF
Invention versus Engineering
PPT
IWMW 2004: It Always Takes Longer Than You Think (Even If You Think It Will T...
PDF
Why change code that works - On Technical Debt and Refactoring
PDF
Don't cross the Rubicon
PDF
FDA OCRA Product Safety 09
PPTX
Fundamental Principles of Software Development
PPTX
Common Sense Software Development
PDF
Pusheando en master, que es gerundio
Invention versus Engineering
IWMW 2004: It Always Takes Longer Than You Think (Even If You Think It Will T...
Why change code that works - On Technical Debt and Refactoring
Don't cross the Rubicon
FDA OCRA Product Safety 09
Fundamental Principles of Software Development
Common Sense Software Development
Pusheando en master, que es gerundio

What's hot (9)

PDF
Tactical Application Security: Getting Stuff Done - Black Hat Briefings 2015
PPTX
How to Work with Engineers
PPTX
Lean Software Development
PPTX
Managing Technical Debt
PDF
Software Engineering Process at SSL
 
PDF
Pete Newell & Steve Blank on Diagnostics and Metrics for Innovation
PDF
The real reason that projects fail and how to fix it - An introduction to Cri...
PPTX
Technical debt
PDF
Agile Software and DevOps Essentials
Tactical Application Security: Getting Stuff Done - Black Hat Briefings 2015
How to Work with Engineers
Lean Software Development
Managing Technical Debt
Software Engineering Process at SSL
 
Pete Newell & Steve Blank on Diagnostics and Metrics for Innovation
The real reason that projects fail and how to fix it - An introduction to Cri...
Technical debt
Agile Software and DevOps Essentials
Ad

Similar to DevSecCon Boston 2018: Technical debt - why I love it by Mike Bursell (20)

PDF
Никита Галкин "Technical backlog: инструкция к применению"
PPTX
Technical Debt.pptx
PPT
Death by Technical Debt: Lessons Learned to Get you Unbuired
PPTX
Project charter v2
PPTX
Product Development - February 2011 - STEEN Solutions
PDF
How to choose a mobile development contractor
DOCX
1017191EE 200 Electrical Engineering Design Project.docx
PDF
Odoo Implementation Methodology
PDF
The layperson's guide to software architecture
PDF
Нікіта Галкін “Technical backlog: інструкція до застосування” Kyiv Project Ma...
PDF
Working with Developers
PDF
Managing software projects & teams effectively
PDF
What scrum masters and product owners should know about software quality and ...
PPT
Why Training Projects Fail:How to Recover
PDF
DRUPAL AUDITS MADE FASTR
PPTX
Discovery 101
PDF
1. Modern Project Management tech (1).pdf
PPTX
Project Management Best Practices
PDF
Managing international software projects interactively using scrum
PPTX
Technical debt a Business Perspective
Никита Галкин "Technical backlog: инструкция к применению"
Technical Debt.pptx
Death by Technical Debt: Lessons Learned to Get you Unbuired
Project charter v2
Product Development - February 2011 - STEEN Solutions
How to choose a mobile development contractor
1017191EE 200 Electrical Engineering Design Project.docx
Odoo Implementation Methodology
The layperson's guide to software architecture
Нікіта Галкін “Technical backlog: інструкція до застосування” Kyiv Project Ma...
Working with Developers
Managing software projects & teams effectively
What scrum masters and product owners should know about software quality and ...
Why Training Projects Fail:How to Recover
DRUPAL AUDITS MADE FASTR
Discovery 101
1. Modern Project Management tech (1).pdf
Project Management Best Practices
Managing international software projects interactively using scrum
Technical debt a Business Perspective
Ad

More from DevSecCon (20)

PDF
DevSecCon London 2019: Workshop: Cloud Agnostic Security Testing with Scout S...
PDF
DevSecCon London 2019: Are Open Source Developers Security’s New Front Line?
PDF
DevSecCon London 2019: How to Secure OpenShift Environments and What Happens ...
PDF
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
PPTX
DevSecCon Seattle 2019: Containerizing IT Security Knowledge
PPTX
DevSecCon Seattle 2019: Decentralized Authorization - Implementing Fine Grain...
PPTX
DevSecCon Seattle 2019: Liquid Software as the real solution for the Sec in D...
PPTX
DevSecCon Seattle 2019: Fully Automated production deployments with HIPAA/HIT...
PDF
DevSecCon Singapore 2019: Four years of reflection: How (not) to secure Web A...
PPTX
DevSecCon Singapore 2019: crypto jacking: An evolving threat for cloud contai...
PDF
DevSecCon Singapore 2019: Can "dev", "sec" and "ops" really coexist in the wi...
PDF
DevSecCon Singapore 2019: Workshop - Burp extension writing workshop
PDF
DevSecCon Singapore 2019: Embracing Security - A changing DevOps landscape
PDF
DevSecCon Singapore 2019: Web Services aren’t as secure as we think
PDF
DevSecCon Singapore 2019: An attacker's view of Serverless and GraphQL apps S...
PDF
DevSecCon Singapore 2019: The journey of digital transformation through DevSe...
PDF
DevSecCon Singapore 2019: Preventative Security for Kubernetes
PPTX
DevSecCon London 2018: Is your supply chain your achille's heel
PPTX
DevSecCon London 2018: Get rid of these TLS certificates
PDF
DevSecCon London 2018: Open DevSecOps
DevSecCon London 2019: Workshop: Cloud Agnostic Security Testing with Scout S...
DevSecCon London 2019: Are Open Source Developers Security’s New Front Line?
DevSecCon London 2019: How to Secure OpenShift Environments and What Happens ...
DevSecCon London 2019: A Kernel of Truth: Intrusion Detection and Attestation...
DevSecCon Seattle 2019: Containerizing IT Security Knowledge
DevSecCon Seattle 2019: Decentralized Authorization - Implementing Fine Grain...
DevSecCon Seattle 2019: Liquid Software as the real solution for the Sec in D...
DevSecCon Seattle 2019: Fully Automated production deployments with HIPAA/HIT...
DevSecCon Singapore 2019: Four years of reflection: How (not) to secure Web A...
DevSecCon Singapore 2019: crypto jacking: An evolving threat for cloud contai...
DevSecCon Singapore 2019: Can "dev", "sec" and "ops" really coexist in the wi...
DevSecCon Singapore 2019: Workshop - Burp extension writing workshop
DevSecCon Singapore 2019: Embracing Security - A changing DevOps landscape
DevSecCon Singapore 2019: Web Services aren’t as secure as we think
DevSecCon Singapore 2019: An attacker's view of Serverless and GraphQL apps S...
DevSecCon Singapore 2019: The journey of digital transformation through DevSe...
DevSecCon Singapore 2019: Preventative Security for Kubernetes
DevSecCon London 2018: Is your supply chain your achille's heel
DevSecCon London 2018: Get rid of these TLS certificates
DevSecCon London 2018: Open DevSecOps

Recently uploaded (20)

PDF
Aug23rd - Mulesoft Community Workshop - Hyd, India.pdf
PDF
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
PDF
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
PDF
CEH Module 2 Footprinting CEH V13, concepts
PDF
A symptom-driven medical diagnosis support model based on machine learning te...
PDF
Data Virtualization in Action: Scaling APIs and Apps with FME
PDF
Planning-an-Audit-A-How-To-Guide-Checklist-WP.pdf
PDF
giants, standing on the shoulders of - by Daniel Stenberg
PDF
Connector Corner: Transform Unstructured Documents with Agentic Automation
PPTX
Presentation - Principles of Instructional Design.pptx
PDF
zbrain.ai-Scope Key Metrics Configuration and Best Practices.pdf
PDF
Altius execution marketplace concept.pdf
PDF
Lung cancer patients survival prediction using outlier detection and optimize...
PDF
Rapid Prototyping: A lecture on prototyping techniques for interface design
PDF
Ensemble model-based arrhythmia classification with local interpretable model...
PDF
SaaS reusability assessment using machine learning techniques
PPTX
AI-driven Assurance Across Your End-to-end Network With ThousandEyes
PDF
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
PDF
Dell Pro Micro: Speed customer interactions, patient processing, and learning...
PDF
Decision Optimization - From Theory to Practice
Aug23rd - Mulesoft Community Workshop - Hyd, India.pdf
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
CEH Module 2 Footprinting CEH V13, concepts
A symptom-driven medical diagnosis support model based on machine learning te...
Data Virtualization in Action: Scaling APIs and Apps with FME
Planning-an-Audit-A-How-To-Guide-Checklist-WP.pdf
giants, standing on the shoulders of - by Daniel Stenberg
Connector Corner: Transform Unstructured Documents with Agentic Automation
Presentation - Principles of Instructional Design.pptx
zbrain.ai-Scope Key Metrics Configuration and Best Practices.pdf
Altius execution marketplace concept.pdf
Lung cancer patients survival prediction using outlier detection and optimize...
Rapid Prototyping: A lecture on prototyping techniques for interface design
Ensemble model-based arrhythmia classification with local interpretable model...
SaaS reusability assessment using machine learning techniques
AI-driven Assurance Across Your End-to-end Network With ThousandEyes
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
Dell Pro Micro: Speed customer interactions, patient processing, and learning...
Decision Optimization - From Theory to Practice

DevSecCon Boston 2018: Technical debt - why I love it by Mike Bursell

  • 1. Technical debt - why I love it (and so should you) DevSecCon Boston Mike Bursell Chief Security Architect | Red Hat Sept 2018
  • 2. 2 Agenda ● What is technical debt? ● Bringing technical debt out into the open ● Benefits to projects ● Benefits for stakeholders ● What to do (and not)
  • 3. 3 First: an admission The two reasons I love technical debt The bad reason ● There’s lots of it ● It’s interesting ● It keeps me in a job ● I can poke my nose into new projects The good reason ● When it’s acknowledged, we’re half-way there*
  • 4. 4 First: an admission The two reasons I love technical debt The bad reason ● There’s lots of it ● It’s interesting ● It keeps me in a job ● I can poke my nose into new projects The good reason ● When it’s acknowledged, we’re half-way there*
  • 5. 5 First: an admission The two reasons I love technical debt The bad reason ● There’s lots of it ● It’s interesting ● It keeps me in a job ● I can poke my nose into new projects The good reason ● When it’s acknowledged, we’re half-way there*
  • 6. 6 First: an admission The two reasons I love technical debt The bad reason ● There’s lots of it ● It’s interesting ● It keeps me in a job ● I can poke my nose into new projects The good reason ● When it’s acknowledged, we’re half-way there* *honestly, we’re not even a quarter-way there, but at least there’s hope
  • 8. 8 What is technical debt? And how does it arise? “Stuff we didn’t do that we should have done” “Decisions we made that could have been … better”
  • 9. 9 What is technical debt? And how does it arise? “Stuff we didn’t do that we should have done” “Decisions we made that could have been … better” Examples: ● Neglecting to put authentication on currently non-public APIs ● Lumping capabilities together ● Hard-coding roles to initial expectations without thought to future reqs ● Compiling cipher suite selections into the application
  • 10. 10 What is technical debt? And how does it arise? “Stuff we didn’t do that we should have done” “Decisions we made that could have been … better” Not always for bad reasons ● Lack of time ● Lack of resources ● Lack of requirements ● Lack of knowledge/expertise
  • 11. 11 Old-style methodologies vs DevOps (Surely we’re immune now…?) Yuh-huh. Old-style (e.g. Waterfall): Product manager makes a decision ● hopefully considered for “next release” ● if enough customers complain, feature might get included DevOps ● easy to let features slip to the bottom of the board ● unless you consolidate requests, focus on per-sprint features can obscure debt
  • 12. 12 Old-style methodologies vs DevOps (Surely we’re immune now…?) Yuh-huh. Old-style (e.g. Waterfall): Product manager makes a decision ● hopefully considered for “next release” ● if enough customers complain, feature might get included DevOps ● easy to let features slip to the bottom of the board ● unless you consolidate requests, focus on per-sprint features can obscure debt
  • 13. 13 Old-style methodologies vs DevOps (Surely we’re immune now…?) Yuh-huh. Old-style (e.g. Waterfall): Product manager makes a decision ● hopefully considered for “next release” ● if enough customers complain, feature might get included DevOps ● easy to let features slip to the bottom of the board ● unless you consolidate requests, focus on per-sprint features can obscure debt
  • 14. Bringing technical debt into the open
  • 15. 15 Bringing technical debt into the open The importance of naming Naming allows knowledge ● If technical debt is unacknowledged, it cannot be fixed ● If technical debt is known, decisions can be made ○ Sometimes that decision is, quite rightly, to maintain that debt
  • 16. 16 Bringing technical debt into the open The importance of naming Naming allows knowledge ● If technical debt is unacknowledged, it cannot be fixed ● If technical debt is known, decisions can be made ○ Sometimes that decision is, quite rightly, to maintain that debt For closed source projects, the owner gets to make informed decisions
  • 17. 17 Bringing technical debt into the open The importance of naming Naming allows knowledge ● If technical debt is unacknowledged, it cannot be fixed ● If technical debt is known, decisions can be made ○ Sometimes that decision is, quite rightly, to maintain that debt For closed source projects, the owner gets to make informed decisions For open source projects, naming is even better ● It allows somebody else to take on the work, if they wish
  • 18. 18 Why is it a security issue? Because security concerns are often non-functional ● And are therefore less likely to be tracked
  • 19. 19 Why is it a security issue? Because security concerns are often non-functional ● And are therefore less likely to be tracked Because of scarcity of knowledge ● Too few owners, architects and designers understand the impact of security
  • 20. 20 Why is it a security issue? Because security concerns are often non-functional ● And are therefore less likely to be tracked Because of scarcity of knowledge ● Too few owners, architects and designers understand the impact of security Because security is often left till last
  • 22. 22 Benefits to projects Naming -> documentation Document why decisions were made Example: Encryption not included on particular interface.
  • 23. 23 Benefits to projects Naming -> documentation Document why decisions were made Example: Encryption not included on particular interface. Project documentation ● “We ran out of time, existing reqs don’t include certificate management.”
  • 24. 24 Benefits to projects Naming -> documentation Document why decisions were made Example: Encryption not included on particular interface. Project documentation Product documentation ● “This API is designed to be used in a protected environment, and should not be exposed on the public Internet.”
  • 25. 25 Benefits to projects Naming -> documentation Document why decisions were made Example: Encryption not included on particular interface. Project documentation Product documentation In-line documentation // 2018-05-02 ( [email protected] ) Planned to use TLS 1.2 (check for newer version) // probably won’t need client authentication. Don’t use ECC cipher suites. // Certificate management and revocation currently not specced.
  • 27. 27 Benefits to stakeholders Documentation -> decisions Document why decisions were made Example: Encryption not included on particular interface. Project documentation Product documentation In-line documentation
  • 28. 28 Benefits to stakeholders Documentation -> decisions Document why decisions were made Example: Encryption not included on particular interface. Project documentation Product documentation In-line documentation Allows reqs to be created Allows customers to deploy safely Allows future implementation
  • 29. 29 Benefits to stakeholders Documentation -> decisions Document why decisions were made Example: Encryption not included on particular interface. Project documentation Product documentation In-line documentation This is now documented, known, and useful technical debt. Allows reqs to be created Allows customers to deploy safely Allows future implementation
  • 30. 30 Technical debt and blame This is what you’re trying to avoid Architects Designers Engineers Product managers Project owners Sales & marketing Support Customers
  • 31. What to do (and not)
  • 32. 32 What to do (and not) Do: ● Encourage honesty ● Document everything ● Record “I suddenly thought…” moments ● Reserve time in every project meeting for discussion of technical debt ● Consider a project “debt recorder”
  • 33. 33 What to do (and not) Do: ● Encourage honesty ● Document everything ● Record “I suddenly thought…” moments ● Reserve time in every project meeting for discussion of technical debt ● Consider a project “debt recorder” Don’t: ● Allow a culture of blame, even after the fact ● Assume that it’s better to hide from the customer ● Put off unit tests just because it’s not implemented yet
  • 34. 34 What to do (and not) Do: ● Encourage honesty ● Document everything ● Record “I suddenly thought…” moments ● Reserve time in every project meeting for discussion of technical debt ● Consider a project “debt recorder” Don’t: ● Allow a culture of blame, even after the fact ● Assume that it’s better to hide from the customer ● Put off unit tests just because it’s not implemented yet Properly documented and managed debt is a project asset
  • 35. Mike Bursell Chief Security Architect | Red Hat Blog: https://aliceevebob.com