Erste Schritte in die neue Welt so gelingt der Einstieg in Big Data und Machi...
Thementag 2023 04 Lindern, heilen oder gar fit machen.pdf
1. IKS Gesellschaft für Information-und Kommunikationssysteme GmbH
T. +49 2103-5872-0 | www.iks-gmbh.com
Projekte. Beratung. Spezialisten.
IKS Thementag
14.6.2023
Jörg Vollmer
Wege, mit alternder Software umzugehen
Lindern, heilen oder gar fit machen
2. Lindern, heilen oder gar fit machen 2 | 68
Agenda
❯ Lifecycle einer Software
❯ Was ist Software-Wartung?
❯ Die Ursachen hoher Wartungskosten
❯ Wie lassen sich diese Kosten senken?
❯ Wann lindern, wann heilen oder gar fit machen?
3. Lindern, heilen oder gar fit machen 3 | 68
Agenda
❯ Lifecycle einer Software
❯ Was ist Software-Wartung?
❯ Die Ursachen hoher Wartungskosten
❯ Wie lassen sich diese Kosten senken?
❯ Wann lindern, wann heilen oder gar fit machen?
4. Lindern, heilen oder gar fit machen 4 | 68
Software-Lifecycle
Innovation
Entwicklung
Start-
phase
Produktions-
phase
Moderni-
sierung
End of
Life
5. Lindern, heilen oder gar fit machen 5 | 68
Typische Probleme
❯ Startphase
◆ Mangelhafte Infrastruktur
unzureichend getestet (Abi 2023)
◆ Fehlende organisatorische Prozesse
führt zu Verzögerungen oder gar
Unterlassungen
◆ Software läuft nicht so wie gedacht
Konflikt zwischen Auftraggeber und
Auftragnehmer ⇒ Pflegestau
Innovation
Entwicklung
Start-
phase
Produktions-
phase
Moderni-
sierung
End of
Life
€
6. Lindern, heilen oder gar fit machen 6 | 68
Typische Probleme
❯ Produktionsphase
◆ (Zu) viele Bugs brauchen (zu) lang, um
erkannt und behoben zu werden?
◆ Anforderungen brauchen zunehmend
länger für die Umsetzung
◆ Warum?
Innovation
Entwicklung
Start-
phase
Produktions-
phase
Moderni-
sierung
End of
Life
€
7. Lindern, heilen oder gar fit machen 7 | 68
Definition: Softwarewartung
❯ Softwarewartung ist die Veränderung eines Softwareprodukts nach dessen
Auslieferung, um Fehler zu beheben, Performanz oder andere Attribute zu verbessern
oder Anpassungen an die veränderte Umgebung vorzunehmen [WikiSoftwarewartung]
8. Lindern, heilen oder gar fit machen 8 | 68
Aufgabe der (reinen) Softwarewartung
❯ Korrektur von Fehlern (Bugfixing)
❯ Fehleranalyse und Vorbeugung
❯ Anpassung der Software an geänderte Vorschriften
❯ Sicherheits- und Software-Updates
❯ Optimierung der Softwareleistung
❯ Stetige Verbesserung der Wartbarkeit
9. Lindern, heilen oder gar fit machen 9 | 68
Abgrenzung zwischen Wartung und Weiterentwicklung
❯ Wartung
◆ Beibehalten des ursprünglichen Zustands (fachlich)
❯ Erweiterung, Weiterentwicklung
◆ Bereitstellen zusätzlicher Funktionalität: neue Features
10. Lindern, heilen oder gar fit machen 10 | 68
Software ist nie fertig
Innovation
Entwicklung
Start-
phase
Produktions-
phase
Moderni-
sierung
End of
Life
In dem Augenblick, in dem eine Softwarelösung
in den produktiven Betrieb übergeht, entsteht der
Bedarf an Softwarepflege (Wartung) [Seven2one]
Wartung und Weiterentwicklung verlaufen
eigentlich immer eine Zeitlang parallel.
11. Lindern, heilen oder gar fit machen 11 | 68
Agenda
❯ Lifecycle einer Software
❯ Was ist Software-Wartung?
❯ Die Ursachen hoher Wartungskosten
❯ Wie lassen sich diese Kosten senken?
❯ Wann lindern, wann heilen oder gar fit machen?
12. Lindern, heilen oder gar fit machen 12 | 68
Wartungskosten im Vergleich
6% Anforderungen
5% Design
7% Implementierung
15%
Testen 67%
Wartung
[ShortNote]
[MainOver]
[ResearchGate]
[GateSmashers]
13. Lindern, heilen oder gar fit machen 13 | 68
Symptome hoher Wartungskosten & Ursachen
Lange
Umsetzung
Anzahl / Kosten
von Bugs
Hohe
Lizenzkosten
Hohe
Personalkosten
Symptome:
14. Lindern, heilen oder gar fit machen 14 | 68
Symptome hoher Wartungskosten & Ursachen
Schlechte
Technik /
Architekt
ur
Mangel-
haftes
Logging
Dirty
Code
Geringe
Testab-
deckung
Schlechtes
Wissens-
mgmt.
Fehl.
Know-
How
Häufige
Personal
-wechsel
Symptome:
Ursachen:
Entwick-
lungs-
prozess
Lange
Umsetzung
Anzahl / Kosten
von Bugs
Hohe
Lizenzkosten
Hohe
Personalkosten
15. Lindern, heilen oder gar fit machen 15 | 68
Symptome hoher Wartungskosten & Ursachen
Entwicklung Management
Technische Schulden Organisation
Symptome:
Lange
Umsetzung
Anzahl / Kosten
von Bugs
Hohe
Lizenzkosten
Hohe
Personalkosten
Architektur / Prozesse
Schlechte
Technik /
Architekt
ur
Mangel-
haftes
Logging
Dirty
Code
Geringe
Testab-
deckung
Schlechtes
Wissens-
mgmt.
Fehl.
Know-
How
Häufige
Personal
-wechsel
Ursachen:
Entwick-
lungs-
prozess
16. Lindern, heilen oder gar fit machen 16 | 68
Entwicklung
neue
Anforderungen
Zukunft
Vergangenheit
Business
Technik
Architektur,
Entwicklungsprozess
Technische
Schulden
Support,
Bugs
Vergangenheit
Wartung und Weiterentwicklung verlaufen
eigentlich immer eine Zeitlang parallel.
17. Lindern, heilen oder gar fit machen 17 | 68
Entwicklung
neue
Anforderungen
Zukunft
Vergangenheit
Business
Technik
Architektur,
Entwicklungsprozess
Technische
Schulden
Support,
Bugs
Vergangenheit
Korrigierende
Wartung
adaptive
Wartung
Perfektionierende
Wartung
Präventive
Wartung
18. Lindern, heilen oder gar fit machen 18 | 68
Entwicklung
Zukunft
Vergangenheit
Business
Technik
Architektur,
Entwicklungsprozess
Technische
Schulden
?%
?%
?%
?%
neue
Anforderungen
Support,
Bugs
19. Lindern, heilen oder gar fit machen 19 | 68
Entwicklung
neue
Anforderungen
Zukunft
Vergangenheit
Business
Technik
Architektur,
Entwicklungsprozess
Technische
Schulden
Support,
Bugs
10%
20% 20%
50%
20. Lindern, heilen oder gar fit machen 20 | 68
Entwicklung
neue
Anforderungen
Zukunft
Vergangenheit
Business
Technik
Architektur,
Entwicklungsprozess
Technische
Schulden
Support,
Bugs
10%
0% 0%
90%
21. Lindern, heilen oder gar fit machen 21 | 68
Entwicklung
neue
Anforderungen
Zukunft
Vergangenheit
Technik
Architektur,
Entwicklungsprozess
Technische
Schulden
Support,
Bugs
30%
0% 0%
70%
Business
22. Lindern, heilen oder gar fit machen 22 | 68
Entwicklung
neue
Anforderungen
Zukunft
Vergangenheit
Business
Technik
Architektur,
Entwicklungsprozess
Technische
Schulden
Support,
Bugs
60%
0% 0%
40%
23. Lindern, heilen oder gar fit machen 23 | 68
Entwicklung
neue
Anforderungen
Zukunft
Vergangenheit
Business
Technik
Architektur,
Entwicklungsprozess
Technische
Schulden
Support,
Bugs
90%
0% 0%
10%
24. Lindern, heilen oder gar fit machen 24 | 68
Regelmäßige Nachbesserungen
Gleichbleibender
Wartungsaufwand
Hoher unplanbarer
Wartungsaufwand
Technische Schulden
Zeit
teure Refactorings
Erosion
Modernisierung
Wartung / Features
25. Lindern, heilen oder gar fit machen 25 | 68
Wikipedia
… Der Wartungsaufwand wird darüber hinaus stark von der betreffenden Software
selbst (Fehlerdichte, Wartbarkeit) und den mit der Wartung befassten Personen
(Erfahrung, Mitarbeit von Spezialisten) und Prozessen beeinflusst.
Der Aufwand kann so auf ein Fünffaches anwachsen oder auf ein Fünftel reduziert
werden.
[WikiSoftwarewartung]
[Economics]
26. Lindern, heilen oder gar fit machen 26 | 68
Wikipedia
… Der Wartungsaufwand wird darüber hinaus stark von der betreffenden Software
selbst (Fehlerdichte, Wartbarkeit) und den mit der Wartung befassten Personen
(Erfahrung, Mitarbeit von Spezialisten) und Prozessen beeinflusst.
Der Aufwand kann so auf ein Fünffaches anwachsen oder auf ein Fünftel reduziert
werden.
[WikiSoftwarewartung]
[Economics]
27. Lindern, heilen oder gar fit machen 27 | 68
Agenda
❯ Lifecycle einer Software
❯ Was ist Software-Wartung?
❯ Die Ursachen hoher Wartungskosten
❯ Wie lassen sich diese Kosten senken?
❯ Wann lindern, wann heilen oder gar fit machen?
28. Lindern, heilen oder gar fit machen 28 | 68
Wikipedia
… Der Wartungsaufwand wird darüber hinaus stark von der betreffenden Software
selbst (Fehlerdichte, Wartbarkeit) und den mit der Wartung befassten Personen
(Erfahrung, Mitarbeit von Spezialisten) und Prozessen beeinflusst.
Der Aufwand kann so auf ein Fünffaches anwachsen oder auf ein Fünftel reduziert
werden.
[WikiSoftwarewartung]
[Economics]
29. Lindern, heilen oder gar fit machen 29 | 68
Bugs in der Produktion
neue
Anforderungen
Zukunft
Vergangenheit
Technik
Architektur,
Entwicklungsprozess
Technische
Schulden
Support,
Bugs
?%
Rule of Ten:
Planung: 1 €
Entwickl.: 10 €
Produktion: 100 €
30. Lindern, heilen oder gar fit machen 30 | 68
Fehlerbehebungskosten senken
ℎ ℎ ℎ · ℎ ℎ
Autom. Tests
Clean Code
Logging / Monitoring
Wissensmanagement
Ziel
€ #
31. Lindern, heilen oder gar fit machen 31 | 68
Reaktion bei einer hohen Fehlerrate
Aspekt Wichtigkeit
Autom. Tests
Clean Code
Monitoring
Wissensmgmt.
Es werden grundsätzlich erst einmal
mehr automatisierte (Unit)-Tests
vorgeschlagen,
… denn, richtig ist:
Tests vermeiden Fehler präventiv,
aber …
Weiter haben sich Code-Reviews
etabliert, die zu besserem Code
führen.
32. Lindern, heilen oder gar fit machen 32 | 68
Wer kennt diese Herren nicht?
Martin Fowler Kent Beck Robert C. Martin
Bekannt durch autom. Tests und Clean Code
33. Lindern, heilen oder gar fit machen 33 | 68
Reaktion der Entwicklung bei zu vielen Bugs
Aspekt Wichtigkeit
Autom. Tests
Clean Code
Monitoring
Wissensmgmt.
Gutes Logging und Monitoring
haben sich leider noch nicht als
Standard etabliert.
Gutes Wissensmanagement ist
leider noch schwierig zu realisieren.
Es werden grundsätzlich erst einmal
mehr automatisierte (Unit)-Tests
vorgeschlagen,
1-2-4-Rule:
1 ZE: Entwicklung der Funktionalität
2 ZE: Entwicklung der Unit-Tests
4 ZE: Wartung der Unit-Tests
€
34. Lindern, heilen oder gar fit machen 34 | 68
Aber wer kennt denn diese Personen?
Jamie Riedesel Phil Wilkins Mike Julian
Franz Lehner M. Giudice et al. C. Majors et al. Koffa Khan
J. Diakun et al. Asjad Athik
Thorsten Kramm
35. Lindern, heilen oder gar fit machen 35 | 68
Häufig anzutreffendes Logging
[ERROR] 2023-04-23 10:05:56 - Es ist ein fehler bei der Brechnung
aufgetreten: null
Wer, wie, was?
Wieso, weshalb, warum?
Wann & wo?
39. Lindern, heilen oder gar fit machen 39 | 68
Gutes Logging
[ERROR] 2023-04-23 10:05:56 - Es ist ein fehler bei der Brechnung
aufgetreten: null
[ERROR] 2023-04-23 10:05:56 - Berechnung des prozentualen Anteils
◆ Produkt-Nr: 283223 (Autobatterie), verkauft: 112 von gesamt: 0
◆ TraceId: c123630b-ecd5-4dea-813f-d463b6c1bc4c
◆ User: DWH-System, SessionID: ed210e3e4a5b
◆ Exception in thread "main" java.lang.ArithmeticException: / by zero at
Kalkulation.berechneAnteil (kalkulation.kt:112)
Strukturiertes Logging, i.d.R. im
JSON-Format: JSON-Logging
Observability, Data-Science:
Auswertungen durch KI
40. Lindern, heilen oder gar fit machen 40 | 68
Monitoring
Monitoring
z.B. Slack
Logfiles
überwacht
alarmiert
42. Lindern, heilen oder gar fit machen 42 | 68
Reaktion der Entwicklung bei zu vielen Bugs
Aspekt Wichtigkeit
Autom. Tests
Clean Code
Monitoring
Wissensmgmt.
Gutes Logging und Monitoring
haben sich leider noch nicht als
Standard etabliert.
43. Lindern, heilen oder gar fit machen 43 | 68
Gute Überwachung reduziert Wartungskosten deutlich!
Aspekt Wegwerf Standard Hochqualitativ
Autom. Tests
Clean Code
Monitoring
Wissensmgmt.
Und ist mit vergleichsweise wenig Aufwand realisierbar - auch nachträglich!
€
44. Lindern, heilen oder gar fit machen 44 | 68
Wikipedia
… Der Wartungsaufwand wird darüber hinaus stark von der betreffenden Software
selbst (Fehlerdichte, Wartbarkeit) und den mit der Wartung befassten Personen
(Erfahrung, Mitarbeit von Spezialisten) und Prozessen beeinflusst.
Der Aufwand kann so auf ein Fünffaches anwachsen oder auf ein Fünftel reduziert
werden.[11]
45. Lindern, heilen oder gar fit machen 45 | 68
Innovation
Entwicklung
Start-
phase
Produktions-
phase
Moderni-
sierung
End of
Life
Entwicklungsteam
Skills:
a) kreativ
b) schnell
c) spaßgetrieben
Faktor Mensch
46. Lindern, heilen oder gar fit machen 46 | 68
Warum die Wartbarkeit auf der Strecke bleibt
❯ Software-Entwickler sind Dopamin-Junkies!
❯ Belohnung durch Knobeln und der funktionierende Lösung
◆ Bug finden ⇒ Belohnung
◆ Auch automatisierte Tests funktionieren ⇒ Belohnung
◆ Apropos sauberer Code: Review, Approve ⇒ Belohnung
❯ Anschl. Wartbarkeitsverbesserungen triggern das Belohnungssystem nicht:
◆ Nach einer langen Bug-Suche Maßnahmen zu ergreifen, um beim nächsten Mal schneller zu
sein
◆ Logging verbessern
◆ Dokumentieren
47. Lindern, heilen oder gar fit machen 47 | 68
Warum komplexe, schwer wartbare Systeme entstehen
❯ Techietekten sind auch Dopamin-Junkies
❯ Belohnung durch das Schaffen komplexer Systeme
◆ Informiert: Lieben den „Vorsprung“ ⇒ Belohnung
◆ Das Unmögliche möglich machen ⇒ Belohnung
◆ Je mehr desto cooler:
49. Lindern, heilen oder gar fit machen 49 | 68
Warum oft komplexe und schwer wartbare Systeme entstehen
❯ Techietekten sind auch Dopamin-Junkies
❯ Belohnung durch das Schaffen komplexer Systeme
◆ Informiert: Lieben den „Vorsprung“ ⇒ Belohnung
◆ Das Unmögliche möglich machen ⇒ Belohnung
◆ Je mehr desto cooler:
❯ Gute Architekten sind selten und lieben das Abwägen
◆ Hard Skills: Programmierung, Analyse, Datenmodellierung,
DDD, Security, Datenschutz, Projektmanagement
◆ Soft Skills: Geschulte Rhetorik, Überzeugungskraft,
Diplomatie, Zielstrebigkeit, Geschäftssinn
€
50. Lindern, heilen oder gar fit machen 50 | 68
Reaktion der Entwicklung bei zu vielen Bugs
Aspekt Wichtigkeit
Autom. Tests
Clean Code
Monitoring
Wissensmgmt.
Gutes Wissensmanagement ist
leider noch schwierig zu realisieren.
51. Lindern, heilen oder gar fit machen 51 | 68
Warum wird so ungern dokumentiert?
❯ Dokumentation im Code
◆ Entwicklung: Der Code wird möglichst selbsterklärend geschrieben …
… somit brauchen wir keine Doku (?)
◆ Zeitdruck (?)
◆ Keine Belohnung, da Doku nicht „läuft“ (!)
❯ Dokumentation im Wiki / Confluence:
◆ Wird eh nicht gelesen …
◆ … warum? Die Suche ist zu schlecht, man findet nichts.
52. Lindern, heilen oder gar fit machen 52 | 68
In Zukunft: KI im Wissensmanagement
Source-Code
Confluence
Reports
In welchem Service wird die Bonität des
Kunden berechnet?
Die Bonität wird im Service credit-rating
berechnet.
Wie lautet die GitLab-URL davon?
https://gitlab.firma.com/finance/credit-
rating
53. Lindern, heilen oder gar fit machen 53 | 68
Agenda
❯ Lifecycle einer Software
❯ Was ist Software-Wartung?
❯ Die Ursachen hoher Wartungskosten
❯ Wie lassen sich diese Kosten senken?
❯ Wann lindern, wann heilen oder gar fit machen?
54. Lindern, heilen oder gar fit machen 54 | 68
Symptome hoher Wartungskosten & Ursachen
Lange
Umsetzung
Anzahl / Kosten
von Bugs
Hohe
Lizenzkosten
Hohe
Personalkosten
Symptome:
Hohe
Wartungskosten
55. Lindern, heilen oder gar fit machen 55 | 68
Indikatoren für eine Modernisierung oder Beendigung
Lange
Umsetzung
Anzahl / Kosten
von Bugs
Hohe
Lizenzkosten
Hohe
Personalkosten
Symptome:
Günstigere
Konkurrenz-Produkte
Geschäftsmodell der
Software
Hohe
Wartungskosten
Wartung End of Life Modernisieren
lindern
heilen fit machen
56. Lindern, heilen oder gar fit machen 56 | 68
Messungen helfen
❯ Bekannte Verfahren:
◆ ATAM (Architecture Tradeoff Analysis Method)
◆ SAAM (Software Architecture Analysis Method)
◆ Fagan Inspektion
◆ CBAM (Cost Benefit Analysis Method) erweitert ATAM
❯ Das bekannteste ist ATAM und
◆ liefert eine Bewertung von Qualitätsszenarien,
◆ identifiziert Schwachstellen in der Architektur,
◆ erkennt technische Schulden,
◆ erstellt ggf. einen Plan, sie zu reduzieren.
57. Lindern, heilen oder gar fit machen 57 | 68
Das kennen wir bereits
Was der Kunde
beschrieb
Was die
Entwicklung
implementierte
58. Lindern, heilen oder gar fit machen 58 | 68
Was haben wir gelernt?
Was die
Entwicklung
implementierte
Wie Patches
angewendet
werden
Wie das System
dokumentiert
wurde
Wie aussagestark
Fehler geloggt
werden
Was der Kunde
beschrieb
59. Lindern, heilen oder gar fit machen 59 | 68
Take Home
6% Anfoderungen
5% Design
7% Impl.
15%
Testen 67%
Wartung
/5 (?)
Kosteneinsparung
Quick-Wins:
• Verbesserte Diagnostik
• Kluges Team-Management
• KI-unterstütztes Wissensmgmt.
Ursachen:
• Wachsende techn. Schulden
• Unangemessene Architekturen
• Schwindendes Know-how
⇒ Viele und teure Bugs
61. Lindern, heilen oder gar fit machen 61 | 68
[Economics]
https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.88.7697&rep=rep1&type=pdf
[Statista]
https://de.statista.com/statistik/daten/studie/316498/umfrage/lebensdauer-von-autos-deutschland/
[Wartungshölle]
https://blog.codecentric.de/wartungshoelle-nein-danke
[ShortNote]
https://www.ques10.com/p/21788/short-note-on-software-maintenance
[MainOver]
https://www.tutorialspoint.com/software_engineering/software_maintenance_overview.htm
[ResearchGate]
https://www.researchgate.net/figure/Costs-of-Software-Development-Stages-11_fig1_232590980
[Seven2one]
https://www.seven2one.de/blog/damit-ein-it-system-laeuft-und-laeuft-und-laeuft-warum-softwarepflege-
unerlaesslich-ist/
Referenzen
62. Lindern, heilen oder gar fit machen 62 | 68
[JRiedesel]
Jamie Riedesel, Software Telemetrie, Manning Publications (31. August 2021), ISBN: 978-1617298141
[PWilkins]
Phil Wilkins, Logging in Action, Manning (10. Mai 2022), ISBN: 978-1617298356
[Mjulian]
Mike Julian, Practical Monitoring, O'Reilly UK Ltd. (23. November 2017), ISBN: 978-1491957356
[JDiakun]
J. Diakun et al., Splunk Operational lntelligence, Packt Publishing; (28. Mai 2018), ISBN: 978-1788835237
[AAthik]
Asjad Athik, Elastic Stack 8.0, Packt Publishing (22. Dezember 2017), ISBN: 978-1787281868
[FLehner]
Franz Lehner, Wissensmanagement, Carl Hanser Verlag GmbH, ISBN: 978-3446467804
[AChuvakin]
Anton Chuvakin et al., Logging and Log Management, Syngress, ISBN: 978-1597496353
Referenzen
63. Lindern, heilen oder gar fit machen 63 | 68
[MGiudice]
M. Giudice, Knowledge Management and Al in Society 5.0, Routledge (10. März 2023), ISBN: 978-1032191911
[CMajors]
C. Majors, Observability Engineering, O'Reilly Media (14. Juni 2022), ISBN: 978-1492076445
[KKhan]
Koffa Khan, Cloud Monitoring, ASIN: B0BZX7BVGT
[Mjulian]
Mike Julian, Practical Monitoring, O'Reilly UK Ltd. (23. November 2017), ISBN: 978-1491957356
[TKramm]
J. Thorsten Kramm, Monitoring mit Zabbix, dpunkt.verlag GmbH (1. Februar 2016), ISBN: 978-3864903359
[LudLich]
Jochen Ludewig und Horst Lichter, Software Engineering, dpunkt.verlag (2. Februar 2023), ISBN: 978-3864905988
Referenzen
64. Lindern, heilen oder gar fit machen 64 | 68
[DThielke]
Refactoring - wenn Deine Software bald stirbt..., https://youtu.be/VqW0tVOrsWE
[TTühmA]
SE12a Softwarewartung zu Silvester https://youtu.be/6K_xc3b-bfY
[TTühmB]
SE12b Arten der Softwarewartung - https://youtu.be/kkUNcAYmMOg
[TTühmC]
SE12c Migration von Altsystemen - https://youtu.be/kkUNcAYmMOg
[GateSmashers]
Perfective, Preventive, Adaptive, Corrective Maintenance - https://youtu.be/nulFv99VBGs
Video-Referenzen
65. Lindern, heilen oder gar fit machen 65 | 68
[S. 8]
https://stock.adobe.com/de/search?k=%22nicht+vergessen%22&asset_id=1931163881
[S. 23, 24]
https://de.wikipedia.org/wiki/Gift#/media/Datei:Skull_and_Crossbones.svg
[S. 26]
https://pixabay.com/de/illustrations/smiley-erschrocken-%C3%BCberrascht-angst-1958283/
[S. 30]
https://pixabay.com/de/vectors/symbol-stoppuhr-uhr-zeit-schwarz-157350/
[S. 32]
https://github.com/KentBeck
[S. 32]
https://commons.wikimedia.org/wiki/File:Webysther_20150414193208_-_Martin_Fowler.jpg
Bildernachweise