2. O MNIE
MACIEJ MORTEK
Prywatnie, autor bloga MattCodes.pl
Zawodowo, Senior Developer w Polcode
W pracy kieruje się takimi wartościami jak:
• czysty kod,
• code review,
• praca zdalna,
• skuteczna organizacja pracy.
3. AGENDA
O CZYM BĘDZIEMY
ROZMAWIAĆ
Szybkie wprowadzenie
Nasze historie
Buduje czy rujnuje?
Przyjmowanie feedbacku
Role recenzenta
Naprawa tego procesu
Podsumowanie
BONUS!
Maciej Mortek autor bloga MattCodes.pl
oraz Senior Developer w Polcode
4. CO TO JEST
CODE REVIEW
Code review is systematic examination of
computer source code. It is intended to
find mistakes overlooked in the initial
development phase, improving the overall
quality of software.
Maciej Mortek autor bloga MattCodes.pl
oraz Senior Developer w Polcode
6. NASZE DOŚWIADCZENIA
ŚREDNIE
Pracujemy w jednym
zespole nad produktami
klientów naszej firmy
ZŁE
Pracujemy w zespole
zbudowanych z kilku firm
nad produktami klientów
DOBRE
Pracujemy w jednym
zespole nad produktem
naszej firmy
#NAJGORZEJ
Zewnętrzna firma lub my
sami jesteśmy tylko od
sprawdzania jakości kodu
7. DOBRA SYTUACJA
PRACUJEMY W JEDNYM
ZESPOLE NAD PRODUKTEM
NASZEJ FIRMY
świadomość, że gramy razem do jednej bramki
w większości wypadków nie musimy z nikim
rywalizować
łatwiej nam wziąć odpowiedzialność za
produkt
8. ŚREDNIA SYTUACJA
PRACUJEMY W JEDNYM
ZESPOLE NAD PRODUKTAMI
KLIENTÓW NASZEJ FIRMY
świadomość, że gramy razem do jednej bramki
w większości wypadków nie musimy z nikim
rywalizować w zespole
trudno o wzięcie odpowiedzialności za produkt
9. ZŁA SYTUACJA
PRACUJEMY W ZESPOLE
ZBUDOWANYM Z KILKU FIRM NAD
PRODUKTAMI KLIENTÓW
słaba świadomość, że gramy razem do jednej
bramki
pojawia się rywalizacja programistów,
pomiędzy zespołami z różnych firm
trudno o wzięcie odpowiedzialność za produkt
10. #NAJGORZEJ
ZEWNĘTRZNA FIRMA LUB MY
SAMI, JESTEŚMY TYLKO OD
SPRAWDZANIA JAKOŚCI KODU
obu stronom nie zależy na osiągnięciu
wspólnego celu
rywalizacja pomiędzy obiema stronami
13. OCZYWISTE KORZYŚCI
POPRAWA
JAKOŚCI
KODU
Zwiększamy czytelność i
jakość kodu, dzięki
sprawdzeniu go przez
innych programistów
WERYFIKACJA
ROZWIĄZAŃ
W procesie Code Review
możemy zweryfikować
pomysły programistów
pod względem ich
przyszłego wpływu na
projekt
ELIMINACJA
BUGÓW
Kontrola kodu przez
innego programistę to
dodatkowa możliwość
odnalezienia błędów
w kodzie
14. ROZWÓJ
PROGRAMISTÓW
W PROCESIE
CODE REVIEW
Maciej Mortek autor bloga MattCodes.pl
oraz Senior Developer w Polcode
Code Review umożliwia nam
rozwój swoich umiejętności
programowania, poprzez:
korzystanie z doświadczeń innych
programistów,
naukę na czyichś błędach,
poszerzanie perspektyw,
możliwość nauki na przykładach
starszych stażem programistów.
15. POWIĘKSZANIE
ŚWIADOMOŚCI
O PROJEKCIE
W ZESPOLE
Maciej Mortek autor bloga MattCodes.pl
oraz Senior Developer w Polcode
Code Review, to także świetny
sposób na poznawanie
projektu i biznesu klienta,
przez wszystkich członków
zespołu.
Szybsze wdrożenie nowych członków
zespołu do projektu.
Łatwiejsze wdrożenie nowych
pracowników i szybsze poznanie kultury
pracy w danej firmie.
Często jedyna albo jedna z niewielu
okazji do kontaktu z innymi
programistami w zespole.
17. GŁÓWNE POWODY
1. Brak świadomości o korzyściach wynikających z Code Review.
2. Rywalizacja pomiędzy programistami lub zespołami.
3. Bycie zamkniętym na opinie i sugestie innych.
4. Brak doświadczenia.
5. Zbyt duże obciążenie taskami i natłokiem pracy.
Maciej Mortek autor bloga MattCodes.pl
oraz Senior Developer w Polcode
19. JAK PRZYJMOWAĆ
FEEDBACK W CODE REVIEW?
Musimy sobie uświadomić kilka istotnych kwestii, żeby nauczyć się
przyjmować feedback i zrozumieć dlaczego mamy z tym problem.
1. Wszyscy w projekcie, gramy w jednej drużynie.
2. Efekt końcowy naszej pracy - produkt, jest najważniejszy.
3. Musimy nauczyć się przyznawać do błędów.
4. Czasem możemy nie znać pełnej perspektywy projektu.
4. Nie idźmy w zaparte, zwłaszcza gdy nie mamy racji, albo zwróćmy
się do osoby decyzyjnej w projekcie.
Maciej Mortek autor bloga MattCodes.pl
oraz Senior Developer w Polcode
20. JAK MOŻEMY STAĆ SIĘ
LEPSZYM RECENZENTEM?
1. Nie ograniczajmy się tylko do wytykania błędów.
2. Wskazujmy możliwe ścieżki rozwiązania danego problemu.
3. Informujmy programistę dlaczego jego proponowane rozwiązanie
jest błędne.
4. Planujmy sobie spokojny czas na pracę z Code Review.
Maciej Mortek autor bloga MattCodes.pl
oraz Senior Developer w Polcode
21. RECENZENT
POWINIEN PEŁNIĆ
ROLĘ MENTORA
Maciej Mortek autor bloga MattCodes.pl
oraz Senior Developer w Polcode
Najgorszy recenzent, to taki,
który utrudnia dowiezienie
taska do końca.
Recenzent powinien nam jednocześnie
pomagać, inspirować, wskazywać możliwe
rozwiązania danego problemu. Jednakże,
nie powinien nam narzucać swojego zdania,
a przedstawiać jedynie argumenty
popierającego jego propozycje.
23. 3 KROKI DO BARDZIEJ
PRZYJAZNEGO CODE REVIEW
Maciej Mortek autor bloga MattCodes.pl
oraz Senior Developer w Polcode
OPRACUJCIE
DOKUMENT
KORZYSTAJCIE
Z NARZĘDZI
WYBIERZCIE
OSOBĘ
DECYZYJNĄ
24. DOKUMENT
OPISUJĄCY
PROJEKT
Maciej Mortek autor bloga MattCodes.pl
oraz Senior Developer w Polcode
Opracowanie dokumentu
wyeliminuje od razu wiele
typowych, często
powtarzanych dyskusji,
podczas Code Review.
Dokument powinien zawierać:
opis standardów kodowania,
opis struktury projektu i danych,
zasady pracy z repozytorium kodu,
checklisty z listą rzeczy o których trzeba
zawsze pamiętać,
opis procesu Code Review.
25. OSOBA
DECYZYJNA
W PROJEKCIE
Maciej Mortek autor bloga MattCodes.pl
oraz Senior Developer w Polcode
W każdym zespole, powinien
być wyznaczony Team Leader
odpowiedzialny za jakość
projektu, do którego
należałoby rozwiązanie
wszystkich sporów podczas
Code Review.
26. KORZYSTANIE
Z ODPOWIEDNICH
NARZĘDZI
Maciej Mortek autor bloga MattCodes.pl
oraz Senior Developer w Polcode
Lintery mogą być
wybawieniem dla całego
zespołu.
Tego typu narzędzia będą za nas
kontrolowały jakość kodu, pod względem
stosowanych standardów.
Przykładowe programy:
PHP CS Fixer
phplint
PHP Mess Detector
SonarQube(!)