technical debt, victor brekenfeld research on technical ... · technical debt? ward cunningham...

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

Upload: others

Post on 06-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Technical Debt, Victor BrekenfeldFreie Universität Berlin

Research on Technical Debt

[email protected]

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]

3

Who am I?

● Victor Brekenfeld

● Research Associate @ Freie Universität Berlin

● Software Engineering

● Technical Debt

[email protected]

4

Structure● Definition: Technical Debt

● Research Approach

● Points of interest

● Current Research Subjects

5

Technical DebtSection 1

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

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

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

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”

10

Where does it end?

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

[email protected]

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

12

Tackling TD

Using methods such as:

● SQALE● DR-NEP● CAST Software AIP

13

Research ApproachSection 2

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

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

16

Points of InterestSection 3

17

Entwicklung

Refactoring ?

Aufwands-abschätzung

Nutzen-abschätzung

Refactoring !

Hypothesis

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?

● ...

19

Research SubjectsSection 4

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

21

Research Pitch● Free consulting

● External perspective

● Specialized knowledge

● Analysis you don’t have the time for

● Conceptualize your unique problems

● => Indirect knowledge transfer

22

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

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

23

Thank you!

[email protected]

24

Feedback?

[email protected]