SlideShare a Scribd company logo
1 of 14
Download to read offline
Code review z korzyściami
dla recenzenta i recenzowanego
Krzysztof Ożóg - Codesushi CTO
Coś o mnie...
● Od ponad dekady twórca aplikacji webowych
● Uzależniony od czystego kodu
● Lider techniczny w Codesushi
● CodeReviewer z zamiłowania
● Filozof i Developer w jednym…
co gorsze, jest to udokumentowane dwoma dyplomami
Agenda:
1) 2 słowa na temat code review ogólnie
2) Codereview jako narzędzie wspomagające
tworzenie zespołu
3) Co jest nie tak z odhumanizowanym Codereview
4) Kilka wskazówek, które warto wykorzystać podczas
Codereview
5) Jak poradzić sobie z negatywnym przeglądem kodu
Dwa Słowa na temat code review
Przypomnienie oczywistej oczywistości czyli odpowiedź na pytanie co jest naszym celem...
Teoria
● W teorii wszystko jest fajnie
○ Ktoś czyta nasz kod
○ Ten Ktoś daje komentarze
○ My naprawiamy / dyskutujemy
○ …
○ Profit!
Rzeczywistość
● Rzeczywistość jest inna:
○ Starcie szkół (ile spacji, PSR są fajne lub fe, i tak dalej)
○ Starcie charakterów
○ Konflikty i masakra
A można inaczej ...
Code review jako narzędzie
do budowania zespołu
Trochę nieintuicyjne - na zdrowy rozsądek wprowadza napięcia i polaryzację, ale:
● Wymusza komunikację pomiędzy członkami zespołu
● Umożliwia transfer wiedzy
● Wymusza burzę mózgów
● Pozwala zakwestionować własne przekonania i schematy myślenia
Co jest nie tak z odhumanizowanym Code Review
Co to jest odhumanizowane code review:
● Brak realnej (face to face) interakcji
● Nieświadome pastwienie - zwłaszcza jeśli mamy sytuację jeden na wszystkich
○ Zwłaszcza jeśli mamy do czynienia z CR osoby zdalnej, lub zewnętrznej
● Skupienie się na sobie, a nie na osiągnięciu celu
Humanizowanie Code Review
● Porzucenie narzędzi na rzecz interakcji
○ A co ze zdalnymi?
● Przypomnienie co jest naszym wspólnym celem
(hint, to nie jest wykazanie swojej wyższości)
● Należy pamiętać, że to kod podlega ocenie, a nie osoba
Kilka wskazówek
● Skupmy się przede wszystkim na kodzie
● Starajmy się unikać mania racji
○ Lintery i narzędzia do analizy
kodu nie mają uczuć
● Starajmy się nie generalizować
○ Stwierdzenia typu zawsze rób X
○ “Bo tam jesteś juniorem to …”
● Unikajmy zgadywanek
○ Czyli pytań w stylu “Jakbyś zrobił to lepiej?”
● Starajmy się nie stresować siebie nawzajem
Jak poradzić sobie
z negatywnym przeglądem kodu?!
● Używaj lintera
● Zgadywanki
○ “Hm, jak można było by to ulepszyć?”
■ Oceniający wie i bawi się w kotka i myszkę
■ Oceniający nie wie ale coś mu tu nie gra i chce podjąć dyskusję
● Ogólniki (Zawsze rób X, Nigdy nie rób Y)
○ Poprosić o przykład, ale w kontekście omawianego kodu
● Szufladkowanie “Bo ty junior jesteś to nie pojmiesz {mądre słowo}”
○ Co zrobić aby mój kod był bardziej {mądre słowo}
● Stres
○ Poinformować Recenzującego o potrzebie 5 min przerwy bo się
(kawa|herbata|Yerba|Kokaina) skończyła
Podsumowanie
● Recenzujący i Recenzowany powinni pamiętać że mają wspólny cel:
dostarczenie czegoś
● Recenzujący powinien pamiętać, że ocenia kod a nie osobę
● Recenzowany powinien angażować się w proces
● Code review nie powinno sprowadzać się do bycia ludzkim linterem
Dziękuję za uwagę!
Pytania?
W razie czego, tak najłatwiej będzie mnie znaleźć:
/krzysztofozog
chris@codesushi.co

More Related Content

More from Krzysztof (Chris) Ozog

Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi
Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi
Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi Krzysztof (Chris) Ozog
 
21st century problem… the cost of it department!
21st century problem… the cost of it department!21st century problem… the cost of it department!
21st century problem… the cost of it department!Krzysztof (Chris) Ozog
 
Why I stopped worrying and loved PHP | Codesushi - Krakow 2017
Why I stopped worrying and loved PHP | Codesushi - Krakow 2017Why I stopped worrying and loved PHP | Codesushi - Krakow 2017
Why I stopped worrying and loved PHP | Codesushi - Krakow 2017Krzysztof (Chris) Ozog
 
Parallel development of Web Apps | Codesushi - Gliwice 2017
Parallel development of Web Apps | Codesushi - Gliwice  2017Parallel development of Web Apps | Codesushi - Gliwice  2017
Parallel development of Web Apps | Codesushi - Gliwice 2017Krzysztof (Chris) Ozog
 
How to create a WordPress not understanding WordPress, so more on the headles...
How to create a WordPress not understanding WordPress, so more on the headles...How to create a WordPress not understanding WordPress, so more on the headles...
How to create a WordPress not understanding WordPress, so more on the headles...Krzysztof (Chris) Ozog
 
Asynchronous PHP | Codesushi - Warsaw 2017
Asynchronous PHP | Codesushi - Warsaw 2017Asynchronous PHP | Codesushi - Warsaw 2017
Asynchronous PHP | Codesushi - Warsaw 2017Krzysztof (Chris) Ozog
 
The automation of the process of caring for the quality of the code in PHP an...
The automation of the process of caring for the quality of the code in PHP an...The automation of the process of caring for the quality of the code in PHP an...
The automation of the process of caring for the quality of the code in PHP an...Krzysztof (Chris) Ozog
 
How to protect your code against a destructive influence of client | Codesush...
How to protect your code against a destructive influence of client | Codesush...How to protect your code against a destructive influence of client | Codesush...
How to protect your code against a destructive influence of client | Codesush...Krzysztof (Chris) Ozog
 
Headless approach and acquia - case study | Codesushi
Headless approach and acquia  - case study | CodesushiHeadless approach and acquia  - case study | Codesushi
Headless approach and acquia - case study | CodesushiKrzysztof (Chris) Ozog
 
Równoległy rozwój Aplikacji Webowych | Codesushi
Równoległy rozwój Aplikacji Webowych | CodesushiRównoległy rozwój Aplikacji Webowych | Codesushi
Równoległy rozwój Aplikacji Webowych | CodesushiKrzysztof (Chris) Ozog
 
Why I stopped worrying and LOVED PHP | Codesushi
Why I stopped  worrying and  LOVED PHP | CodesushiWhy I stopped  worrying and  LOVED PHP | Codesushi
Why I stopped worrying and LOVED PHP | CodesushiKrzysztof (Chris) Ozog
 
Speed up your zombies! - Bootstrap dev environment in 5 minutes!
Speed up your zombies! - Bootstrap dev environment in 5 minutes!Speed up your zombies! - Bootstrap dev environment in 5 minutes!
Speed up your zombies! - Bootstrap dev environment in 5 minutes!Krzysztof (Chris) Ozog
 

More from Krzysztof (Chris) Ozog (15)

Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi
Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi
Code Camp NYC 2017 - How to deal with everything... | Chris Ozog - Codesushi
 
21st century problem… the cost of it department!
21st century problem… the cost of it department!21st century problem… the cost of it department!
21st century problem… the cost of it department!
 
Why I stopped worrying and loved PHP | Codesushi - Krakow 2017
Why I stopped worrying and loved PHP | Codesushi - Krakow 2017Why I stopped worrying and loved PHP | Codesushi - Krakow 2017
Why I stopped worrying and loved PHP | Codesushi - Krakow 2017
 
Parallel development of Web Apps | Codesushi - Gliwice 2017
Parallel development of Web Apps | Codesushi - Gliwice  2017Parallel development of Web Apps | Codesushi - Gliwice  2017
Parallel development of Web Apps | Codesushi - Gliwice 2017
 
How to create a WordPress not understanding WordPress, so more on the headles...
How to create a WordPress not understanding WordPress, so more on the headles...How to create a WordPress not understanding WordPress, so more on the headles...
How to create a WordPress not understanding WordPress, so more on the headles...
 
Asynchronous PHP | Codesushi - Warsaw 2017
Asynchronous PHP | Codesushi - Warsaw 2017Asynchronous PHP | Codesushi - Warsaw 2017
Asynchronous PHP | Codesushi - Warsaw 2017
 
The automation of the process of caring for the quality of the code in PHP an...
The automation of the process of caring for the quality of the code in PHP an...The automation of the process of caring for the quality of the code in PHP an...
The automation of the process of caring for the quality of the code in PHP an...
 
How to protect your code against a destructive influence of client | Codesush...
How to protect your code against a destructive influence of client | Codesush...How to protect your code against a destructive influence of client | Codesush...
How to protect your code against a destructive influence of client | Codesush...
 
Migration from drupal 7 to drupal 8
Migration from drupal 7 to drupal 8Migration from drupal 7 to drupal 8
Migration from drupal 7 to drupal 8
 
Headless approach and acquia - case study | Codesushi
Headless approach and acquia  - case study | CodesushiHeadless approach and acquia  - case study | Codesushi
Headless approach and acquia - case study | Codesushi
 
Asynchroniczny PHP | Codesushi
Asynchroniczny PHP | CodesushiAsynchroniczny PHP | Codesushi
Asynchroniczny PHP | Codesushi
 
Równoległy rozwój Aplikacji Webowych | Codesushi
Równoległy rozwój Aplikacji Webowych | CodesushiRównoległy rozwój Aplikacji Webowych | Codesushi
Równoległy rozwój Aplikacji Webowych | Codesushi
 
Why I stopped worrying and LOVED PHP | Codesushi
Why I stopped  worrying and  LOVED PHP | CodesushiWhy I stopped  worrying and  LOVED PHP | Codesushi
Why I stopped worrying and LOVED PHP | Codesushi
 
Inner Symfony’s Daemons
 Inner Symfony’s Daemons Inner Symfony’s Daemons
Inner Symfony’s Daemons
 
Speed up your zombies! - Bootstrap dev environment in 5 minutes!
Speed up your zombies! - Bootstrap dev environment in 5 minutes!Speed up your zombies! - Bootstrap dev environment in 5 minutes!
Speed up your zombies! - Bootstrap dev environment in 5 minutes!
 

Codesushi: Code review z korzyściami dla recenzenta i recenzowanego

  • 1. Code review z korzyściami dla recenzenta i recenzowanego Krzysztof Ożóg - Codesushi CTO
  • 2. Coś o mnie... ● Od ponad dekady twórca aplikacji webowych ● Uzależniony od czystego kodu ● Lider techniczny w Codesushi ● CodeReviewer z zamiłowania ● Filozof i Developer w jednym… co gorsze, jest to udokumentowane dwoma dyplomami
  • 3. Agenda: 1) 2 słowa na temat code review ogólnie 2) Codereview jako narzędzie wspomagające tworzenie zespołu 3) Co jest nie tak z odhumanizowanym Codereview 4) Kilka wskazówek, które warto wykorzystać podczas Codereview 5) Jak poradzić sobie z negatywnym przeglądem kodu
  • 4. Dwa Słowa na temat code review Przypomnienie oczywistej oczywistości czyli odpowiedź na pytanie co jest naszym celem...
  • 5. Teoria ● W teorii wszystko jest fajnie ○ Ktoś czyta nasz kod ○ Ten Ktoś daje komentarze ○ My naprawiamy / dyskutujemy ○ … ○ Profit!
  • 6. Rzeczywistość ● Rzeczywistość jest inna: ○ Starcie szkół (ile spacji, PSR są fajne lub fe, i tak dalej) ○ Starcie charakterów ○ Konflikty i masakra A można inaczej ...
  • 7. Code review jako narzędzie do budowania zespołu Trochę nieintuicyjne - na zdrowy rozsądek wprowadza napięcia i polaryzację, ale: ● Wymusza komunikację pomiędzy członkami zespołu ● Umożliwia transfer wiedzy ● Wymusza burzę mózgów ● Pozwala zakwestionować własne przekonania i schematy myślenia
  • 8. Co jest nie tak z odhumanizowanym Code Review Co to jest odhumanizowane code review: ● Brak realnej (face to face) interakcji ● Nieświadome pastwienie - zwłaszcza jeśli mamy sytuację jeden na wszystkich ○ Zwłaszcza jeśli mamy do czynienia z CR osoby zdalnej, lub zewnętrznej ● Skupienie się na sobie, a nie na osiągnięciu celu
  • 9.
  • 10. Humanizowanie Code Review ● Porzucenie narzędzi na rzecz interakcji ○ A co ze zdalnymi? ● Przypomnienie co jest naszym wspólnym celem (hint, to nie jest wykazanie swojej wyższości) ● Należy pamiętać, że to kod podlega ocenie, a nie osoba
  • 11. Kilka wskazówek ● Skupmy się przede wszystkim na kodzie ● Starajmy się unikać mania racji ○ Lintery i narzędzia do analizy kodu nie mają uczuć ● Starajmy się nie generalizować ○ Stwierdzenia typu zawsze rób X ○ “Bo tam jesteś juniorem to …” ● Unikajmy zgadywanek ○ Czyli pytań w stylu “Jakbyś zrobił to lepiej?” ● Starajmy się nie stresować siebie nawzajem
  • 12. Jak poradzić sobie z negatywnym przeglądem kodu?! ● Używaj lintera ● Zgadywanki ○ “Hm, jak można było by to ulepszyć?” ■ Oceniający wie i bawi się w kotka i myszkę ■ Oceniający nie wie ale coś mu tu nie gra i chce podjąć dyskusję ● Ogólniki (Zawsze rób X, Nigdy nie rób Y) ○ Poprosić o przykład, ale w kontekście omawianego kodu ● Szufladkowanie “Bo ty junior jesteś to nie pojmiesz {mądre słowo}” ○ Co zrobić aby mój kod był bardziej {mądre słowo} ● Stres ○ Poinformować Recenzującego o potrzebie 5 min przerwy bo się (kawa|herbata|Yerba|Kokaina) skończyła
  • 13. Podsumowanie ● Recenzujący i Recenzowany powinni pamiętać że mają wspólny cel: dostarczenie czegoś ● Recenzujący powinien pamiętać, że ocenia kod a nie osobę ● Recenzowany powinien angażować się w proces ● Code review nie powinno sprowadzać się do bycia ludzkim linterem
  • 14. Dziękuję za uwagę! Pytania? W razie czego, tak najłatwiej będzie mnie znaleźć: /krzysztofozog chris@codesushi.co