Kiedy robić przegląd kodu?

15

Niedawno przeszliśmy do procesu scrum i pracujemy nad zadaniami i historiami użytkowników w sprintach. Chcielibyśmy często przeprowadzać recenzje kodu, aby były mniej zniechęcające. Myślimy, że robimy to na poziomie historii użytkownika, ale nie jesteśmy pewni, jak rozgałęzić nasz kod, aby to uwzględnić.

Używamy VS i TFS 2010 i jesteśmy zespołem 6 osób.

Obecnie rozgałęziamy funkcje, ale pracujemy nad przejściem na rozgałęzienie dla scrum.

Obecnie nie używamy zestawów półek i tak naprawdę nie chcemy wdrażać, jeśli dostępne są inne techniki.

W jaki sposób zalecamy wdrożenie recenzji kodu dla historii użytkownika?

mcass20
źródło

Odpowiedzi:

3

To zależy od charakteru historii użytkowników.

Utworzenie gałęzi dla każdej historii użytkownika może być skuteczne, widoczne są postępy w różnych historiach, w razie potrzeby można je przekazywać, jeśli opowieści nie zostaną ukończone w sprincie, postęp może pozostać w gałęzi do następnego sprintu . Końcowe recenzje można następnie wykonać na końcu historii użytkownika w gałęzi historii użycia i scalić, jeśli kod jest zgodny ze standardem.

Aby działać w sposób, w jaki historie muszą być drobnoziarniste, aby zapobiec niemożliwym do zarządzania zadaniom scalania na końcu sprintu. Małe historie umożliwią stałą aktualizację gałęzi deweloperów poprzez sprint, z którego deweloperzy pracujący nad historiami innych użytkowników muszą stale pobierać (podstawowe VCM).

Powoduje to narzuty procesowe związane z ciągłym tworzeniem i łączeniem oddziałów, które w niektórych przypadkach można rozwiązać za pomocą skryptów automatyzacji, ale zespół nadal musi czuć się bardzo dobrze z VCS.

Pod koniec sprintu łączysz swoją gałąź programistów w integrację / produkcję itp.

Pracowałem również w zespołach, w których wszyscy pracują z jednej gałęzi deweloperów, po ukończeniu historii użytkownika kod jest przekazywany do tej gałęzi w celu przejrzenia i przetestowania, a jeśli ktoś popchnie coś, co psuje kompilację dewelopera, musi wprowadzić piwa zespołu.


źródło
13

Najskuteczniejszym sposobem sprawdzenia kodu jest wstanie, znalezienie kogoś i poproszenie go o przyjście i omówienie właśnie opracowanego kodu.

Nie używaj narzędzia, chyba że nie możesz znaleźć kogoś, kto lokalnie sprawdzi Twój kod.

Możesz całkowicie uniknąć recenzji kodu, łącząc go w pary.

Ryan Cromwell
źródło
Zastanawiałem się, kiedy ktoś będzie wspominał o parowaniu. Pomiędzy tym a testowaniem jednostkowym dostajesz wiele recenzji.
JeffO,
Czytam to jako „wstań, zwolnij kogoś i poproś go, aby przyszedł i omówił właśnie opracowany kod”. Dzięki za zrobienie mojego dnia.
Will Morgan,
4

Czy wszyscy w zespole są lokalni? Jeśli tak, poproś kogoś, aby przyszedł i sprawdził, zanim kod zostanie wpisany. Nie lokalny? Uruchom swój ulubiony program do udostępniania ekranu i zadzwoń do kogoś. Osobiście często to robię. Czasami robię to tylko po to, by powiedzieć „Hej, zobacz co zrobiłem!”

Zdecydowanie wolę ten styl recenzji kodu ad-hoc od stylu, w którym ktoś wstaje i przedstawia swój kod zespołowi. Recenzje ad hoc mogą dać wiele (wszystkich?) Korzyści z parowania bez niewygody. Ponadto „recenzent” chętniej zadaje pytania i sugeruje ulepszenia w nieformalnym otoczeniu jeden na jednego.

jgrim
źródło
1

Uważam, że przegląd kodu nie jest formalną częścią SCRUM, ale poprawki są niezależną taktyką w celu osiągnięcia jakości i ulepszenia projektów / zespołu.

Dlatego użyłbyś SCRUM (lub innej zwinnej metodologii programistycznej), aby zapewnić / poprawić jakość PROJEKTU i dotrzymywać terminów. Dobrą taktyką jest również robienie przeglądu produktu (nie kodu) niezależnie od normalnych zadań kontroli jakości / testowania. Jeśli to działanie można wykonać przed zespołem / partnerami / klientami / publicznością, będzie lepiej.

Powinieneś używać poprawek kodu (lub innych konkretnych) głównie w celu ulepszenia swojego ZESPOŁU, oczekując wyników w perspektywie średnio- / długoterminowej. Wpłynie to na Twoje PROJEKTY, ale w dłuższej perspektywie jako efekt ulepszenia ZESPOŁU.

Tak więc, aby odpowiedzieć na twoje pytanie, uważam, że próbujesz zbyt mocno naciskać na SCRUM, i powinieneś lepiej rozważyć poprawki tylko takie, jakie są.

Ron-Damon
źródło
Scrum nie mówi ani nie radzi nic na temat harmonogramu. Oczekuje, że będziesz regularnie dostarczał wartość. Zapewnia również chwile, w których można kontrolować i dostosowywać swój proces, aby był lepszy (lepszy niekoniecznie oznacza szybszy).
Ryan Cromwell,
Tak, Scrum nie przewiduje tworzenia pełnego harmonogramu w ramach tego. Mimo to miałem na myśli „planowanie”, kiedy odwołałem się do harmonogramu, planowanie oznacza, że ​​Twój klient oczekuje pewnej wartości w danym czasie, aby mógł wykonać wymianę między wartością v / s pieniędzy (jeśli uważasz, że świadczysz usługi programistyczne / programistyczne ).
Ron-Damon
W tej kwestii klient powinien mieć budżet do wydania w określonym czasie (na przykład, aby ci zapłacić), a on może mieć harmonogram do załatwienia. Pracuję jako usługodawca, dlatego nie mogę tego pominąć.
Ron-Damon
Pomijając umowy, zespoły Scrumowe dostarczają wartość, a nie usługi. Opracowujemy / programujemy jako środek zapewniający tę wartość.
Ryan Cromwell
Nie sądzę, aby można było rozdzielić pojęcia „wartość” i „usługa” przyjacielu. Uważam też, że jest to teraz bardzo nie na temat.
Ron-Damon
0

Czy nie jest oczywiste, aby robić recenzje kodu przed sprawdzeniem kodu?

TFS nie działa jak GIT, więc za każdym razem, gdy wpiszesz kod do oddziału lub pnia, jest on dostępny dla wszystkich.

Oznacza to, że sprawdzenie powinno nastąpić podczas odprawy, aby złe zmiany nie były propagowane do wszystkich kopii roboczych.

Byron Whitlock
źródło
Sądzę, że generalnie testy jednostkowe zapobiegają złym zmianom.
John Saunders,
@John Saunders: Rozważ recenzje kodu jako inny rodzaj testu jednostkowego.
Gilbert Le Blanc
@ Gilbert: Mógłbym to zrobić, ale wtedy nie dostałbym ich korzyści z testowania regresji. Wolałbym spędzać czas na pisaniu większej liczby lepszych testów jednostkowych.
John Saunders
@John Saunders, @Gilbert Le Blanc recenzje kodu są przeprowadzane przez innego programistę, testy jednostkowe są zwykle wykonywane przez oryginalnego programistę, nowa perspektywa może być istotna.
Miałem szczęście z testami jednostkowymi (listy testów są wcześniej uzgadniane) i automatyczną analizą kodu, ewentualnie w połączeniu z narzędziem do analizy stylu, takim jak StyleCop. Ale często nie współpracuję z młodszymi programistami.
John Saunders,