Top Banner
Technical Debt, Victor Brekenfeld Freie Universität Berlin Research on Technical Debt [email protected]
24

Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham [email protected] Shipping first time code is like going into debt. A little

Jul 06, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham victor.brekenfeld@fu-berlin.de Shipping first time code is like going into debt. A little

Technical Debt, Victor BrekenfeldFreie Universität Berlin

Research on Technical Debt

[email protected]

Page 2: Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham victor.brekenfeld@fu-berlin.de Shipping first time code is like going into debt. A little

2

What is this?

● Pitch for doing Research @ <insert company name here>

● Imagine being a developer in a company

● And I am standing here, telling you about technical debt

[email protected]

Page 3: Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham victor.brekenfeld@fu-berlin.de Shipping first time code is like going into debt. A little

3

Who am I?

● Victor Brekenfeld

● Research Associate @ Freie Universität Berlin

● Software Engineering

● Technical Debt

[email protected]

Page 4: Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham victor.brekenfeld@fu-berlin.de Shipping first time code is like going into debt. A little

4

Structure● Definition: Technical Debt

● Research Approach

● Points of interest

● Current Research Subjects

Page 5: Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham victor.brekenfeld@fu-berlin.de Shipping first time code is like going into debt. A little

5

Technical DebtSection 1

Page 6: Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham victor.brekenfeld@fu-berlin.de Shipping first time code is like going into debt. A little

6

Technical Debt?

Ward Cunningham

[email protected]

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[...].

Page 7: Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham victor.brekenfeld@fu-berlin.de Shipping first time code is like going into debt. A little

7

Technical Debt?

Steve McConnell

[email protected]

The first kind of technical debt is the kind that is incurred unintentionally. [...]

The second kind of technical debt is the kind that is incurred intentionally. [...]

Short-term debt is the debt that's taken on tactically and reactively.[...]

Long term debt is the debt a company takes on strategically and proactively. [...]

Page 8: Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham victor.brekenfeld@fu-berlin.de Shipping first time code is like going into debt. A little

8

Technical Debt?

Steve McConnell

[email protected]

I. Debt incurred unintentionally due to low quality work

II. Debt incurred intentionally II.A. Short-term debt, usually incurred

reactively, for tactical reasons II.A.1. Individually identifiable shortcuts

(like a car loan) II.A.2. Numerous tiny shortcuts (like

credit card debt) II.B. Long-term debt, usually incurred

proactively, for strategic reasons

Page 9: Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham victor.brekenfeld@fu-berlin.de Shipping first time code is like going into debt. A little

9

Technical Debt?

Martin Fowler

[email protected]

Reckless Prudent

Deliberate

“We don’t have time for design”

“We must ship now and deal with the consequences”

Inadvertent

“What’s layering?”“Now we know, how

we should have done it”

Page 10: Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham victor.brekenfeld@fu-berlin.de Shipping first time code is like going into debt. A little

10

Where does it end?

● design debt / architectural debt● defect debt ?● infrastructure debt● testing debt● documentation debt● people debt● requirement debt● ...

[email protected]

Page 11: Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham victor.brekenfeld@fu-berlin.de Shipping first time code is like going into debt. A little

11

Landscape

© Kruchten, P., Nord, R. L., & Ozkaya, I. (2012).Technical Debt: From Metaphor to Theory and Practice. IEEE Software, 29(6), 18–21. doi:10.1109/ms.2012.167

Page 12: Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham victor.brekenfeld@fu-berlin.de Shipping first time code is like going into debt. A little

12

Tackling TD

Using methods such as:

● SQALE● DR-NEP● CAST Software AIP

Page 13: Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham victor.brekenfeld@fu-berlin.de Shipping first time code is like going into debt. A little

13

Research ApproachSection 2

Page 14: Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham victor.brekenfeld@fu-berlin.de Shipping first time code is like going into debt. A little

14

Working Group Software Engineering @ FU-Berlin● Software Engineering (in research) is first and foremost constructive

○ How should we do something?■ New Methods■ New Notations■ New Tools

○ This approach has mostly failed

● We focus on Empirical Research (at first)

○ Typically under-research topics using qualitative research methods

Page 15: Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham victor.brekenfeld@fu-berlin.de Shipping first time code is like going into debt. A little

15

TD in the Enterprise Context

● Metaphor was designed to help communication

● Decisions are often made by non-technical stakeholders

○ e.g. “An Enterprise Perspective on Technical Debt” by Tim Klinger et al.

● Because software engineering involves complex action from and interaction

between humans, psychological and sociological insights are required

○ Even worse in enterprises

○ This data can only be collected empirically by observation

Page 16: Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham victor.brekenfeld@fu-berlin.de Shipping first time code is like going into debt. A little

16

Points of InterestSection 3

Page 17: Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham victor.brekenfeld@fu-berlin.de Shipping first time code is like going into debt. A little

17

Entwicklung

Refactoring ?

Aufwands-abschätzung

Nutzen-abschätzung

Refactoring !

Hypothesis

Page 18: Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham victor.brekenfeld@fu-berlin.de Shipping first time code is like going into debt. A little

18

Points of interest● What pains do real teams in various companies perceive in these respects?

● What terms and concepts do teams use to think and talk about their TD

situation?

● Where and how is their perception of the TD situation incorrect? If so: Why?

● How do teams cope with simple, easy-to-repair TD?

● How with medium-scale TD that takes hours to repair?

● How with large-scale (e.g. architectural) TD?

● What mindset is behind these approaches?

● ...

Page 19: Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham victor.brekenfeld@fu-berlin.de Shipping first time code is like going into debt. A little

19

Research SubjectsSection 4

Page 20: Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham victor.brekenfeld@fu-berlin.de Shipping first time code is like going into debt. A little

20

Work so far● Start in April 2019

○ Deep literature research

○ Contact & Interviews with ~6 companies

○ Interview with Michael Feathers

○ Cooperation with consulting company on the matter

○ Cooperation with two companies

Page 21: Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham victor.brekenfeld@fu-berlin.de Shipping first time code is like going into debt. A little

21

Research Pitch● Free consulting

● External perspective

● Specialized knowledge

● Analysis you don’t have the time for

● Conceptualize your unique problems

● => Indirect knowledge transfer

Page 22: Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham victor.brekenfeld@fu-berlin.de Shipping first time code is like going into debt. A little

22

Research Subjects● How do you deal with TD?● How do you refactor?

● Attend meetings● Pair-programming sessions● Interviews● Code-Reviews● ...

Page 23: Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham victor.brekenfeld@fu-berlin.de Shipping first time code is like going into debt. A little

23

Thank you!

[email protected]

Page 24: Technical Debt, Victor Brekenfeld Research on Technical ... · Technical Debt? Ward Cunningham victor.brekenfeld@fu-berlin.de Shipping first time code is like going into debt. A little

24

Feedback?

[email protected]