2010-03-02 6 views
24

Wiemy, że dobrze jest mieć, ale uważam, że usprawiedliwiam to dla mojego pracodawcy. Zastanów się, dlaczego zespół programistów potrzebuje serwera kompilacji.Dlaczego mój zespół programistów powinien mieć serwer kompilacji?

+1

Dziękuję za świetne odpowiedzi, oto zwrot na oryginalne pytanie. Mój pracodawca jest w porządku, jeśli ma maszynę wykonującą zadania CI. Moim wyzwaniem jest teraz uzasadnienie, dlaczego ta maszyna powinna być niezależna. Używałem serwera, którego cała firma używa do testowania, co oznacza, że ​​wszyscy się z tym pogodzili. Moim argumentem jest to, że potrzebujemy kontrolowanego środowiska (tak, jak wskazał Vladimir). Jakie są Twoje myśli? i Wolisz maszynę wirtualną lub dedykowaną maszynę? –

+1

@H. Abraham Chavez: To jest inne pytanie. Powinieneś zadać to jako nowe pytanie, a nie tutaj w komentarzu. –

Odpowiedz

18

Istnieje wiele powodów, aby używać budowanych serwerów. W szczególnej kolejności i bez mojej wiedzy:

  1. Upraszczasz obieg pracy programistów i zmniejszasz ryzyko pomyłek. Twój serwer kompilacji może zająć się wieloma krokami, takimi jak sprawdzenie najnowszego kodu, zainstalowanie wymaganego oprogramowania itd. Nie ma szans, aby programista miał jakieś zabłąkane pliki DLL na swoim komputerze, które mogą sprawiać, że kompilacja przechodzi lub wydaje się być przypadkowa.

    Twój serwer kompilacji może replikować swoje docelowe środowisko (system operacyjny itp.) I nie ma większych szans na pracę na desktopach programistów i przerywanie produkcji.

  2. Mimo że dobrą praktyką dla programistów jest testowanie wszystkiego, co sprawdzają, czasami po prostu nie. Wtedy dobrze jest mieć serwer kompilacji, aby złapać błędy testowe i powiadomić zespół, że produkt jest uszkodzony.

  3. Scentralizowane buduje zapewniają łatwy dostęp do metryk Code - Jakie badania minęło, który nie, jak często, jak dobrze jest kod objęte swoimi testów itp mający solidne zrozumienie stanu jakości kodzie zmniejsza konserwacji oraz testowanie kosztów poprzez dostarczanie w odpowiednim czasie informacji zwrotnej, która pozwala na szybkie i łatwe naprawianie błędów.

  4. Wdrożenie produktu jest uproszczone - programista lub kontrola jakości nie musi pamiętać wielu ręcznych czynności. Może być łatwo zautomatyzowany.

  5. Związek między programistami a kontrolą jakości jest uproszczony. Personel QA może udać się do znanej lokalizacji, aby pobrać najnowsze, dobrze zbudowane wersje.

  6. Łatwo ustawić kompilacje dla gałęzi wydań, zapewniając dodatkową ochronę dla produktów na etapie ich uwalniania, przy dokonywaniu zmian kodu należy zachować szczególną ostrożność.

20

Aby uniknąć problemu "ale działa w moim pudełku".

Mieć spójne, znane środowisko, w którym zbudowane jest oprogramowanie, aby uniknąć zależności od lokalnych skrzynek dev.

Możesz użyć serwera wirtualnego, aby uniknąć (znacznie) dodatkowych kosztów, jeśli zajdzie taka potrzeba.

4

JAK NAJSZYBCIEJ wiedzę na temat testów jednostkowych, które obecnie działają, a które nie; Ponadto dowiesz się również, czy jednorazowe testy jednostkowe zaczynają zawodzić.

3

Jest to ciągły deska rozdzielcza badanie jakości; pokazuje statystyki dotyczące jakości twojego oprogramowania i pokazuje je teraz. (JUnit, Cobertura)

Daje to pewność, że deweloperzy nie są hamowani przez innych deweloperów przerywających kompilację i zachęca programistów do pisania lepszego kodu. (FindBugs, PMD)

Pozwala to zaoszczędzić czas i pieniądze przez cały rok dzięki lepszemu kodowi od programistów za pierwszym razem - mniej pieniędzy na testowanie i ponowne testowanie - oraz dzięki uzyskaniu większej ilości kodu od tych samych programistów, ponieważ są one mniej prawdopodobnie wzajemnie się potkną.

3

dwa główne powody, dla których ludzie spoza techniczne mogą odnosić się do:

  • poprawia produktywność zespołu dev ponieważ problemy zostały zidentyfikowane wcześniej.

  • To sprawia, że ​​stan projektu jest bardzo oczywisty. Pokazałem mojemu menadżerowi pulpit stanu kompilacji i teraz cały czas go oglądają.

Jeszcze jedno. Coś takiego jak Hudson jest bardzo proste do skonfigurowania - możesz chcieć po prostu uruchomić go gdzieś w kącie, a potem pokazać później.

2

To jest mój główny argumentem:

  • wszystko oficjalnych wydaniach należy budować w kontrolowanym środowisku. Bez wyjątku.

po prostu dlatego, że nigdy nie wiesz, jak programiści tworzą swoje osobiste wydania.

Nie musisz też mówić o serwerze jak "ostrze, które kosztuje rękę i nogę". Pierwszym skonfigurowanym przeze mnie serwerem konfiguracji był komputer stacjonarny, który znajdował się w rogu. Służyło nam to bardzo dobrze przez ponad 3 lata.

Jeden masz swoją maszynę do kompilacji, możesz zacząć dodawać funkcje (Hudson jest świetny) i wdrażać wszystko, o czym wspomniały inne plakaty.

Gdy maszyna kompilacji staje się niezbędna do organizacji (i każdy widzi swoje zalety), będzie można poprosić o nowe błyszczące ostrze jeśli chcesz :-)

0

Najprostszą rzeczą, jaką możesz zrobić, aby przekonać Twój pracodawca, aby mieć serwer kompilacji, ma mu powiedzieć, że będzie w stanie szybciej zwolnić i uzyskać lepszą jakość .

Szybsze wersje pochodzą z natychmiastowej informacji zwrotnej na temat jakości kompilacji. Jeśli ktoś złamie kompilację, może natychmiast naprawić uszkodzoną kompilację, unikając opóźnień w harmonogramie kompilacji i wydania. Bez serwera kompilacji zespół będzie musiał spędzić czas, próbując znaleźć co i kiedy i jak to naprawić.

Lepsza jakość jest uzyskiwana przez serwer budowania z uruchomionymi narzędziami do wykrywania błędów automatycznie za każdym razem, gdy ktoś przechodzi do systemu kontroli wersji. Nie wspominasz, jaki jest główny język programowania w twojej organizacji, ale takie narzędzia, zaawansowane, ale komercyjne i proste, ale darmowe, istnieją praktycznie dla wszystkich języków. Lint, FxCop, FindBugs i PMD przychodzą na myśl.

Możesz również sprawdzić tę presentation on benefits of continuous integration, aby uzyskać szerszą dyskusję.

Powiązane problemy