Czas przeznaczony na przeglądy kodu

14

Jeśli robisz recenzje kodu

  • Ile czasu spędzasz na recenzjach kodu w porównaniu do implementacji?
  • Ile zmian podlega przeglądowi kodu?
  • myślisz, że to za dużo / powinno być więcej?

Czy są jakieś badania dotyczące skuteczności?

[edytuj] dziękuję wszystkim za odpowiedzi, ciężko wybrać „zwycięzcę” na takie pytanie, w innych odpowiedziach jest też wiele cennych informacji.

peterchen
źródło
2
Moje odpowiedzi na te trzy pytania brzmiałyby: „brak”, „żadne z nich” i „powinno być więcej”. :-)
Carson63000,
4
Dobre pytanie, jestem w trakcie rozpoczynania osobistej krucjaty w celu wprowadzenia recenzji kodu do mojej pracy. Więc odpowiedzi na to mogą być pomocne.
Kevin D,
Następne pytanie brzmi „dlaczego” - większość uważa, że ​​chodzi o jakość, ale duże korzyści przychodzą, gdy zrozumiesz, że wartość edukacyjna kodu przekracza wartość jakości.
mattnz

Odpowiedzi:

7

W mojej pracy mamy następującą procedurę recenzji kodu. Do tej pory działało dobrze dla nas i okazało się, że jest bardzo oszczędny czasowo, szczególnie pod względem roboczogodzin. Tak naprawdę nie mamy konkretnego czasu przeznaczonego na recenzje. Każde zatwierdzenie lub scalenie do pnia musi zostać sprawdzone, a recenzent zajmuje tyle czasu, ile potrzeba.

Edycja: Czas potrzebny oczywiście zależy od wielkości zmiany. Małe funkcje i poprawki błędów zajmują kilka minut. Duże nowe funkcje, refaktoryzacje lub zmiany, które wpływają na wiele części systemu, mogą zająć pół dnia na przejrzenie, a następnego dnia na rozwiązanie wszystkich pojawiających się problemów.

Aby ten system działał, bardzo ważne jest częste przydzielanie do pnia, aby zmiany miały rozsądny rozmiar. Nie chcesz mieć takiej sytuacji, gdy musisz przejrzeć czyjś kod.

Dima
źródło
1
Czy masz pojęcie, ile to kosztuje?
peterchen
5

Jeśli chodzi o badania, oprogramowanie Smart Bear wyśle za darmo małą książkę Best Kept Secrets of Peer Code Review . Zawiera wiele artykułów na temat różnych aspektów przeglądu kodu, w tym badań dotyczących czasu, jaki powinny one zająć i skuteczności.

Caleb Huitt - cjhuitt
źródło
Właśnie zamówiłem tę książkę. Mam nadzieję, że powinna być interesująca lektura.
Kevin D,
3
Zamówiłem też. Dziwnie jest czekać 20 dni na „ darmową ” książkę - od firmy, która sprzedaje oprogramowanie przez Internet.
peterchen
Ta książka krąży w moim miejscu pracy od wielu lat. Nasz egzemplarz jest dobrze przeczytany i opatrzony kilkoma kluczowymi punktami oznaczającymi postit. Jest mały (można go odczytać za godzinę), ale pełen wspaniałych informacji. Oczywistym celem jest przekonanie Cię do przeglądu kodu, następnie przekonanie do korzystania z narzędzia, a następnie przekonanie do zakupu ich narzędzia - wystarczy, że dali ci książkę.
mattnz
4

W naszym projekcie każda znacząca zmiana w systemie jest sprawdzana przez lidera zespołu lub wspólnie z innym deweloperem, który będzie głównym „konsumentem” nowego modułu. Rozmawiamy na skype i albo używamy Rudela w Emacsie (wtyczka do wspólnej edycji, w zasadzie pozwala kilku użytkownikom na edycję tego samego pliku na żywo), albo TypeWith.me (Piratepad), albo jeden z nas udostępnia swój ekran w skype.

Trudno to określić ilościowo, ponieważ przyziemne zmiany, takie jak nowe wyświetlenia, strony itp., Nie są sprawdzane. Sprawdzamy nowe moduły, główne aktualizacje i refaktoryzacje. Jeśli chodzi o duże zmiany, przegląd kodu może potrwać od 10% do 30% czasu, ale warto.

Mogę powiedzieć, że programowanie parowe, gdy 2 programistów jednocześnie edytuje ten sam plik, a nie tylko siedzi przy tym samym komputerze, jest o wiele lepsze niż zwykła praktyka biurowa polegająca na siedzeniu za ramieniem.

Do prostych rzeczy, takich jak konwencje nazewnictwa i błędy zakresu, używamy własnych lub automatycznych narzędzi typu open source (jslint, pylint, pyflakes, pep8). I nie ograniczamy zatwierdzeń i wypychań: używamy Mercurial, który ma bardzo łatwe rozgałęzianie i scalanie (muszę powiedzieć, łatwiejsze niż w Git). Błędy nie są sprawą przeglądu kodu.

Organizujemy spotkania zespołowe, na których ogłaszane są zmiany i nowe rzeczy, ale tam nie wszyscy naprawdę zwracają uwagę. Prawdopodobnie powinniśmy zrobić trochę więcej recenzji kodu.


źródło
2

Nie ma na to dobrej lub złej odpowiedzi. Ale jak wielu wcześniej mi to sugerowało - jeśli przegląd kodu jest wykonywany przez zewnętrznego członka zespołu [wysoce zalecana metoda], może to stanowić około 30% do 35% nakładów programistycznych. Ale jeśli zrobi to wewnętrzny członek zespołu projektowego, który był częścią zespołu programistycznego [niezalecane], można to zrobić w około 20% czasu poświęconego na prace rozwojowe.

Uwaga: natknąłem się na ten wątek, szukając czegoś innego i pomyślałem, że mogę tu dodać trochę wartości. Przy okazji, wszystkie powyższe szacunki nakładów oparte są na moim doświadczeniu zawodowym jako menedżer ds. Zaangażowania w wielu projektach. Mam nadzieję, że to pomoże.

Nav
źródło
dzięki - i bez potu, doceniam oglądanie liczb na pytanie „ile”!
peterchen
0

Każda organizacja i baza kodu jest inna, więc trudno jest uzyskać wartość dla całej branży.
Jeśli naprawdę mówisz poważnie, powinieneś zacząć zbierać dane. Tj. Wykonaj przegląd kodu, aż zostanie pomyślnie wykonany, w tym przeróbki. Zacznij gromadzić to w bazie danych (LOC, złożoność kodu, język programowania, czas itp.). Następnie zbierz także wskaźniki dotyczące wskaźnika defektów podczas testowania. Tak długo, jak możesz zmniejszyć ten kod, przegląd powinien zapłacić sam. Jeśli wada wraca z testowania, zbierz dane dotyczące tego, ile czasu poświęcono na naprawę wad. Buduj te dane w swojej organizacji, twórz linie bazowe i możesz je dość dokładnie przewidzieć. Poszukiwane hasła to: Koszt jakości i Koszt niskiej jakości.

Jedynym zastrzeżeniem jest to, że może to stać się biurokratyczne i zależy od kultury organizacyjnej.

softveda
źródło
Szukam praktycznych danych, więc mam pojęcie o oczekiwanym zakresie .
peterchen