SlideShare a Scribd company logo
1 of 31
Download to read offline
Efektywne przeglądy
kodu w zespołach agile




Wojciech Seliga
Spartez Co-founder

Atlassian JIRA Development Team Lead

                                                                                              Tag cloud generated with
        Licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.    http://www.wordle.net/
Plan to zło
Planowanie to dobro

           Dlaczego
           przeglądy kodu
           Mity
           Pułapki
           Efektywność
           Q&A




                       Picture courtesy of Helico
                               CC BY 2.0
Uwaga!

  Prezentacja zawiera lokowanie :)

      Nie jestem obiektywny.
  Reprezentuję firmy sprzedające
   narzędzie do przeglądu kodu.

          Z drugiej strony:
Stosuję przeglądy kodu codziennie ...
Co
przeglądy kodu
mają wspólnego
   z Agile?
Picture courtesy of Cat and Girl
        CC A-NC-SA 2.5
Wdrażanie nowych ludzi do
istniejącego kodu źródłowego

 styl/konwencje

   design
                  reużywalne komponenty

 APIs
                   zasady, praktyki, triki

                                 Picture courtesy of mil8 / CC BY 2.0
Mentorowanie junior developerów


                                          Bezinwazyjne
                                          Asynchroniczne
                                          W dogodnej chwili
                                          Powodujące mniej frustracji i
                                          rozproszania się dla senior
                                          developerów



Picture courtesy of eddidit / CC BY 2.0
Dzielenie się dobrymi
praktykami inżynierskimi
Picture courtesy of Jordan Miller / CC 2.5
Photo Courtesy of U.S. Army
Picture courtesy of tinyfroglet / CC 3.0
Trudne przygotowanie
           wybór kodu
           zorganizowanie osób
           do przeglądu
           znalezienie
           pasującego terminu
           rezerwacja sali
           konferencyjnej
           przygotowanie
           wydruków ...

               Picture courtesy of jfdervin / CC BY-SA 2.0
Kolejny przeszkadzający
obowiązek
 więcej spotkań

              oderwanie się od pracy



                  rozproszenie uwagi
Pożeracz czasu
dużo kodu do czytania wciąż i wciąż

     „spanie” na spotkaniach

marnowanie czasu na proste rzeczy:
konstrukcje powodujące ostrzeżenia
       konwencję kodowania
           nazewnictwo
         pokrycie testami
                         Picture courtesy of gadl / CC BY-SA 2.0
Ryzyko animozji
Brak konkretnych
mierzalnych efektów




               Picture courtesy of aussiegall / CC BY 2.0
Efektywne przeglądy kodu
Lekkie – prosty i elastyczny proces

Asynchroniczne

Wspierane przez narzędzia

Różnicowe gdzie tylko możliwe

Przejrzyste i trwałe, dostępne dla każdego

Przyjemne dla developerów – proste, szybkie
Prosty Proces

                            Dyskusja:
 Zakres przeglądu
                        Komentarze, Uwagi,     Króciutkie
    recenzenci
                           Odpowiedzi        Podsumowanie
termin zakończenia
                            Poprawki




TODO – Kodowanie – Przegląd – QA – DONE

Limit Kanbanowy jest przydatny
Narzędzia
Proste i szybkie przeglądy




   Im mniejsze przeglądy tym lepiej
 Małe częściej lepsze niż duże rzadziej
Rozsądna liczba recenzentów
                        30


                        25
Czas poświęcony [min]




                        20


                        15


                        10


                         5


                         0
                             1   2      3           4     5   6

                                     Liczba recenzentów
Rozsądna liczba recenzentów
                                      30
Liczba znalezionych błędów na 1KLOC




                                      25


                                      20


                                      15


                                      10


                                       5


                                       0
                                           1   2   3     4      5       6   7   8   9

                                                       Liczba recenzentów
Szybkie i przyjemne
          przeglądy kodu

deadline na jutro
niewielu recenzentów
z komentarzami od
autora
post-commit zamiast
pre-commit


                       Picture courtesy of Svadilfari / CC BY-ND 2.0
Niektóre zasady zwinnych
                    przeglądów kodu
                                          każdy może dołączyć i
                                          recenzować kod
                                          każdy może rozszerzać
                                          zakres przeglądu
                                          każdy może dołączać inne
                                          osoby
                                          wszystko jest ogólnie-
                                          dostępne wewnątrz firmy
                                          chodzi o naukę, a nie o
                                          oskarżanie się czy wojny
Picture courtesy of PantoDX / CC BY 2.0
Przeglądy kodu w Agile – niezrozumienie
 fanatyczne poszukiwanie
 błędów
 fałszywe przekonanie o
 braku błędów w
 sprawdzonym kodzie
 śledzenie losu każdego
 pojedynczego komentarza
 czy uwagi do kodu
 oczekiwanie twardych
 metryk
                           Picture courtesy of Juria Yoshikawa / CC BY-SA 2.0
Największe początkowe
           zagrożenia

Sztywny proces
Metryki
Micro-management
Zbyt duży narzut



Zespoły jednak ewoluują...
                             Picture courtesy of tms. / CC BY-NC-ND 2.0
Niespodziewane Korzyści
Znaczne ułatwienie przy
zespołach rozproszonych
geograficznie

Współpraca przy
szczegółowym projektowaniu

Łatwiejsze do wdrożenia
niż pair-programming

Różnica stref czasowych
może być korzystna

Baza Wiedzy                  Picture courtesy of david.nathan.cox / CC BY 2.0
Przeglądy Kodu a Pair Programming

         weryfikacja          tworzenie
      później       dzielenie się     teraz
    ”represja”         wiedzą      ”prewencja”
  asynchroniczne      wspólna     synchroniczny
                 odpowiedzialność
   rozproszone                    fizycznie razem
                   lepsza jakość
    niższa bariera                wyższa bariera
      ekstensywne    współpraca intensywny

          trwała               nietrwała
Picture courtesy of Kevin Dooley / CC BY 2
Q&A




      Picture courtesy of Mykl Roventine / CC BY 2.0
Dziękuję za uwagę


       Wojciech Seliga
        Twitter: @wseliga
        wojciech.seliga@spartez.com

More Related Content

Viewers also liked

5-10-15 years of Java developer career - Warszawa JUG 2015
5-10-15 years of Java developer career - Warszawa JUG 20155-10-15 years of Java developer career - Warszawa JUG 2015
5-10-15 years of Java developer career - Warszawa JUG 2015Wojciech Seliga
 
Spartez Open Day March 13th 2015
Spartez Open Day March 13th 2015Spartez Open Day March 13th 2015
Spartez Open Day March 13th 2015Wojciech Seliga
 
Developer plantations - colonialism of XXI century (GeeCON 2017)
Developer plantations - colonialism of XXI century (GeeCON 2017)Developer plantations - colonialism of XXI century (GeeCON 2017)
Developer plantations - colonialism of XXI century (GeeCON 2017)Wojciech Seliga
 
Ten lessons I painfully learnt while moving from software developer
to entrep...
Ten lessons I painfully learnt while moving from software developer
to entrep...Ten lessons I painfully learnt while moving from software developer
to entrep...
Ten lessons I painfully learnt while moving from software developer
to entrep...Wojciech Seliga
 
Escaping Test Hell - ACCU 2014
Escaping Test Hell - ACCU 2014Escaping Test Hell - ACCU 2014
Escaping Test Hell - ACCU 2014Wojciech Seliga
 
Software Developer Career Unplugged - GeeCon 2013
Software Developer Career Unplugged - GeeCon 2013Software Developer Career Unplugged - GeeCon 2013
Software Developer Career Unplugged - GeeCon 2013Wojciech Seliga
 
AtlasCamp 2012 - Testing JIRA plugins smarter with TestKit
AtlasCamp 2012 - Testing JIRA plugins smarter with TestKitAtlasCamp 2012 - Testing JIRA plugins smarter with TestKit
AtlasCamp 2012 - Testing JIRA plugins smarter with TestKitWojciech Seliga
 

Viewers also liked (8)

5-10-15 years of Java developer career - Warszawa JUG 2015
5-10-15 years of Java developer career - Warszawa JUG 20155-10-15 years of Java developer career - Warszawa JUG 2015
5-10-15 years of Java developer career - Warszawa JUG 2015
 
Spartez Open Day March 13th 2015
Spartez Open Day March 13th 2015Spartez Open Day March 13th 2015
Spartez Open Day March 13th 2015
 
Social Hacking
Social HackingSocial Hacking
Social Hacking
 
Developer plantations - colonialism of XXI century (GeeCON 2017)
Developer plantations - colonialism of XXI century (GeeCON 2017)Developer plantations - colonialism of XXI century (GeeCON 2017)
Developer plantations - colonialism of XXI century (GeeCON 2017)
 
Ten lessons I painfully learnt while moving from software developer
to entrep...
Ten lessons I painfully learnt while moving from software developer
to entrep...Ten lessons I painfully learnt while moving from software developer
to entrep...
Ten lessons I painfully learnt while moving from software developer
to entrep...
 
Escaping Test Hell - ACCU 2014
Escaping Test Hell - ACCU 2014Escaping Test Hell - ACCU 2014
Escaping Test Hell - ACCU 2014
 
Software Developer Career Unplugged - GeeCon 2013
Software Developer Career Unplugged - GeeCon 2013Software Developer Career Unplugged - GeeCon 2013
Software Developer Career Unplugged - GeeCon 2013
 
AtlasCamp 2012 - Testing JIRA plugins smarter with TestKit
AtlasCamp 2012 - Testing JIRA plugins smarter with TestKitAtlasCamp 2012 - Testing JIRA plugins smarter with TestKit
AtlasCamp 2012 - Testing JIRA plugins smarter with TestKit
 

Similar to InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]

Code Review budujące relacje w zespole
Code Review budujące relacje w zespoleCode Review budujące relacje w zespole
Code Review budujące relacje w zespoleMaciej Mortek
 
Konrad Gadzina: Test-Driven Gamedev - testy automatyczne a tworzenie gier
Konrad Gadzina: Test-Driven Gamedev - testy automatyczne a tworzenie gierKonrad Gadzina: Test-Driven Gamedev - testy automatyczne a tworzenie gier
Konrad Gadzina: Test-Driven Gamedev - testy automatyczne a tworzenie gierGameDesire Academy
 
Konfiguracja GitLab CI/CD pipelines od podstaw
Konfiguracja GitLab CI/CD pipelines od podstawKonfiguracja GitLab CI/CD pipelines od podstaw
Konfiguracja GitLab CI/CD pipelines od podstawBrainhub
 
TGT#15 - Piramida testów w praktyce (notatki z dyskusji)
TGT#15 - Piramida testów w praktyce (notatki z dyskusji)TGT#15 - Piramida testów w praktyce (notatki z dyskusji)
TGT#15 - Piramida testów w praktyce (notatki z dyskusji)Trójmiejska Grupa Testerska
 
[QE 2017] Piotr Marczydło - Wdrażanie na wulkanie, czyli CI w świecie, który ...
[QE 2017] Piotr Marczydło - Wdrażanie na wulkanie, czyli CI w świecie, który ...[QE 2017] Piotr Marczydło - Wdrażanie na wulkanie, czyli CI w świecie, który ...
[QE 2017] Piotr Marczydło - Wdrażanie na wulkanie, czyli CI w świecie, który ...Future Processing
 
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.DreamLab
 
Refactoring - Jak pozostać przy zdrowych zmysłach, redukując dług
Refactoring - Jak pozostać przy zdrowych zmysłach, redukując długRefactoring - Jak pozostać przy zdrowych zmysłach, redukując dług
Refactoring - Jak pozostać przy zdrowych zmysłach, redukując długMax Małecki
 
infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli ...
infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli ...infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli ...
infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli ...Infoshare
 
Skok na naderwanym bungee, czyli agile bez automatyzacji
Skok na naderwanym bungee, czyli agile bez automatyzacjiSkok na naderwanym bungee, czyli agile bez automatyzacji
Skok na naderwanym bungee, czyli agile bez automatyzacjiWitold Bołt
 
InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji
InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacjiInfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji
InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacjiJIT Solutions
 
ŁódQA - Session based testing
ŁódQA - Session based testingŁódQA - Session based testing
ŁódQA - Session based testingLodQA
 
JDD 2017: Why is TDD slowing you down? (Jakub Janczyk, Wojciech Przechodzień)
JDD 2017: Why is TDD slowing you down? (Jakub Janczyk, Wojciech Przechodzień)JDD 2017: Why is TDD slowing you down? (Jakub Janczyk, Wojciech Przechodzień)
JDD 2017: Why is TDD slowing you down? (Jakub Janczyk, Wojciech Przechodzień)PROIDEA
 
Praktyczne code reviews - PHPConPl
Praktyczne code reviews - PHPConPlPraktyczne code reviews - PHPConPl
Praktyczne code reviews - PHPConPlSebastian Marek
 
Krzysztof Kędzierski: 3 braki architektury - RST CodeMeeting
Krzysztof Kędzierski: 3 braki architektury - RST CodeMeetingKrzysztof Kędzierski: 3 braki architektury - RST CodeMeeting
Krzysztof Kędzierski: 3 braki architektury - RST CodeMeetingRST Software Masters
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowychTomasz Borowski
 
Code Review, czyli przegląd kodu - prezentacja tematu pracy magisterskiej
Code Review, czyli przegląd kodu -  prezentacja tematu pracy magisterskiejCode Review, czyli przegląd kodu -  prezentacja tematu pracy magisterskiej
Code Review, czyli przegląd kodu - prezentacja tematu pracy magisterskiejWiktor Gworek
 
Certyfikacja_a_Kariera_IT_SelfCaseStudy
Certyfikacja_a_Kariera_IT_SelfCaseStudyCertyfikacja_a_Kariera_IT_SelfCaseStudy
Certyfikacja_a_Kariera_IT_SelfCaseStudyTobias Koprowski
 
Wstęp do SCRUM - jak dostarczyć właściwe oprogramowanie
Wstęp do SCRUM - jak dostarczyć właściwe oprogramowanieWstęp do SCRUM - jak dostarczyć właściwe oprogramowanie
Wstęp do SCRUM - jak dostarczyć właściwe oprogramowanieMaciej Grajcarek
 

Similar to InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish] (20)

university day 1
university day 1university day 1
university day 1
 
Code Review budujące relacje w zespole
Code Review budujące relacje w zespoleCode Review budujące relacje w zespole
Code Review budujące relacje w zespole
 
Konrad Gadzina: Test-Driven Gamedev - testy automatyczne a tworzenie gier
Konrad Gadzina: Test-Driven Gamedev - testy automatyczne a tworzenie gierKonrad Gadzina: Test-Driven Gamedev - testy automatyczne a tworzenie gier
Konrad Gadzina: Test-Driven Gamedev - testy automatyczne a tworzenie gier
 
Konfiguracja GitLab CI/CD pipelines od podstaw
Konfiguracja GitLab CI/CD pipelines od podstawKonfiguracja GitLab CI/CD pipelines od podstaw
Konfiguracja GitLab CI/CD pipelines od podstaw
 
TGT#15 - Piramida testów w praktyce (notatki z dyskusji)
TGT#15 - Piramida testów w praktyce (notatki z dyskusji)TGT#15 - Piramida testów w praktyce (notatki z dyskusji)
TGT#15 - Piramida testów w praktyce (notatki z dyskusji)
 
[QE 2017] Piotr Marczydło - Wdrażanie na wulkanie, czyli CI w świecie, który ...
[QE 2017] Piotr Marczydło - Wdrażanie na wulkanie, czyli CI w świecie, który ...[QE 2017] Piotr Marczydło - Wdrażanie na wulkanie, czyli CI w świecie, który ...
[QE 2017] Piotr Marczydło - Wdrażanie na wulkanie, czyli CI w świecie, który ...
 
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.
 
Refactoring - Jak pozostać przy zdrowych zmysłach, redukując dług
Refactoring - Jak pozostać przy zdrowych zmysłach, redukując długRefactoring - Jak pozostać przy zdrowych zmysłach, redukując dług
Refactoring - Jak pozostać przy zdrowych zmysłach, redukując dług
 
infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli ...
infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli ...infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli ...
infoShare 2014: Witold Bołt, Bartosz Zięba, Skok na naderwanym bungee, czyli ...
 
Skok na naderwanym bungee, czyli agile bez automatyzacji
Skok na naderwanym bungee, czyli agile bez automatyzacjiSkok na naderwanym bungee, czyli agile bez automatyzacji
Skok na naderwanym bungee, czyli agile bez automatyzacji
 
InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji
InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacjiInfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji
InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji
 
Slicing a cake
Slicing a cakeSlicing a cake
Slicing a cake
 
ŁódQA - Session based testing
ŁódQA - Session based testingŁódQA - Session based testing
ŁódQA - Session based testing
 
JDD 2017: Why is TDD slowing you down? (Jakub Janczyk, Wojciech Przechodzień)
JDD 2017: Why is TDD slowing you down? (Jakub Janczyk, Wojciech Przechodzień)JDD 2017: Why is TDD slowing you down? (Jakub Janczyk, Wojciech Przechodzień)
JDD 2017: Why is TDD slowing you down? (Jakub Janczyk, Wojciech Przechodzień)
 
Praktyczne code reviews - PHPConPl
Praktyczne code reviews - PHPConPlPraktyczne code reviews - PHPConPl
Praktyczne code reviews - PHPConPl
 
Krzysztof Kędzierski: 3 braki architektury - RST CodeMeeting
Krzysztof Kędzierski: 3 braki architektury - RST CodeMeetingKrzysztof Kędzierski: 3 braki architektury - RST CodeMeeting
Krzysztof Kędzierski: 3 braki architektury - RST CodeMeeting
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
 
Code Review, czyli przegląd kodu - prezentacja tematu pracy magisterskiej
Code Review, czyli przegląd kodu -  prezentacja tematu pracy magisterskiejCode Review, czyli przegląd kodu -  prezentacja tematu pracy magisterskiej
Code Review, czyli przegląd kodu - prezentacja tematu pracy magisterskiej
 
Certyfikacja_a_Kariera_IT_SelfCaseStudy
Certyfikacja_a_Kariera_IT_SelfCaseStudyCertyfikacja_a_Kariera_IT_SelfCaseStudy
Certyfikacja_a_Kariera_IT_SelfCaseStudy
 
Wstęp do SCRUM - jak dostarczyć właściwe oprogramowanie
Wstęp do SCRUM - jak dostarczyć właściwe oprogramowanieWstęp do SCRUM - jak dostarczyć właściwe oprogramowanie
Wstęp do SCRUM - jak dostarczyć właściwe oprogramowanie
 

More from Wojciech Seliga

Sprzedawanie własnego biznesu IT - Confitura 2023.pdf
Sprzedawanie własnego biznesu IT - Confitura 2023.pdfSprzedawanie własnego biznesu IT - Confitura 2023.pdf
Sprzedawanie własnego biznesu IT - Confitura 2023.pdfWojciech Seliga
 
Jak być zarąbistym developerem w oczach szefa i ... klienta
Jak być zarąbistym developerem w oczach szefa i ... klientaJak być zarąbistym developerem w oczach szefa i ... klienta
Jak być zarąbistym developerem w oczach szefa i ... klientaWojciech Seliga
 
How to impress your boss and your customer in a modern software development c...
How to impress your boss and your customer in a modern software development c...How to impress your boss and your customer in a modern software development c...
How to impress your boss and your customer in a modern software development c...Wojciech Seliga
 
Devoxx Poland 2015: 5-10-15 years with Java
Devoxx Poland 2015: 5-10-15 years with Java Devoxx Poland 2015: 5-10-15 years with Java
Devoxx Poland 2015: 5-10-15 years with Java Wojciech Seliga
 
Escaping Test Hell - Our Journey - XPDays Ukraine 2013
Escaping Test Hell - Our Journey - XPDays Ukraine 2013Escaping Test Hell - Our Journey - XPDays Ukraine 2013
Escaping Test Hell - Our Journey - XPDays Ukraine 2013Wojciech Seliga
 
Confitura 2013 Software Developer Career Unplugged
Confitura 2013 Software Developer Career UnpluggedConfitura 2013 Software Developer Career Unplugged
Confitura 2013 Software Developer Career UnpluggedWojciech Seliga
 
Better Front-end Development in Atlassian Plugins
Better Front-end Development in Atlassian PluginsBetter Front-end Development in Atlassian Plugins
Better Front-end Development in Atlassian PluginsWojciech Seliga
 
Bringing Effectiveness and Sanity to Highly Distributed Agile Teams
Bringing Effectiveness and Sanity  to Highly Distributed Agile TeamsBringing Effectiveness and Sanity  to Highly Distributed Agile Teams
Bringing Effectiveness and Sanity to Highly Distributed Agile TeamsWojciech Seliga
 
JDD Effective Code Review In Agile Teams
JDD Effective Code Review In Agile TeamsJDD Effective Code Review In Agile Teams
JDD Effective Code Review In Agile TeamsWojciech Seliga
 

More from Wojciech Seliga (9)

Sprzedawanie własnego biznesu IT - Confitura 2023.pdf
Sprzedawanie własnego biznesu IT - Confitura 2023.pdfSprzedawanie własnego biznesu IT - Confitura 2023.pdf
Sprzedawanie własnego biznesu IT - Confitura 2023.pdf
 
Jak być zarąbistym developerem w oczach szefa i ... klienta
Jak być zarąbistym developerem w oczach szefa i ... klientaJak być zarąbistym developerem w oczach szefa i ... klienta
Jak być zarąbistym developerem w oczach szefa i ... klienta
 
How to impress your boss and your customer in a modern software development c...
How to impress your boss and your customer in a modern software development c...How to impress your boss and your customer in a modern software development c...
How to impress your boss and your customer in a modern software development c...
 
Devoxx Poland 2015: 5-10-15 years with Java
Devoxx Poland 2015: 5-10-15 years with Java Devoxx Poland 2015: 5-10-15 years with Java
Devoxx Poland 2015: 5-10-15 years with Java
 
Escaping Test Hell - Our Journey - XPDays Ukraine 2013
Escaping Test Hell - Our Journey - XPDays Ukraine 2013Escaping Test Hell - Our Journey - XPDays Ukraine 2013
Escaping Test Hell - Our Journey - XPDays Ukraine 2013
 
Confitura 2013 Software Developer Career Unplugged
Confitura 2013 Software Developer Career UnpluggedConfitura 2013 Software Developer Career Unplugged
Confitura 2013 Software Developer Career Unplugged
 
Better Front-end Development in Atlassian Plugins
Better Front-end Development in Atlassian PluginsBetter Front-end Development in Atlassian Plugins
Better Front-end Development in Atlassian Plugins
 
Bringing Effectiveness and Sanity to Highly Distributed Agile Teams
Bringing Effectiveness and Sanity  to Highly Distributed Agile TeamsBringing Effectiveness and Sanity  to Highly Distributed Agile Teams
Bringing Effectiveness and Sanity to Highly Distributed Agile Teams
 
JDD Effective Code Review In Agile Teams
JDD Effective Code Review In Agile TeamsJDD Effective Code Review In Agile Teams
JDD Effective Code Review In Agile Teams
 

InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]

  • 1. Efektywne przeglądy kodu w zespołach agile Wojciech Seliga Spartez Co-founder Atlassian JIRA Development Team Lead Tag cloud generated with Licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License. http://www.wordle.net/
  • 2. Plan to zło Planowanie to dobro Dlaczego przeglądy kodu Mity Pułapki Efektywność Q&A Picture courtesy of Helico CC BY 2.0
  • 3. Uwaga! Prezentacja zawiera lokowanie :) Nie jestem obiektywny. Reprezentuję firmy sprzedające narzędzie do przeglądu kodu. Z drugiej strony: Stosuję przeglądy kodu codziennie ...
  • 5. Picture courtesy of Cat and Girl CC A-NC-SA 2.5
  • 6. Wdrażanie nowych ludzi do istniejącego kodu źródłowego styl/konwencje design reużywalne komponenty APIs zasady, praktyki, triki Picture courtesy of mil8 / CC BY 2.0
  • 7. Mentorowanie junior developerów Bezinwazyjne Asynchroniczne W dogodnej chwili Powodujące mniej frustracji i rozproszania się dla senior developerów Picture courtesy of eddidit / CC BY 2.0
  • 9. Picture courtesy of Jordan Miller / CC 2.5
  • 10. Photo Courtesy of U.S. Army
  • 11. Picture courtesy of tinyfroglet / CC 3.0
  • 12. Trudne przygotowanie wybór kodu zorganizowanie osób do przeglądu znalezienie pasującego terminu rezerwacja sali konferencyjnej przygotowanie wydruków ... Picture courtesy of jfdervin / CC BY-SA 2.0
  • 13. Kolejny przeszkadzający obowiązek więcej spotkań oderwanie się od pracy rozproszenie uwagi
  • 14. Pożeracz czasu dużo kodu do czytania wciąż i wciąż „spanie” na spotkaniach marnowanie czasu na proste rzeczy: konstrukcje powodujące ostrzeżenia konwencję kodowania nazewnictwo pokrycie testami Picture courtesy of gadl / CC BY-SA 2.0
  • 16. Brak konkretnych mierzalnych efektów Picture courtesy of aussiegall / CC BY 2.0
  • 17. Efektywne przeglądy kodu Lekkie – prosty i elastyczny proces Asynchroniczne Wspierane przez narzędzia Różnicowe gdzie tylko możliwe Przejrzyste i trwałe, dostępne dla każdego Przyjemne dla developerów – proste, szybkie
  • 18. Prosty Proces Dyskusja: Zakres przeglądu Komentarze, Uwagi, Króciutkie recenzenci Odpowiedzi Podsumowanie termin zakończenia Poprawki TODO – Kodowanie – Przegląd – QA – DONE Limit Kanbanowy jest przydatny
  • 20. Proste i szybkie przeglądy Im mniejsze przeglądy tym lepiej Małe częściej lepsze niż duże rzadziej
  • 21. Rozsądna liczba recenzentów 30 25 Czas poświęcony [min] 20 15 10 5 0 1 2 3 4 5 6 Liczba recenzentów
  • 22. Rozsądna liczba recenzentów 30 Liczba znalezionych błędów na 1KLOC 25 20 15 10 5 0 1 2 3 4 5 6 7 8 9 Liczba recenzentów
  • 23. Szybkie i przyjemne przeglądy kodu deadline na jutro niewielu recenzentów z komentarzami od autora post-commit zamiast pre-commit Picture courtesy of Svadilfari / CC BY-ND 2.0
  • 24. Niektóre zasady zwinnych przeglądów kodu każdy może dołączyć i recenzować kod każdy może rozszerzać zakres przeglądu każdy może dołączać inne osoby wszystko jest ogólnie- dostępne wewnątrz firmy chodzi o naukę, a nie o oskarżanie się czy wojny Picture courtesy of PantoDX / CC BY 2.0
  • 25. Przeglądy kodu w Agile – niezrozumienie fanatyczne poszukiwanie błędów fałszywe przekonanie o braku błędów w sprawdzonym kodzie śledzenie losu każdego pojedynczego komentarza czy uwagi do kodu oczekiwanie twardych metryk Picture courtesy of Juria Yoshikawa / CC BY-SA 2.0
  • 26. Największe początkowe zagrożenia Sztywny proces Metryki Micro-management Zbyt duży narzut Zespoły jednak ewoluują... Picture courtesy of tms. / CC BY-NC-ND 2.0
  • 27. Niespodziewane Korzyści Znaczne ułatwienie przy zespołach rozproszonych geograficznie Współpraca przy szczegółowym projektowaniu Łatwiejsze do wdrożenia niż pair-programming Różnica stref czasowych może być korzystna Baza Wiedzy Picture courtesy of david.nathan.cox / CC BY 2.0
  • 28. Przeglądy Kodu a Pair Programming weryfikacja tworzenie później dzielenie się teraz ”represja” wiedzą ”prewencja” asynchroniczne wspólna synchroniczny odpowiedzialność rozproszone fizycznie razem lepsza jakość niższa bariera wyższa bariera ekstensywne współpraca intensywny trwała nietrwała
  • 29. Picture courtesy of Kevin Dooley / CC BY 2
  • 30. Q&A Picture courtesy of Mykl Roventine / CC BY 2.0
  • 31. Dziękuję za uwagę Wojciech Seliga Twitter: @wseliga wojciech.seliga@spartez.com