Ostatnio dużo czytałem na temat różnych procesów wdrażania aplikacji internetowych przy użyciu SVN lub GIT, z myślą o przeprojektowaniu tego, jak obecnie wdrażamy tam, gdzie pracuję.
Podobnie jak w przypadku wielu smaków Agile, zakłada się, że wszystko, co jest przeznaczone do opanowania lub pnia, jest gotowe do produkcji. Zarówno GitHub, jak i Etsy, http://codeascraft.etsy.com/2010/05/20/quantum-of-deployment/, mówią, że działają na tej podstawie (chociaż Etsy faktycznie ma środowisko testowe).
Ten proces zakłada, że wszystkie testy jednostkowe i testy CI zostały uruchomione. Testy uruchamiasz lokalnie i na CI, a następnie zatwierdzasz do trunkingu. SO, w tym momencie Twój kod jest poprawny technicznie .
Twój kod może być technicznie poprawny, ale testy użytkowników / funkcjonalne mogą odkryć więcej błędów, szczególnie jeśli chodzi o testy front-end.
Moje pytanie brzmi: Gdzie QA i właściciele firm testują wprowadzone przez Ciebie zmiany funkcji? Na lokalnym komputerze deweloperskim, zanim zaangażujesz się w magistralę, lub na maszynie kontroli jakości / pomostowej?
Jeśli masz maszynę pomostową, która znika z magistrali, i zakładasz, że cały kod przypisany do magistrali jest gotowy do produkcji ... eh .. to w którym momencie kod jest podpisany i dobrze jest rozpocząć produkcję zarówno od strony technicznej, jak i biznesowej perspektywiczny? Jeśli masz tylko jedną maszynę pomostową, wielu programistów i właśnie tam kod ma zostać poddany kontroli jakości, to jak możesz wdrożyć z magistrali, skoro wiele zmian programistów może oczekiwać na wypisanie się.
Chciałbym usłyszeć, jak inni podeszli do tego?