clean code and technical debt · clean code academy. 7. 8 entwickler nach 1 woche…. 9 entwickler...

29
Clean Code and Technical Debt Michael Kaufmann | MVP | Senior Manager

Upload: others

Post on 17-Jun-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

Clean Code and Technical DebtMichael Kaufmann | MVP | Senior Manager

Page 2: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

The

„THE NEXT BIG BLUE-COLLAR JOB IS CODING“

https://www.wired.com/2017/02/programming-is-the-new-blue-collar-job/

Page 3: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

Programmierst du noch – oder experimentierst

du schon?

1

2

3

Page 4: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

4

Michael Kaufmann Head of Development

Blog: http://writeabout.netTwitter: @mike_kaufmann

Page 5: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

All rights reserved 5

Was ist Clean Code?

Page 6: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

All rights reserved 6

Clean Code Academy

Page 7: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

7

Page 8: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

8Entwickler nach 1 Woche….

Page 9: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

9Entwickler nach 1 Monat….

Page 10: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

10Entwickler nach 1 Jahr….

Page 11: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

11Entwickler nach 3 Jahren….

Page 12: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

12Entwickler nach 6 Jahren….

Page 13: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

13Entwickler nach 12 Jahren….

Page 14: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

14

Entwickler nach 1 Woche…. Entwickler nach 1 Monat…. Entwickler nach 1 Jahr….

Entwickler nach 3 Jahren…. Entwickler nach 6 Jahren…. Entwickler nach 12 Jahren….

Page 15: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

15

“Clean Code istTeamsport!”

Page 16: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

All rights reserved 16

Was ist „Technical Debt“?

Page 17: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

17

Page 18: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

All rights reserved 18

Umgang mit technischer Schuld

Page 19: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

19

Page 20: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

All rights reserved

Definieren

Messen

Kontrollieren

Verbessern

• Management Kreislauf

Umgang mit technischer Schuld

20

Management von Technical Debt

Definieren

MessenKontrollieren

Verbessern

Page 21: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

All rights reserved 21

Umgang mit technischer Schuld

Definieren

• Code

• Design

• Dokumentation

• Test

Messen

• Code Analysis

• Test Coverage

• Dokumentation

„Basline“

• Keine neue Schuld

• Kontinuierliche Überwachung über KPI

Verbesserung

• KPI erhöhen

• Kontinuierliche Verbesserung

Page 22: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

All rights reserved 22

Umgang mit technischer Schuld

Definieren

• Code

• Design

• Dokumentation

• Test

Messen

• Code Analysis

• Test Coverage

• Dokumentation

„Basline“

• Keine neue Schuld

• Kontinuierliche Überwachung über KPI

Verbesserung

• KPI erhöhen

• Kontinuierliche Verbesserung

Code / Design: Continuous Integration / Delivery

Page 23: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

All rights reserved 23

Umgang mit technischer Schuld

Definieren

• Code

• Design

• Dokumentation

• Test

Messen

• Code Analysis

• Test Coverage

• Dokumentation

„Basline“

• Keine neue Schuld

• Kontinuierliche Überwachung über KPI

Verbesserung

• KPI erhöhen

• Kontinuierliche Verbesserung

Code / Design: Metriken • LoC• Cyclomatic Complexity• Depth of Inheritance• Class Coupling

Page 24: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

All rights reserved 24

Umgang mit technischer Schuld

Definieren

• Code

• Design

• Dokumentation

• Test

Messen

• Code Analysis

• Test Coverage

• Dokumentation

„Basline“

• Keine neue Schuld

• Kontinuierliche Überwachung über KPI

Verbesserung

• KPI erhöhen

• Kontinuierliche Verbesserung

Code / Design: Statische Codeanalyse• Roslyn• Resharper• SonarQube

Page 25: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

All rights reserved 25

Umgang mit technischer Schuld

Definieren

• Code

• Design

• Dokumentation

• Test

Messen

• Code Analysis

• Test Coverage

• Dokumentation

„Basline“

• Keine neue Schuld

• Kontinuierliche Überwachung über KPI

Verbesserung

• KPI erhöhen

• Kontinuierliche Verbesserung

Dokumentation:• So viel wie nötig, so wenig wie möglich• Automatisierung

Page 26: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

All rights reserved 26

Umgang mit technischer Schuld

Definieren

• Code

• Design

• Dokumentation

• Test

Messen

• Code Analysis

• Test Coverage

• Dokumentation

„Basline“

• Keine neue Schuld

• Kontinuierliche Überwachung über KPI

Verbesserung

• KPI erhöhen

• Kontinuierliche Verbesserung

Test:Code Coverage• Unit Tests• Integration Tests• System Tests

Page 27: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

All rights reserved

https://sonarcloud.io/projects

27

Demo

Page 28: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

All rights reserved

SonarLint

28

Demo

Page 29: Clean Code and Technical Debt · Clean Code Academy. 7. 8 Entwickler nach 1 Woche…. 9 Entwickler nach 1 Monat…. 10 Entwickler nach 1 Jahr…. Entwickler nach 3 Jahren…. 11

All rights reserved

“Clean Code ist die Abwesenheit von

technischer Schuld“ Michael Kaufmann

29