SlideShare ist ein Scribd-Unternehmen logo

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

Johannes Dienst
Johannes Dienst
Johannes DienstSoftwarearchitect / Clean Coder um DB Systel GmbH

Die moderne Softwareentwicklung hat eine ganze Reihe von Techniken parat, um hohe Qualität zu erzeugen. Kein seriöses Softwareunternehmen würde heutzutage ohne Versionskontrollsystem, Continuous Integration, Unit-Tests etc. pp. arbeiten. Bewegungen wie Clean Code geben Entwicklern Regeln an die Hand, wie Code handwerklich sauber produziert werden kann. Diese Regeln sind einfach einzuhalten, werden aber oft missachtet. Wie kommt es dann, dass unter vorgehaltener Hand viele Teams über Qualitätsprobleme klagen? Das Problem scheint eine andere Ursache zu haben. Der Vortrag beleuchtet das Thema Softwarequalität von verschiedenen Blickwinkeln. Insbesondere werden die gängigen Herangehensweisen zur Lösung der Qualitätsprobleme wie agile Softwareentwicklung kritisch betrachtet. Schließlich wird ein Lösungsvorschlag mit Empathy Driven Development in Kombination mit szenariobasierter Softwarearchitektur vorgestellt.

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

1 von 35
Downloaden Sie, um offline zu lesen
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?
Anzeige

Recomendados

Ist das Softwarearchitektur oder kann das weg?
Ist das Softwarearchitektur oder kann das weg?Ist das Softwarearchitektur oder kann das weg?
Ist das Softwarearchitektur oder kann das weg?Johannes Dienst
 
Everything as Code: Pipeline, Infrastructure, Configuration, Documentation
Everything as Code: Pipeline, Infrastructure, Configuration, DocumentationEverything as Code: Pipeline, Infrastructure, Configuration, Documentation
Everything as Code: Pipeline, Infrastructure, Configuration, DocumentationJohannes Dienst
 
Dev Day Johannes Dienst.pdf
Dev Day Johannes Dienst.pdfDev Day Johannes Dienst.pdf
Dev Day Johannes Dienst.pdfCarolinaMatthies
 
Rock Solid Software Architecture with ADRs, arc42 and Microsites
Rock Solid Software Architecture with ADRs, arc42 and MicrositesRock Solid Software Architecture with ADRs, arc42 and Microsites
Rock Solid Software Architecture with ADRs, arc42 and MicrositesJohannes Dienst
 
DevOps im Konzern - Autonomie vs Betriebssicherheit (Continuous Lifecycle)
DevOps im Konzern - Autonomie vs Betriebssicherheit (Continuous Lifecycle)DevOps im Konzern - Autonomie vs Betriebssicherheit (Continuous Lifecycle)
DevOps im Konzern - Autonomie vs Betriebssicherheit (Continuous Lifecycle)Johannes Dienst
 
DevOps im Konzern: Autonomie vs Betriebssicherheit
DevOps im Konzern: Autonomie vs BetriebssicherheitDevOps im Konzern: Autonomie vs Betriebssicherheit
DevOps im Konzern: Autonomie vs BetriebssicherheitJohannes Dienst
 
Developer Relations Metrics - A Humble Guide
Developer Relations Metrics - A Humble GuideDeveloper Relations Metrics - A Humble Guide
Developer Relations Metrics - A Humble GuideJohannes Dienst
 
Real Cross-Platform Workflow UI Automation_JohannesDienst.pdf
Real Cross-Platform Workflow UI Automation_JohannesDienst.pdfReal Cross-Platform Workflow UI Automation_JohannesDienst.pdf
Real Cross-Platform Workflow UI Automation_JohannesDienst.pdfJohannes Dienst
 

Más contenido relacionado

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
 
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 (18)

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
 
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!