Oddziały powinny działać OK, na podstawie mojego doświadczenia w stosowaniu ich w przeglądach przed zatwierdzeniem na wcześniejszej pracy.
Zauważ, że wtedy używaliśmy recenzji przed zatwierdzeniem tylko dla krytycznych poprawek do kodu kandydata do wydania produkcyjnego, więc nie było wielu gałęzi (rutynowe zmiany były przekazywane przez recenzje po zatwierdzeniu).
Ponieważ wydaje się, że będziesz używał recenzji przed zatwierdzeniem wszystkich zmian, może być konieczne zarządzanie dużą liczbą oddziałów. Jeśli spodziewasz się, że programista wprowadzi średnio jedną „przeglądalną” zmianę tygodniowo, w końcu będziesz mieć około 50 oddziałów rocznie dla każdego programisty w zespole. Jeśli używasz mniejszych kawałków pracy - na przykład zajmujących 1, 2, 3 ... dni - pomnóż odpowiednio 50 przez 2, 3, 5 ... odpowiednio.
Poniżej kilka innych kwestii, które należy wziąć pod uwagę, jeśli chcesz to najlepiej .
1. rozpatrywanie spraw, w których opóźniony przegląd blokuje kod potrzebny innym członkom zespołu
Ustanawiaj, monitoruj i rozwiązuj konflikty związane z terminami przeglądu kodu. Zgodnie z moim wspomnieniem przeglądów poprzedzających zatwierdzenie rutynowych zmian, którymi zajmowałem się w jednym z poprzednich projektów, rozsądny termin wynosi około 3 dni, a czas, aby zacząć się martwić, to wtedy, gdy przegląd nie zostanie zakończony później niż 1 dzień po przesłaniu.
Dla porównania, w przeglądach po zatwierdzeniu wymagania te są znacznie bardziej zrelaksowane (używam terminu 2 tygodni i zaczynam się martwić po 1 tygodniu) - ale ponieważ celujesz w recenzje przed zatwierdzeniem, prawdopodobnie nie jest to interesujące.
2. Scal konflikty podczas przesyłania sprawdzonego kodu
Co zrobić, jeśli zatwierdzenie sprawdzonego kodu jest blokowane przez sprzeczne zmiany popełnione przez kogoś innego, gdy kod czekał na sprawdzenie?
Oto kilka opcji do rozważenia
- cofnij się do początku i wymagaj od programistów ponownego wdrożenia i przeglądu zmiany.
W takim przypadku może być konieczne zajęcie się negatywnym wpływem na morale zespołu, co może (będzie!) mieć.
- przekazać odpowiedzialność za scalenie innemu członkowi zespołu („master master”).
W takim przypadku musisz również zdecydować, czy połączenia same w sobie powinny zostać poddane przeglądowi przed zatwierdzeniem, czy nie - a jeśli tak, to co zrobić, jeśli to połączenie z kolei spotyka inny konflikt.
- zignoruj zmiany wprowadzone w sprawdzonym kodzie na etapie scalania
W takim przypadku może być konieczne zajęcie się negatywnym wpływem na morale zespołu związane z faktem, że popełniony kod różni się od sprawdzonego.
- wymyślić sposób na uniknięcie konfliktów.
Prostym podejściem jest umożliwienie tylko jednemu deweloperowi modyfikowania określonego zestawu plików - chociaż to nie ochroni cię przed zmianami, które nie modyfikują plików bezpośrednio, ale wpłyną na nie poprzez wewnętrzne zmiany API . Może się również okazać, że tego rodzaju „pesymistyczne blokowanie” sprawia, że zmiany w całym systemie i głębokie refaktoryzowanie są dość kłopotliwe.
Dla porównania nie byłoby takich problemów w przeglądach po zatwierdzeniu (ponieważ dotyczą one kodu, który jest już scalony z definicji) - ale ponieważ celujesz w recenzje przed zatwierdzeniem, prawdopodobnie nie jest to interesujące.
3. załaduj programistę, który czeka na sprawdzenie
Ustal wyraźne zasady określające, czy programista, który przesłał recenzję, powinien przejść do nowego zadania lub zrobić coś innego (np. Ścigać recenzenta).
Dla porównania, przeglądy po zatwierdzeniu prawie nie wymagają wyraźnych zasad (ponieważ naturalne jest przejście do następnego zadania po popełnieniu kodu i biorąc pod uwagę, że termin przeglądu wynosi tydzień lub dwa) - ale ponieważ celujesz w przeglądy przed zatwierdzeniem, prawdopodobnie jest to nieinteresujące.