SlideShare ist ein Scribd-Unternehmen logo
Best Practices
Code Review
Robin Sedlaczek
 Fairmas GmbH, Berlin 2013 2
Code Review Best Practices
Sensibilisierung
Maßnahmen/Vorgehen
Ziele
 Fairmas GmbH, Berlin 2013 3
Code Review Best Practices
Review-Technik
Was ist ein Code Review?
Analytische Qualitätssicherungsmaßnahme
Methode agiler Prozesse
Forschungsgegenstand
 Fairmas GmbH, Berlin 2013 4
Code Review Best Practices
Finden von Bugs
Warum Code Reviews?
Verbesserung der Code Qualität
Reduktion von Kosten
Lerneffekt + Teambildung
 Fairmas GmbH, Berlin 2013 5
Code Review Best Practices
Inspektionsrate
Wie schnell können wir Code reviewen (kLOC/h)?
Begriffe
Defektrate
Wie schnell können wir Fehler/Bugs finden (Anzahl/h)?
Defektdichte
Wie viele Fehler finden wir in einer bestimmten Menge Code (Anzahl/kLOC)?
 Fairmas GmbH, Berlin 2013 6
Code Review Best Practices
Nicht mehr als 200-400 LOC
Nicht länger als 60-90 Minuten
Best Practice #1
Quelle: http://smartbear.com/SmartBear/media/pdfs/WP-
CC-11-Best-Practices-of-Peer-Code-Review.pdf
 Fairmas GmbH, Berlin 2013 7
Code Review Best Practices
Geht langsam vor!
Qualität vor Quantität.
Best Practice #2
 Fairmas GmbH, Berlin 2013 8
Code Review Best Practices
Bereitet Euch vor!
Wählt vor dem Review Code aus, über den
Ihr reden möchtet und schaut Euch diesen
im Vorfeld an!
Best Practice #3
 Fairmas GmbH, Berlin 2013 9
Code Review Best Practices
Best Practice #4
Autorenvorbereitung!
Autor macht Notizen zum
ausgewählten Code.
Quelle: http://smartbear.com/SmartBear/media/pdfs/WP-
CC-11-Best-Practices-of-Peer-Code-Review.pdf
 Fairmas GmbH, Berlin 2013 10
Code Review Best Practices
Protokolliert Ergebnisse!
Notiert die gefundenen Probleme, um
daraus Aufgaben/Tickets abzuleiten.
Best Practice #5
 Fairmas GmbH, Berlin 2013 11
Code Review Best Practices
Macht Ergebnisse Messbar!
Z.B. Defektdichte. Protokolliert am Ende des
Reviews, wie viele Probleme Ihr gefunden
habt. Setzt Ziele für das nächste Meeting.
Best Practice #6
 Fairmas GmbH, Berlin 2013 12
Code Review Best Practices
Review des Reviews!
Prüft und notiert, wie viele Probleme aus
dem letzten Code Review beseitigt wurden.
Best Practice #7
 Fairmas GmbH, Berlin 2013 13
Code Review Best Practices
Erstellt eine Checkliste!
An Hand einer Checkliste können Themenbereiche
strukturiert abgearbeitet werden. Nutzt die
Checkliste als Protokoll (siehe #5).
Best Practice #8
 Fairmas GmbH, Berlin 2013 14
Code Review Best Practices
Defekte sind cool!
Gebt Euch gegenseitig das Gefühl, dass niemand
angegriffen wird! Im Gegenteil: gefundene Probleme
bedeuten, dass Ihr als Team großartig
zusammenarbeitet.
Best Practice #9

Weitere ähnliche Inhalte

Ähnlich wie Code Reviews - Best Practices

UI Testautomation in der Praxis ... von Lokalisierung bis Nachhaltigkeit (Cod...
UI Testautomation in der Praxis ... von Lokalisierung bis Nachhaltigkeit (Cod...UI Testautomation in der Praxis ... von Lokalisierung bis Nachhaltigkeit (Cod...
UI Testautomation in der Praxis ... von Lokalisierung bis Nachhaltigkeit (Cod...
Nico Orschel
 
Testing einer Angular App
Testing einer Angular AppTesting einer Angular App
Testing einer Angular App
Florian Bader
 
[ecspw2013] Session Executive 02: ecspand Vertragsmanagement
[ecspw2013] Session Executive 02: ecspand Vertragsmanagement[ecspw2013] Session Executive 02: ecspand Vertragsmanagement
[ecspw2013] Session Executive 02: ecspand Vertragsmanagement
d.velop international
 
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der ZukunftTest-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Christian Drumm
 
Clean code in ABAP
Clean code in ABAPClean code in ABAP
Clean code in ABAP
Cadaxo GmbH
 
[ecspw2013] Session Sales 02: ecspand Vertragsmanagement
[ecspw2013] Session Sales 02: ecspand Vertragsmanagement[ecspw2013] Session Sales 02: ecspand Vertragsmanagement
[ecspw2013] Session Sales 02: ecspand Vertragsmanagement
d.velop international
 
Agile Softwareentwicklung
Agile SoftwareentwicklungAgile Softwareentwicklung
Agile Softwareentwicklungshabazza
 
SEO Maintenance - SEODay 2015
SEO Maintenance - SEODay 2015SEO Maintenance - SEODay 2015
SEO Maintenance - SEODay 2015
takevalue Consulting GmbH
 
Kontinuierliche Überprüfung der Code-Qualität mit Scrutinizer
Kontinuierliche Überprüfung der Code-Qualität mit ScrutinizerKontinuierliche Überprüfung der Code-Qualität mit Scrutinizer
Kontinuierliche Überprüfung der Code-Qualität mit Scrutinizer
FATCHIP GmbH
 
Next Level Unit Testing
Next Level Unit TestingNext Level Unit Testing
Next Level Unit Testing
Daniel Lehner
 
Einführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungEinführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungChristian Baranowski
 
Test-Alternativen
Test-AlternativenTest-Alternativen
Test-Alternativen
Sebastian Dietrich
 
DAM-Auswahl: So finden Sie das richtige Digital Asset Management System
DAM-Auswahl: So finden Sie das richtige Digital Asset Management SystemDAM-Auswahl: So finden Sie das richtige Digital Asset Management System
DAM-Auswahl: So finden Sie das richtige Digital Asset Management System
Andreas Pörtner
 
CRM-Auswahl: So finden Sie die richtige CRM-Software
CRM-Auswahl: So finden Sie die richtige CRM-SoftwareCRM-Auswahl: So finden Sie die richtige CRM-Software
CRM-Auswahl: So finden Sie die richtige CRM-Software
Andreas Pörtner
 
UI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
UI Testautomation in der Praxis: Von Lokalisierung bis NachhaltigkeitUI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
UI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
Nico Orschel
 
Beyond Agile - when Freedom grows to Quality and Speed
Beyond Agile - when Freedom grows to Quality and SpeedBeyond Agile - when Freedom grows to Quality and Speed
Beyond Agile - when Freedom grows to Quality and Speed
Sebastian Bernt
 
Den PEP (Produktentwicklungsprozess) neu denken!
Den PEP (Produktentwicklungsprozess) neu denken!Den PEP (Produktentwicklungsprozess) neu denken!
Den PEP (Produktentwicklungsprozess) neu denken!
Christoph Schmiedinger
 
How to speed up Spring Integration Tests
How to speed up Spring Integration TestsHow to speed up Spring Integration Tests
How to speed up Spring Integration Tests
QAware GmbH
 
Erschließen Sie neue Geschäfts­­chancen durch optimierte, automatisierte und ...
Erschließen Sie neue Geschäfts­­chancen durch optimierte, automatisierte und ...Erschließen Sie neue Geschäfts­­chancen durch optimierte, automatisierte und ...
Erschließen Sie neue Geschäfts­­chancen durch optimierte, automatisierte und ...
Wolfgang Schmidt
 
FMK2015: Software Engineering Basics by Jan Rüdiger
FMK2015: Software Engineering Basics by Jan RüdigerFMK2015: Software Engineering Basics by Jan Rüdiger
FMK2015: Software Engineering Basics by Jan Rüdiger
Verein FM Konferenz
 

Ähnlich wie Code Reviews - Best Practices (20)

UI Testautomation in der Praxis ... von Lokalisierung bis Nachhaltigkeit (Cod...
UI Testautomation in der Praxis ... von Lokalisierung bis Nachhaltigkeit (Cod...UI Testautomation in der Praxis ... von Lokalisierung bis Nachhaltigkeit (Cod...
UI Testautomation in der Praxis ... von Lokalisierung bis Nachhaltigkeit (Cod...
 
Testing einer Angular App
Testing einer Angular AppTesting einer Angular App
Testing einer Angular App
 
[ecspw2013] Session Executive 02: ecspand Vertragsmanagement
[ecspw2013] Session Executive 02: ecspand Vertragsmanagement[ecspw2013] Session Executive 02: ecspand Vertragsmanagement
[ecspw2013] Session Executive 02: ecspand Vertragsmanagement
 
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der ZukunftTest-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
Test-getriebene Entwicklung in ABAP – Das Entwicklungsmodell der Zukunft
 
Clean code in ABAP
Clean code in ABAPClean code in ABAP
Clean code in ABAP
 
[ecspw2013] Session Sales 02: ecspand Vertragsmanagement
[ecspw2013] Session Sales 02: ecspand Vertragsmanagement[ecspw2013] Session Sales 02: ecspand Vertragsmanagement
[ecspw2013] Session Sales 02: ecspand Vertragsmanagement
 
Agile Softwareentwicklung
Agile SoftwareentwicklungAgile Softwareentwicklung
Agile Softwareentwicklung
 
SEO Maintenance - SEODay 2015
SEO Maintenance - SEODay 2015SEO Maintenance - SEODay 2015
SEO Maintenance - SEODay 2015
 
Kontinuierliche Überprüfung der Code-Qualität mit Scrutinizer
Kontinuierliche Überprüfung der Code-Qualität mit ScrutinizerKontinuierliche Überprüfung der Code-Qualität mit Scrutinizer
Kontinuierliche Überprüfung der Code-Qualität mit Scrutinizer
 
Next Level Unit Testing
Next Level Unit TestingNext Level Unit Testing
Next Level Unit Testing
 
Einführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungEinführung in die Software-Qualitätssicherung
Einführung in die Software-Qualitätssicherung
 
Test-Alternativen
Test-AlternativenTest-Alternativen
Test-Alternativen
 
DAM-Auswahl: So finden Sie das richtige Digital Asset Management System
DAM-Auswahl: So finden Sie das richtige Digital Asset Management SystemDAM-Auswahl: So finden Sie das richtige Digital Asset Management System
DAM-Auswahl: So finden Sie das richtige Digital Asset Management System
 
CRM-Auswahl: So finden Sie die richtige CRM-Software
CRM-Auswahl: So finden Sie die richtige CRM-SoftwareCRM-Auswahl: So finden Sie die richtige CRM-Software
CRM-Auswahl: So finden Sie die richtige CRM-Software
 
UI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
UI Testautomation in der Praxis: Von Lokalisierung bis NachhaltigkeitUI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
UI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
 
Beyond Agile - when Freedom grows to Quality and Speed
Beyond Agile - when Freedom grows to Quality and SpeedBeyond Agile - when Freedom grows to Quality and Speed
Beyond Agile - when Freedom grows to Quality and Speed
 
Den PEP (Produktentwicklungsprozess) neu denken!
Den PEP (Produktentwicklungsprozess) neu denken!Den PEP (Produktentwicklungsprozess) neu denken!
Den PEP (Produktentwicklungsprozess) neu denken!
 
How to speed up Spring Integration Tests
How to speed up Spring Integration TestsHow to speed up Spring Integration Tests
How to speed up Spring Integration Tests
 
Erschließen Sie neue Geschäfts­­chancen durch optimierte, automatisierte und ...
Erschließen Sie neue Geschäfts­­chancen durch optimierte, automatisierte und ...Erschließen Sie neue Geschäfts­­chancen durch optimierte, automatisierte und ...
Erschließen Sie neue Geschäfts­­chancen durch optimierte, automatisierte und ...
 
FMK2015: Software Engineering Basics by Jan Rüdiger
FMK2015: Software Engineering Basics by Jan RüdigerFMK2015: Software Engineering Basics by Jan Rüdiger
FMK2015: Software Engineering Basics by Jan Rüdiger
 

Mehr von Robin Sedlaczek

Developer Week 2019: .NET, .NET Core und .NET Standard - Ein Richtungskompass
Developer Week 2019: .NET, .NET Core und .NET Standard - Ein RichtungskompassDeveloper Week 2019: .NET, .NET Core und .NET Standard - Ein Richtungskompass
Developer Week 2019: .NET, .NET Core und .NET Standard - Ein Richtungskompass
Robin Sedlaczek
 
Developer Week 2019: Identity & Access Management in der Realitaet
Developer Week 2019: Identity & Access Management in der RealitaetDeveloper Week 2019: Identity & Access Management in der Realitaet
Developer Week 2019: Identity & Access Management in der Realitaet
Robin Sedlaczek
 
Developer Week 2019: Architekturen für .NET Core-Anwendungen
Developer Week 2019: Architekturen für .NET Core-AnwendungenDeveloper Week 2019: Architekturen für .NET Core-Anwendungen
Developer Week 2019: Architekturen für .NET Core-Anwendungen
Robin Sedlaczek
 
.NET Core Architecture (UI)
.NET Core Architecture (UI).NET Core Architecture (UI)
.NET Core Architecture (UI)
Robin Sedlaczek
 
Architekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenArchitekturen für .NET Core-Anwendungen
Architekturen für .NET Core-Anwendungen
Robin Sedlaczek
 
Azure Hybrid Connections
Azure Hybrid ConnectionsAzure Hybrid Connections
Azure Hybrid Connections
Robin Sedlaczek
 
Architectures for .Net Core Applications
Architectures for .Net Core ApplicationsArchitectures for .Net Core Applications
Architectures for .Net Core Applications
Robin Sedlaczek
 
Magdeburger Developer Days 2018 - Warum warten auf die IDE?
Magdeburger Developer Days 2018 - Warum warten auf die IDE?Magdeburger Developer Days 2018 - Warum warten auf die IDE?
Magdeburger Developer Days 2018 - Warum warten auf die IDE?
Robin Sedlaczek
 
Magdeburger Developer Days 2018 - Das perfekte Anwendungsmodell
Magdeburger Developer Days 2018 - Das perfekte AnwendungsmodellMagdeburger Developer Days 2018 - Das perfekte Anwendungsmodell
Magdeburger Developer Days 2018 - Das perfekte Anwendungsmodell
Robin Sedlaczek
 
Alleskönner: Azure Cosmos DB - Was kann der neue Datenbank-Service von Micros...
Alleskönner: Azure Cosmos DB - Was kann der neue Datenbank-Service von Micros...Alleskönner: Azure Cosmos DB - Was kann der neue Datenbank-Service von Micros...
Alleskönner: Azure Cosmos DB - Was kann der neue Datenbank-Service von Micros...
Robin Sedlaczek
 
BASTA! Spring 2018 - Architekturen für .NET Core-Anwendungen
BASTA! Spring 2018 - Architekturen für .NET Core-AnwendungenBASTA! Spring 2018 - Architekturen für .NET Core-Anwendungen
BASTA! Spring 2018 - Architekturen für .NET Core-Anwendungen
Robin Sedlaczek
 
GUI & DESIGN 2017 - Das perfekte Anwendungsmodell. UIs für jedes Device!
GUI & DESIGN 2017 - Das perfekte Anwendungsmodell. UIs für jedes Device!GUI & DESIGN 2017 - Das perfekte Anwendungsmodell. UIs für jedes Device!
GUI & DESIGN 2017 - Das perfekte Anwendungsmodell. UIs für jedes Device!
Robin Sedlaczek
 
DevOpenSpace 2017 - .NET, .NET Core & .NET Standard - Und ich mal wieder mitt...
DevOpenSpace 2017 - .NET, .NET Core & .NET Standard - Und ich mal wieder mitt...DevOpenSpace 2017 - .NET, .NET Core & .NET Standard - Und ich mal wieder mitt...
DevOpenSpace 2017 - .NET, .NET Core & .NET Standard - Und ich mal wieder mitt...
Robin Sedlaczek
 
BASTA! 2017 Jubiläumskonferenz - CUIs & The Microsoft Bot Framework
BASTA! 2017 Jubiläumskonferenz - CUIs & The Microsoft Bot FrameworkBASTA! 2017 Jubiläumskonferenz - CUIs & The Microsoft Bot Framework
BASTA! 2017 Jubiläumskonferenz - CUIs & The Microsoft Bot Framework
Robin Sedlaczek
 
BASTA! 2017 Jubiläumskonferenz - Warum warten auf die IDE!?
BASTA! 2017 Jubiläumskonferenz - Warum warten auf die IDE!?BASTA! 2017 Jubiläumskonferenz - Warum warten auf die IDE!?
BASTA! 2017 Jubiläumskonferenz - Warum warten auf die IDE!?
Robin Sedlaczek
 
ADC Core 2017 - Warum warten auf die IDE?
ADC Core 2017 - Warum warten auf die IDE?ADC Core 2017 - Warum warten auf die IDE?
ADC Core 2017 - Warum warten auf die IDE?
Robin Sedlaczek
 
DNUGBB 2017 - .Net, .Net Core, .Net Standard
DNUGBB 2017 - .Net, .Net Core, .Net StandardDNUGBB 2017 - .Net, .Net Core, .Net Standard
DNUGBB 2017 - .Net, .Net Core, .Net Standard
Robin Sedlaczek
 
.NET Summit 2017 - .NET, .NET Core, .NET Standard
.NET Summit 2017 - .NET, .NET Core, .NET Standard.NET Summit 2017 - .NET, .NET Core, .NET Standard
.NET Summit 2017 - .NET, .NET Core, .NET Standard
Robin Sedlaczek
 
BASTA! Spring 2017 - Warum warten auf die IDE? Direct Coding in der eigenen A...
BASTA! Spring 2017 - Warum warten auf die IDE? Direct Coding in der eigenen A...BASTA! Spring 2017 - Warum warten auf die IDE? Direct Coding in der eigenen A...
BASTA! Spring 2017 - Warum warten auf die IDE? Direct Coding in der eigenen A...
Robin Sedlaczek
 
BASTA! Spring 2017 - C# Script in Action
BASTA! Spring 2017 - C# Script in ActionBASTA! Spring 2017 - C# Script in Action
BASTA! Spring 2017 - C# Script in Action
Robin Sedlaczek
 

Mehr von Robin Sedlaczek (20)

Developer Week 2019: .NET, .NET Core und .NET Standard - Ein Richtungskompass
Developer Week 2019: .NET, .NET Core und .NET Standard - Ein RichtungskompassDeveloper Week 2019: .NET, .NET Core und .NET Standard - Ein Richtungskompass
Developer Week 2019: .NET, .NET Core und .NET Standard - Ein Richtungskompass
 
Developer Week 2019: Identity & Access Management in der Realitaet
Developer Week 2019: Identity & Access Management in der RealitaetDeveloper Week 2019: Identity & Access Management in der Realitaet
Developer Week 2019: Identity & Access Management in der Realitaet
 
Developer Week 2019: Architekturen für .NET Core-Anwendungen
Developer Week 2019: Architekturen für .NET Core-AnwendungenDeveloper Week 2019: Architekturen für .NET Core-Anwendungen
Developer Week 2019: Architekturen für .NET Core-Anwendungen
 
.NET Core Architecture (UI)
.NET Core Architecture (UI).NET Core Architecture (UI)
.NET Core Architecture (UI)
 
Architekturen für .NET Core-Anwendungen
Architekturen für .NET Core-AnwendungenArchitekturen für .NET Core-Anwendungen
Architekturen für .NET Core-Anwendungen
 
Azure Hybrid Connections
Azure Hybrid ConnectionsAzure Hybrid Connections
Azure Hybrid Connections
 
Architectures for .Net Core Applications
Architectures for .Net Core ApplicationsArchitectures for .Net Core Applications
Architectures for .Net Core Applications
 
Magdeburger Developer Days 2018 - Warum warten auf die IDE?
Magdeburger Developer Days 2018 - Warum warten auf die IDE?Magdeburger Developer Days 2018 - Warum warten auf die IDE?
Magdeburger Developer Days 2018 - Warum warten auf die IDE?
 
Magdeburger Developer Days 2018 - Das perfekte Anwendungsmodell
Magdeburger Developer Days 2018 - Das perfekte AnwendungsmodellMagdeburger Developer Days 2018 - Das perfekte Anwendungsmodell
Magdeburger Developer Days 2018 - Das perfekte Anwendungsmodell
 
Alleskönner: Azure Cosmos DB - Was kann der neue Datenbank-Service von Micros...
Alleskönner: Azure Cosmos DB - Was kann der neue Datenbank-Service von Micros...Alleskönner: Azure Cosmos DB - Was kann der neue Datenbank-Service von Micros...
Alleskönner: Azure Cosmos DB - Was kann der neue Datenbank-Service von Micros...
 
BASTA! Spring 2018 - Architekturen für .NET Core-Anwendungen
BASTA! Spring 2018 - Architekturen für .NET Core-AnwendungenBASTA! Spring 2018 - Architekturen für .NET Core-Anwendungen
BASTA! Spring 2018 - Architekturen für .NET Core-Anwendungen
 
GUI & DESIGN 2017 - Das perfekte Anwendungsmodell. UIs für jedes Device!
GUI & DESIGN 2017 - Das perfekte Anwendungsmodell. UIs für jedes Device!GUI & DESIGN 2017 - Das perfekte Anwendungsmodell. UIs für jedes Device!
GUI & DESIGN 2017 - Das perfekte Anwendungsmodell. UIs für jedes Device!
 
DevOpenSpace 2017 - .NET, .NET Core & .NET Standard - Und ich mal wieder mitt...
DevOpenSpace 2017 - .NET, .NET Core & .NET Standard - Und ich mal wieder mitt...DevOpenSpace 2017 - .NET, .NET Core & .NET Standard - Und ich mal wieder mitt...
DevOpenSpace 2017 - .NET, .NET Core & .NET Standard - Und ich mal wieder mitt...
 
BASTA! 2017 Jubiläumskonferenz - CUIs & The Microsoft Bot Framework
BASTA! 2017 Jubiläumskonferenz - CUIs & The Microsoft Bot FrameworkBASTA! 2017 Jubiläumskonferenz - CUIs & The Microsoft Bot Framework
BASTA! 2017 Jubiläumskonferenz - CUIs & The Microsoft Bot Framework
 
BASTA! 2017 Jubiläumskonferenz - Warum warten auf die IDE!?
BASTA! 2017 Jubiläumskonferenz - Warum warten auf die IDE!?BASTA! 2017 Jubiläumskonferenz - Warum warten auf die IDE!?
BASTA! 2017 Jubiläumskonferenz - Warum warten auf die IDE!?
 
ADC Core 2017 - Warum warten auf die IDE?
ADC Core 2017 - Warum warten auf die IDE?ADC Core 2017 - Warum warten auf die IDE?
ADC Core 2017 - Warum warten auf die IDE?
 
DNUGBB 2017 - .Net, .Net Core, .Net Standard
DNUGBB 2017 - .Net, .Net Core, .Net StandardDNUGBB 2017 - .Net, .Net Core, .Net Standard
DNUGBB 2017 - .Net, .Net Core, .Net Standard
 
.NET Summit 2017 - .NET, .NET Core, .NET Standard
.NET Summit 2017 - .NET, .NET Core, .NET Standard.NET Summit 2017 - .NET, .NET Core, .NET Standard
.NET Summit 2017 - .NET, .NET Core, .NET Standard
 
BASTA! Spring 2017 - Warum warten auf die IDE? Direct Coding in der eigenen A...
BASTA! Spring 2017 - Warum warten auf die IDE? Direct Coding in der eigenen A...BASTA! Spring 2017 - Warum warten auf die IDE? Direct Coding in der eigenen A...
BASTA! Spring 2017 - Warum warten auf die IDE? Direct Coding in der eigenen A...
 
BASTA! Spring 2017 - C# Script in Action
BASTA! Spring 2017 - C# Script in ActionBASTA! Spring 2017 - C# Script in Action
BASTA! Spring 2017 - C# Script in Action
 

Code Reviews - Best Practices

  • 2.  Fairmas GmbH, Berlin 2013 2 Code Review Best Practices Sensibilisierung Maßnahmen/Vorgehen Ziele
  • 3.  Fairmas GmbH, Berlin 2013 3 Code Review Best Practices Review-Technik Was ist ein Code Review? Analytische Qualitätssicherungsmaßnahme Methode agiler Prozesse Forschungsgegenstand
  • 4.  Fairmas GmbH, Berlin 2013 4 Code Review Best Practices Finden von Bugs Warum Code Reviews? Verbesserung der Code Qualität Reduktion von Kosten Lerneffekt + Teambildung
  • 5.  Fairmas GmbH, Berlin 2013 5 Code Review Best Practices Inspektionsrate Wie schnell können wir Code reviewen (kLOC/h)? Begriffe Defektrate Wie schnell können wir Fehler/Bugs finden (Anzahl/h)? Defektdichte Wie viele Fehler finden wir in einer bestimmten Menge Code (Anzahl/kLOC)?
  • 6.  Fairmas GmbH, Berlin 2013 6 Code Review Best Practices Nicht mehr als 200-400 LOC Nicht länger als 60-90 Minuten Best Practice #1 Quelle: http://smartbear.com/SmartBear/media/pdfs/WP- CC-11-Best-Practices-of-Peer-Code-Review.pdf
  • 7.  Fairmas GmbH, Berlin 2013 7 Code Review Best Practices Geht langsam vor! Qualität vor Quantität. Best Practice #2
  • 8.  Fairmas GmbH, Berlin 2013 8 Code Review Best Practices Bereitet Euch vor! Wählt vor dem Review Code aus, über den Ihr reden möchtet und schaut Euch diesen im Vorfeld an! Best Practice #3
  • 9.  Fairmas GmbH, Berlin 2013 9 Code Review Best Practices Best Practice #4 Autorenvorbereitung! Autor macht Notizen zum ausgewählten Code. Quelle: http://smartbear.com/SmartBear/media/pdfs/WP- CC-11-Best-Practices-of-Peer-Code-Review.pdf
  • 10.  Fairmas GmbH, Berlin 2013 10 Code Review Best Practices Protokolliert Ergebnisse! Notiert die gefundenen Probleme, um daraus Aufgaben/Tickets abzuleiten. Best Practice #5
  • 11.  Fairmas GmbH, Berlin 2013 11 Code Review Best Practices Macht Ergebnisse Messbar! Z.B. Defektdichte. Protokolliert am Ende des Reviews, wie viele Probleme Ihr gefunden habt. Setzt Ziele für das nächste Meeting. Best Practice #6
  • 12.  Fairmas GmbH, Berlin 2013 12 Code Review Best Practices Review des Reviews! Prüft und notiert, wie viele Probleme aus dem letzten Code Review beseitigt wurden. Best Practice #7
  • 13.  Fairmas GmbH, Berlin 2013 13 Code Review Best Practices Erstellt eine Checkliste! An Hand einer Checkliste können Themenbereiche strukturiert abgearbeitet werden. Nutzt die Checkliste als Protokoll (siehe #5). Best Practice #8
  • 14.  Fairmas GmbH, Berlin 2013 14 Code Review Best Practices Defekte sind cool! Gebt Euch gegenseitig das Gefühl, dass niemand angegriffen wird! Im Gegenteil: gefundene Probleme bedeuten, dass Ihr als Team großartig zusammenarbeitet. Best Practice #9

Hinweis der Redaktion

  1. Statische Analysemethode Schreibtischtest Architektur-Review Inspektion Walkthrough XP + Pair Programming Sehr viele Studien (Cisco – 2000 Reviews mit 50 Entwickler)
  2. Reduktion der zu erwartenden Fehler um 20% bis 50% Architektur/Design Reviews zwischen 30% und 60% Erhöhung der Wartbarkeit
  3. Reduktion der zu erwartenden Fehler um 20% bis 50% Architektur/Design Reviews zwischen 30% und 60% Erhöhung der Wartbarkeit
  4. 7 von 10 Fehlern können gefunden werden
  5. Während des Reviews nicht erst Code lesen
  6. separates Dokument Kommentare leiten durch Code und Review Gründe und Methoden hinter dem Code Anderer Effekt: weniger Bugs im Vorfeld
  7. Code Conventions/Guidelines? Code Documentation? Invalide Werte für Parameter? Unit Tests? Dann kann gemessen werden, ob die Reviews etwas bewirken.