SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Clean Code ist doch einfach... Qualität ist schwierig!
Johannes Dienst
Clean Code
2 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
Einfach?
3 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
JA
4 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
Warum?
Regeln und Prinzipien
DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst5
6 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
Clean Code?
Irgendwer?
Die Realität
DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst7
8 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
Die Idee
DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst9
Realität Reloaded
DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst10
Wunsch
DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst11
Wirklichkeit
12 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
“The life of a software architect is a long and
rapid succession of suboptimal design
decisions taken partly in the dark.“
(Philippe Kruchten)
Miteinander
13 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
Die Lösung
14 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
Agilität?
Scrum
DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst15
SAFe
DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst16
Das Ergebnis!?
17 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
18 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
Quelle: http://geek-and-poke.com/
https://creativecommons.org/licenses/by/3.0/deed.en_US
Kommunikation
DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst19
Organisation
DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst20
Struktur
Kommunikation
DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst21
Trennung
22 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
Pragmatische Herangehensweise
23 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
Qualitätsszenarien
festlegen
Qualitätszenario allgemein
24 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
Mess-
kriteriumArtefakt
Umgebung
Quelle
Stimulus Antwort
Qualitätsszenario konkret
25 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
Keine
DowntimeProzess
Normal-
betrieb
Quelle:
Heartbeat
Stimulus:
Server
unerreichbar
Antwort:
Cockpit
informieren
Qualitätsattribute
26 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
Functional
Suitability
Software Product
Quality
Usability
Security
Performance
Efficiency
Maintainability
Compatibility Reliability
Portability
Qualitätsattribute (2)
27 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
Usability
• Appropriatness Recognizability
• Learnability
• Operability
• User Error Protection
• User Interface Aesthetics
• Accessibility
Qualitätsnormen
28 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
ISO 25010 FURPS
DIN 66272 ?
Halbe Wahrheiten
29 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
Empathy Driven Development
DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst30 Quelle: Growing a Culture of Experimentation – Jez Humble
Empathy Driven Development
Quelle: https://xkcd.com/1984/
https://creativecommons.org/licenses/by-nc/2.5/31 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
Psychological Safety
"being able to show and employ one's self
without fear of negative consequences of self-
image, status or career" (Kahn 1990, p. 708)
32 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst33
Zusammenfassung
DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
Empathy Driven
Development
34
Functional
Suitability
Software Product
Quality
Usability
Security
Performance
Efficiency
Maintainability
Compatibility Reliability
Portability
No plan survives contact with the enemy
Jez Humble
DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst

Weitere ähnliche Inhalte

Mehr von Johannes Dienst

The Future of UI Testing - Challenges in UI Automation
The Future of UI Testing - Challenges in UI AutomationThe Future of UI Testing - Challenges in UI Automation
The Future of UI Testing - Challenges in UI AutomationJohannes Dienst
 
Managed Cloud to GitOps: Deploying Several Client Clusters
Managed Cloud to GitOps: Deploying Several Client ClustersManaged Cloud to GitOps: Deploying Several Client Clusters
Managed Cloud to GitOps: Deploying Several Client ClustersJohannes Dienst
 
Stoizismus - Praktische Philosophie für den IT-Alltag (Pecha Kucha)
Stoizismus - Praktische Philosophie für den IT-Alltag (Pecha Kucha)Stoizismus - Praktische Philosophie für den IT-Alltag (Pecha Kucha)
Stoizismus - Praktische Philosophie für den IT-Alltag (Pecha Kucha)Johannes Dienst
 
Von Managed-Cloud zu GitOps - Multi Client-Cluster Deployments
Von Managed-Cloud zu GitOps - Multi Client-Cluster DeploymentsVon Managed-Cloud zu GitOps - Multi Client-Cluster Deployments
Von Managed-Cloud zu GitOps - Multi Client-Cluster DeploymentsJohannes Dienst
 
Managed Cloud to GitOps: Deploying Several Client Clusters
Managed Cloud to GitOps: Deploying Several Client ClustersManaged Cloud to GitOps: Deploying Several Client Clusters
Managed Cloud to GitOps: Deploying Several Client ClustersJohannes Dienst
 
Griechische Philosophie für moderne Softwareentwicklung
Griechische Philosophie für moderne SoftwareentwicklungGriechische Philosophie für moderne Softwareentwicklung
Griechische Philosophie für moderne SoftwareentwicklungJohannes Dienst
 
Lessons Learned Using arc42 in a Real DevOps Team
Lessons Learned Using arc42 in a Real DevOps TeamLessons Learned Using arc42 in a Real DevOps Team
Lessons Learned Using arc42 in a Real DevOps TeamJohannes Dienst
 
Lessons Learned: arc42 in einem echten DevOps Team
Lessons Learned: arc42 in einem echten DevOps TeamLessons Learned: arc42 in einem echten DevOps Team
Lessons Learned: arc42 in einem echten DevOps TeamJohannes Dienst
 
Work efficiently with Architecture Decision Records
Work efficiently with Architecture Decision RecordsWork efficiently with Architecture Decision Records
Work efficiently with Architecture Decision RecordsJohannes Dienst
 
The Dev, The Ops, And The Team: What works in a DevOps Team?
The Dev, The Ops, And The Team: What works in a DevOps Team?The Dev, The Ops, And The Team: What works in a DevOps Team?
The Dev, The Ops, And The Team: What works in a DevOps Team?Johannes Dienst
 
Effizient arbeiten mit Architecture Decision Records (ADR)
Effizient arbeiten mit Architecture Decision Records (ADR)Effizient arbeiten mit Architecture Decision Records (ADR)
Effizient arbeiten mit Architecture Decision Records (ADR)Johannes Dienst
 
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...Johannes Dienst
 
Spock vs Supermutanten: Spezifikationstesten trifft Mutationstesten
Spock vs Supermutanten: Spezifikationstesten trifft MutationstestenSpock vs Supermutanten: Spezifikationstesten trifft Mutationstesten
Spock vs Supermutanten: Spezifikationstesten trifft MutationstestenJohannes Dienst
 
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...Johannes Dienst
 
Pride & Prejudice: Teambildung & Motivation im agilen Umfeld
Pride & Prejudice: Teambildung & Motivation im agilen UmfeldPride & Prejudice: Teambildung & Motivation im agilen Umfeld
Pride & Prejudice: Teambildung & Motivation im agilen UmfeldJohannes Dienst
 
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...Johannes Dienst
 
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...Johannes Dienst
 
Und wer testet die Tests? - Mutationstesten mit PIT
Und wer testet die Tests? - Mutationstesten mit PITUnd wer testet die Tests? - Mutationstesten mit PIT
Und wer testet die Tests? - Mutationstesten mit PITJohannes Dienst
 
Type Script 3.x - Was war. Was kommt!
Type Script 3.x - Was war. Was kommt!Type Script 3.x - Was war. Was kommt!
Type Script 3.x - Was war. Was kommt!Johannes Dienst
 

Mehr von Johannes Dienst (19)

The Future of UI Testing - Challenges in UI Automation
The Future of UI Testing - Challenges in UI AutomationThe Future of UI Testing - Challenges in UI Automation
The Future of UI Testing - Challenges in UI Automation
 
Managed Cloud to GitOps: Deploying Several Client Clusters
Managed Cloud to GitOps: Deploying Several Client ClustersManaged Cloud to GitOps: Deploying Several Client Clusters
Managed Cloud to GitOps: Deploying Several Client Clusters
 
Stoizismus - Praktische Philosophie für den IT-Alltag (Pecha Kucha)
Stoizismus - Praktische Philosophie für den IT-Alltag (Pecha Kucha)Stoizismus - Praktische Philosophie für den IT-Alltag (Pecha Kucha)
Stoizismus - Praktische Philosophie für den IT-Alltag (Pecha Kucha)
 
Von Managed-Cloud zu GitOps - Multi Client-Cluster Deployments
Von Managed-Cloud zu GitOps - Multi Client-Cluster DeploymentsVon Managed-Cloud zu GitOps - Multi Client-Cluster Deployments
Von Managed-Cloud zu GitOps - Multi Client-Cluster Deployments
 
Managed Cloud to GitOps: Deploying Several Client Clusters
Managed Cloud to GitOps: Deploying Several Client ClustersManaged Cloud to GitOps: Deploying Several Client Clusters
Managed Cloud to GitOps: Deploying Several Client Clusters
 
Griechische Philosophie für moderne Softwareentwicklung
Griechische Philosophie für moderne SoftwareentwicklungGriechische Philosophie für moderne Softwareentwicklung
Griechische Philosophie für moderne Softwareentwicklung
 
Lessons Learned Using arc42 in a Real DevOps Team
Lessons Learned Using arc42 in a Real DevOps TeamLessons Learned Using arc42 in a Real DevOps Team
Lessons Learned Using arc42 in a Real DevOps Team
 
Lessons Learned: arc42 in einem echten DevOps Team
Lessons Learned: arc42 in einem echten DevOps TeamLessons Learned: arc42 in einem echten DevOps Team
Lessons Learned: arc42 in einem echten DevOps Team
 
Work efficiently with Architecture Decision Records
Work efficiently with Architecture Decision RecordsWork efficiently with Architecture Decision Records
Work efficiently with Architecture Decision Records
 
The Dev, The Ops, And The Team: What works in a DevOps Team?
The Dev, The Ops, And The Team: What works in a DevOps Team?The Dev, The Ops, And The Team: What works in a DevOps Team?
The Dev, The Ops, And The Team: What works in a DevOps Team?
 
Effizient arbeiten mit Architecture Decision Records (ADR)
Effizient arbeiten mit Architecture Decision Records (ADR)Effizient arbeiten mit Architecture Decision Records (ADR)
Effizient arbeiten mit Architecture Decision Records (ADR)
 
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
 
Spock vs Supermutanten: Spezifikationstesten trifft Mutationstesten
Spock vs Supermutanten: Spezifikationstesten trifft MutationstestenSpock vs Supermutanten: Spezifikationstesten trifft Mutationstesten
Spock vs Supermutanten: Spezifikationstesten trifft Mutationstesten
 
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
 
Pride & Prejudice: Teambildung & Motivation im agilen Umfeld
Pride & Prejudice: Teambildung & Motivation im agilen UmfeldPride & Prejudice: Teambildung & Motivation im agilen Umfeld
Pride & Prejudice: Teambildung & Motivation im agilen Umfeld
 
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
 
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
Leichtgewichtige Softwarearchitektur mit Architecture Decision Records und Qu...
 
Und wer testet die Tests? - Mutationstesten mit PIT
Und wer testet die Tests? - Mutationstesten mit PITUnd wer testet die Tests? - Mutationstesten mit PIT
Und wer testet die Tests? - Mutationstesten mit PIT
 
Type Script 3.x - Was war. Was kommt!
Type Script 3.x - Was war. Was kommt!Type Script 3.x - Was war. Was kommt!
Type Script 3.x - Was war. Was kommt!
 

Clean Code ist doch einfach... Qualität ist schwierig!

  • 1. Clean Code ist doch einfach... Qualität ist schwierig! Johannes Dienst
  • 2. Clean Code 2 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst Einfach?
  • 3. 3 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst JA
  • 4. 4 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst Warum?
  • 5. Regeln und Prinzipien DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst5
  • 6. 6 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst Clean Code? Irgendwer?
  • 7. Die Realität DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst7
  • 8. 8 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
  • 9. Die Idee DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst9
  • 10. Realität Reloaded DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst10
  • 11. Wunsch DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst11
  • 12. Wirklichkeit 12 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst “The life of a software architect is a long and rapid succession of suboptimal design decisions taken partly in the dark.“ (Philippe Kruchten)
  • 13. Miteinander 13 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
  • 14. Die Lösung 14 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst Agilität?
  • 15. Scrum DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst15
  • 16. SAFe DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst16
  • 17. Das Ergebnis!? 17 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
  • 18. 18 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst Quelle: http://geek-and-poke.com/ https://creativecommons.org/licenses/by/3.0/deed.en_US
  • 19. Kommunikation DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst19
  • 20. Organisation DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst20 Struktur
  • 21. Kommunikation DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst21
  • 22. Trennung 22 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
  • 23. Pragmatische Herangehensweise 23 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst Qualitätsszenarien festlegen
  • 24. Qualitätszenario allgemein 24 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst Mess- kriteriumArtefakt Umgebung Quelle Stimulus Antwort
  • 25. Qualitätsszenario konkret 25 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst Keine DowntimeProzess Normal- betrieb Quelle: Heartbeat Stimulus: Server unerreichbar Antwort: Cockpit informieren
  • 26. Qualitätsattribute 26 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst Functional Suitability Software Product Quality Usability Security Performance Efficiency Maintainability Compatibility Reliability Portability
  • 27. Qualitätsattribute (2) 27 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst Usability • Appropriatness Recognizability • Learnability • Operability • User Error Protection • User Interface Aesthetics • Accessibility
  • 28. Qualitätsnormen 28 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst ISO 25010 FURPS DIN 66272 ?
  • 29. Halbe Wahrheiten 29 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
  • 30. Empathy Driven Development DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst30 Quelle: Growing a Culture of Experimentation – Jez Humble
  • 31. Empathy Driven Development Quelle: https://xkcd.com/1984/ https://creativecommons.org/licenses/by-nc/2.5/31 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
  • 32. Psychological Safety "being able to show and employ one's self without fear of negative consequences of self- image, status or career" (Kahn 1990, p. 708) 32 DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst
  • 33. DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst33
  • 34. Zusammenfassung DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst Empathy Driven Development 34 Functional Suitability Software Product Quality Usability Security Performance Efficiency Maintainability Compatibility Reliability Portability
  • 35. No plan survives contact with the enemy Jez Humble DB Systel GmbH | Johannes Dienst | T.IPI 42 | @JohannesDienst

Hinweis der Redaktion

  1. Rationale Menschen finden Regeln super
  2. Oft ist alles chaotisch
  3. Zuerst Erkundungsprojekt erläutern Nächste Folie mitmachen: Rationale Menschen in Unsicherer Umgebung
  4. Intelligenz + Rationalität + Technik Daraus folgt nicht 1a Projekt
  5. Daraus folgt: Softwareprojekte sind nicht mit rationalem Denken steuerbar
  6. Menschen sind entscheidend!
  7. Unsicherheit? -> Kein Problem mit SCRUM -> Dann noch SAFe drüber und alles ist wieder Wasserfall
  8. 19
  9. SCRUM funktioniert nicht -> Organisation nicht bereit dafür Bild zuvor nur eingebettet in die Organisation
  10. 21
  11. Rationalität + Technik VS. Wünsche und Ökonomie
  12. Qualitätsszenarien werden aus Qualitätsattributen abgeleitet -> ISO 25010
  13. Qualitätsattribute festlegen -> Sehr konkret und von allen Stakeholdern verstanden
  14. FURPS Functionality (Funktionalität) Usability (Benutzbarkeit) Reliability (Zuverlässigkeit) Performance (Effizienz) Supportability (Änderbarkeit), sinngemäße Übersetzung Wartbarkeit
  15. Qualitätsattribute sinnvoll, aber nicht ausreichend, um sinnvolle Kommunikation zu ermöglichen. Hinleitung zu Empathie
  16. Methoden + Agilität -> führen nicht zum Ziel Qualitätsattribute machen Anforderungen konkret Bringt aber nur was mit Empathy driven development High performers haben Psychological safety!