SlideShare a Scribd company logo
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

What's hot

Tactical Application Security: Getting Stuff Done - Black Hat Briefings 2015
Tactical Application Security: Getting Stuff Done - Black Hat Briefings 2015Tactical Application Security: Getting Stuff Done - Black Hat Briefings 2015
Tactical Application Security: Getting Stuff Done - Black Hat Briefings 2015
Cory Scott
 
How to Work with Engineers
How to Work with EngineersHow to Work with Engineers
How to Work with Engineers
Alan Chiu
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software Development
Saqib Raza
 
Managing Technical Debt
Managing Technical DebtManaging Technical Debt
Managing Technical Debt
Kaizenko
 
Software Engineering Process at SSL
Software Engineering Process at SSLSoftware Engineering Process at SSL
Software Engineering Process at SSL
SSL
 
Pete Newell & Steve Blank on Diagnostics and Metrics for Innovation
Pete Newell & Steve Blank on Diagnostics and Metrics for InnovationPete Newell & Steve Blank on Diagnostics and Metrics for Innovation
Pete Newell & Steve Blank on Diagnostics and Metrics for Innovation
BMNT Partners
 
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
 
Technical debt
Technical debtTechnical debt
Technical debt
Woody Pewitt
 
Agile Software and DevOps Essentials
Agile Software and DevOps EssentialsAgile Software and DevOps Essentials
Agile Software and DevOps Essentials
Narayanan Subramaniam
 

What's hot (9)

Tactical Application Security: Getting Stuff Done - Black Hat Briefings 2015
Tactical Application Security: Getting Stuff Done - Black Hat Briefings 2015Tactical Application Security: Getting Stuff Done - Black Hat Briefings 2015
Tactical Application Security: Getting Stuff Done - Black Hat Briefings 2015
 
How to Work with Engineers
How to Work with EngineersHow to Work with Engineers
How to Work with Engineers
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software Development
 
Managing Technical Debt
Managing Technical DebtManaging Technical Debt
Managing Technical Debt
 
Software Engineering Process at SSL
Software Engineering Process at SSLSoftware Engineering Process at SSL
Software Engineering Process at SSL
 
Pete Newell & Steve Blank on Diagnostics and Metrics for Innovation
Pete Newell & Steve Blank on Diagnostics and Metrics for InnovationPete Newell & Steve Blank on Diagnostics and Metrics for Innovation
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...
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...
 
Technical debt
Technical debtTechnical debt
Technical debt
 
Agile Software and DevOps Essentials
Agile Software and DevOps EssentialsAgile Software and DevOps Essentials
Agile Software and DevOps Essentials
 

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

Никита Галкин "Technical backlog: инструкция к применению"
Никита Галкин "Technical backlog: инструкция к применению"Никита Галкин "Technical backlog: инструкция к применению"
Никита Галкин "Technical backlog: инструкция к применению"
Fwdays
 
Technical Debt.pptx
Technical Debt.pptxTechnical Debt.pptx
Technical Debt.pptx
Atish Narlawar
 
Death by Technical Debt: Lessons Learned to Get you Unbuired
Death by Technical Debt: Lessons Learned to Get you UnbuiredDeath by Technical Debt: Lessons Learned to Get you Unbuired
Death by Technical Debt: Lessons Learned to Get you Unbuired
TechnologyAssociationOregon
 
Project charter v2
Project charter v2Project charter v2
Project charter v2
Stefan Csosz
 
Product Development - February 2011 - STEEN Solutions
Product Development  - February 2011 - STEEN SolutionsProduct Development  - February 2011 - STEEN Solutions
Product Development - February 2011 - STEEN Solutions
STEEN Solutions
 
How to choose a mobile development contractor
How to choose a mobile development contractorHow to choose a mobile development contractor
How to choose a mobile development contractor
SimbirSoft
 
1017191EE 200 Electrical Engineering Design Project.docx
1017191EE 200 Electrical Engineering Design Project.docx1017191EE 200 Electrical Engineering Design Project.docx
1017191EE 200 Electrical Engineering Design Project.docx
aulasnilda
 
Odoo Implementation Methodology
Odoo Implementation MethodologyOdoo Implementation Methodology
Odoo Implementation Methodology
Odoo
 
The layperson's guide to software architecture
The layperson's guide to software architectureThe layperson's guide to software architecture
The layperson's guide to software architecture
Thoughtworks
 
Нікіта Галкін “Technical backlog: інструкція до застосування” Kyiv Project Ma...
Нікіта Галкін “Technical backlog: інструкція до застосування” Kyiv Project Ma...Нікіта Галкін “Technical backlog: інструкція до застосування” Kyiv Project Ma...
Нікіта Галкін “Technical backlog: інструкція до застосування” Kyiv Project Ma...
Lviv Startup Club
 
Working with Developers
Working with DevelopersWorking with Developers
Working with Developers
Paul Walk
 
Managing software projects & teams effectively
Managing software projects & teams effectivelyManaging software projects & teams effectively
Managing software projects & teams effectively
Ashutosh Agarwal
 
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
 
Why Training Projects Fail:How to Recover
Why Training Projects Fail:How to RecoverWhy Training Projects Fail:How to Recover
Why Training Projects Fail:How to Recover
David Goodman
 
DRUPAL AUDITS MADE FASTR
DRUPAL AUDITS MADE FASTRDRUPAL AUDITS MADE FASTR
DRUPAL AUDITS MADE FASTR
DrupalCamp Kyiv
 
Discovery 101
Discovery 101Discovery 101
Discovery 101
creed
 
Project Management Best Practices
Project Management Best PracticesProject Management Best Practices
Project Management Best Practices
Rohana K Amarakoon
 
Managing international software projects interactively using scrum
Managing international software projects interactively using scrumManaging international software projects interactively using scrum
Managing international software projects interactively using scrum
Peter Horsten
 
Technical debt a Business Perspective
Technical debt a Business PerspectiveTechnical debt a Business Perspective
Technical debt a Business Perspective
Michael Vax
 

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

Никита Галкин "Technical backlog: инструкция к применению"
Никита Галкин "Technical backlog: инструкция к применению"Никита Галкин "Technical backlog: инструкция к применению"
Никита Галкин "Technical backlog: инструкция к применению"
 
Technical Debt.pptx
Technical Debt.pptxTechnical Debt.pptx
Technical Debt.pptx
 
Death by Technical Debt: Lessons Learned to Get you Unbuired
Death by Technical Debt: Lessons Learned to Get you UnbuiredDeath by Technical Debt: Lessons Learned to Get you Unbuired
Death by Technical Debt: Lessons Learned to Get you Unbuired
 
Project charter v2
Project charter v2Project charter v2
Project charter v2
 
Product Development - February 2011 - STEEN Solutions
Product Development  - February 2011 - STEEN SolutionsProduct Development  - February 2011 - STEEN Solutions
Product Development - February 2011 - STEEN Solutions
 
How to choose a mobile development contractor
How to choose a mobile development contractorHow to choose a mobile development contractor
How to choose a mobile development contractor
 
1017191EE 200 Electrical Engineering Design Project.docx
1017191EE 200 Electrical Engineering Design Project.docx1017191EE 200 Electrical Engineering Design Project.docx
1017191EE 200 Electrical Engineering Design Project.docx
 
Odoo Implementation Methodology
Odoo Implementation MethodologyOdoo Implementation Methodology
Odoo Implementation Methodology
 
The layperson's guide to software architecture
The layperson's guide to software architectureThe layperson's guide to software architecture
The layperson's guide to software architecture
 
Нікіта Галкін “Technical backlog: інструкція до застосування” Kyiv Project Ma...
Нікіта Галкін “Technical backlog: інструкція до застосування” Kyiv Project Ma...Нікіта Галкін “Technical backlog: інструкція до застосування” Kyiv Project Ma...
Нікіта Галкін “Technical backlog: інструкція до застосування” Kyiv Project Ma...
 
Working with Developers
Working with DevelopersWorking with Developers
Working with Developers
 
Managing software projects & teams effectively
Managing software projects & teams effectivelyManaging software projects & teams effectively
Managing software projects & teams effectively
 
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 ...
 
Why Training Projects Fail:How to Recover
Why Training Projects Fail:How to RecoverWhy Training Projects Fail:How to Recover
Why Training Projects Fail:How to Recover
 
DRUPAL AUDITS MADE FASTR
DRUPAL AUDITS MADE FASTRDRUPAL AUDITS MADE FASTR
DRUPAL AUDITS MADE FASTR
 
Discovery 101
Discovery 101Discovery 101
Discovery 101
 
Project Management Best Practices
Project Management Best PracticesProject Management Best Practices
Project Management Best Practices
 
Managing international software projects interactively using scrum
Managing international software projects interactively using scrumManaging international software projects interactively using scrum
Managing international software projects interactively using scrum
 
Technical debt a Business Perspective
Technical debt a Business PerspectiveTechnical debt a Business Perspective
Technical debt a Business Perspective
 
Automation and Technical Debt
Automation and Technical DebtAutomation and Technical Debt
Automation and Technical Debt
 

More from DevSecCon

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

More from DevSecCon (20)

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

Recently uploaded

Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 

Recently uploaded (20)

Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 

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 ( 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.
  • 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