ProductCampBoston
184 views
41 slides
Jun 28, 2017
Slide 1 of 41
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
About This Presentation
Presenter: Andrea Goulet
Technical debt gets accrued when you move fast and break things, which is awesome in the early stages of a startup. Left unchecked, technical debt can slow a development team to a grinding halt, frustrating founders and product owners. In this session, we'll demystify t...
Presenter: Andrea Goulet
Technical debt gets accrued when you move fast and break things, which is awesome in the early stages of a startup. Left unchecked, technical debt can slow a development team to a grinding halt, frustrating founders and product owners. In this session, we'll demystify technical debt. You'll leave with a good understanding of what it is, when to accrue it, and how to pay it down.
Andrea Goulet is the CEO of Corgibytes, a software development shop dedicated to maintaining and modernizing software applications and has been named by LinkedIn as one of the top 10 professionals in software under 35. She’s the founder of LegacyCode.Rocks and hosts a podcast dedicated to changing the way we think about legacy code. She speaks frequently about building a business based on balance, empathy, and trust; the perils of the technical/non-technical divide; and the technical philosophies around working with legacy code.
In her spare time, Andrea enjoys hosting Free Code Camp events at her local co-working space and blogging at Empathy Driven Development. She loves watching her kids explore the world and is a sucker for a good physics documentary. You can recognize her by the JavaScript tattoo on her wrist.
WHO HERE…
WANTS TO PREVENT
TECH DEBT?
@andreagoulet
WHO HERE…
WANTS TO PAY DOWN
EXISTING TECH DEBT?
@andreagoulet
@andreagoulet
SOFTWARE
REMODELING
We make existing
software more stable,
scalable, and secure.
@andreagoulet
AND WE ABSOLUTELY LOVE IT!
WHAT IS
TECHNICAL DEBT?
@andreagoulet
@andreagoulet
“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. Objects make the cost of
this transaction tolerable.
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, 1992
Source: https://www.techopedia.com/definition/27913/technical-debt
HOW DOES TECH DEBT
GET ACCRUED?
@andreagoulet
“WHAT’S LAYERING?”
“NOW WE KNOW HOW WE
SHOULD HAVE DONE IT.”
“WE MUST SHIP NOW
AND DEAL WITH THE
CONSEQUENCES.”
“WE DON’T HAVE TIME
FOR DESIGN.”
@andreagoulet
DELIBERATE
INADVERTANT
MARTIN FOWLER’S TECH DEBT QUADRANT
RECKLESS PRUDENT
Source: https://martinfowler.com/bliki/TechnicalDebtQuadrant.html
OTHER METAPHORS
@andreagoulet
@mscottford
TECHNICAL HEALTH
- DECLAN WHEELAN
@mscottford
CLUTTER
- “UNCLE” BOB MARTIN
@mscottford
FEATURES AS PARTIES
@mscottford
ENERGY EFFICIENCY
WHEN IS
TECH DEBT BAD?
@andreagoulet
@andreagoulet
PRODUCT LIFE CYCLE
SALES
Introduction Growth Maturity Decline
TIME
@andreagoulet
“WE’RE AGILE. IT NEEDS TO BE A CIRCLE.”
M. Scott Ford, Corgibytes CTO
@andreagoulet
PRODUCT LIFE CYCLE
GROWTH
MATURITY
DECLINE
INTRODUCTION
@andreagoulet
•DUPLICATION (Copy/Pasting Code)
•COMPLEXITY (Number of Paths)
•POOR COMMUNICATION (naming,
commits, docs, pull requests, etc.)
•NO TEST COVERAGE (use BDD and
TDD to prevent tech debt from forming)
•SILOS IN TEAM (Conway’s Law - everyone
on team should code and communicate)