Jestem kierownikiem projektu w mojej firmie. Współpracuję z kilkoma zespołami programistów korzystających ze standardowego, dobrze znanego systemu kontroli wersji znanego jako CVS. Chciałbym, aby ciągła integracja i automatyczne kompilacje były wdrażane, aby zapobiec problemom z przerwaniem kompilacji i nieprawidłowymi wdrożeniami wkradającymi się na serwery produkcyjne.
Jestem pewien, że mogę to skonfigurować samodzielnie, ale nie chcę tego robić z dwóch powodów:
Nie mam na to czasu. Mam własne obowiązki, które obejmują marketing, komunikację z innymi interesariuszami z członkami zespołu, którzy nie uczestniczą w pracach rozwojowych, komunikację z klientami i planowanie projektu.
Co najważniejsze, jestem kierownikiem projektu. Moim celem jest zapewnienie przywództwa, a nie mikro-zarządzanie zespołem programistów .
Co mogę zrobić, aby znaleźć kogoś z zespołu programistów, który pasjonowałby się konfiguracją? Czy programista jest odpowiednią osobą do tego zadania, biorąc pod uwagę, że wymaga ona znajomości Java, Spring i Google App Engine? Jakie wskazówki pomagają promować zmiany tam, gdzie się ich obawiasz?
Odpowiedzi:
Najpierw zbadałem kilka możliwości. Na przykład Hudson jest dość popularnym serwerem ciągłej integracji i jest niezwykle elastyczny. Możesz wysłać e-mailem do swojego zespołu programistów za pomocą czegoś takiego:
Podejście to ma następujące zalety:
W moim próbnym scenariuszu
Dave
został wybrany, ponieważ ma najmniej na swoim talerzu i prawdopodobnie nie miałby problemu z konfiguracją nowego serwera. W zależności od obciążenia pracąDave
może to być tylko Ty. To tak subiektywne, że po prostu o tym wspominam. Nie zawsze możesz powiedzieć,not my job to do that
zwłaszcza jeśli jesteś jedynym, który ma na to czas. Jeśli wszyscy już z czasem się wycofują, ważniejsze staje się ich postrzeganie chęci pomocy. Pomiar umiejętności to umiejętność rozwijana z czasem.W każdym razie albo będziesz mieć serwer CIS do piątku, albo szczegóły, dlaczego po prostu nie jest to możliwe bez dodatkowego zestawu rąk.
źródło
not my job
karty, żeby wyjść z pracy, ale ponieważ kierownicy projektów łatwo czasem zbyt mocno angażują się w to, co robi zespół programistów. Przekazując to rozwojowi, daję im kontrolę i panowanie. Ponadto, jeśli zajmą się konfiguracją, najprawdopodobniej skorzystają z niej, natomiast jeśli ją skonfiguruję, zdobędę przyjemne doświadczenie w zakresie konfiguracji ciągłej integracji, ale bez ROI i kosztu alternatywnego dawania na moich innych zadaniach. Również przykładowy adres e-mail jest bardzo pomocny :) +1Widzę, że idą na trzy możliwe sposoby:
Poproś kogoś z zespołu deweloperów o szybką ocenę możliwych narzędzi i niech szybko coś wymyśli. Jeśli twoje indywidualne projekty mają odpowiednie skrypty kompilacji (tj. Możesz budować projekty poza IDE), to powinno być dość szybkie podłączenie ich do CI.
Traktuj infrastrukturę kompilacji jako wewnętrzny projekt w zespole i zarządzaj nią jako taką. Nieco bardziej zaangażowany niż pierwszy punkt, ale jeśli zrobisz to dobrze, otrzymasz lepszy system. Również rozpowszechnianie wiedzy w zespole zmniejszy ryzyko nadmiernej specjalizacji wymienione poniżej. Zyskujesz także korzyści z wzajemnej oceny. Jednak niektórzy programiści mogą postrzegać to zadanie jako poniżające i jako takie mogą nie wydawać na to tyle, ile powinni.
Zatrudnij programistę jako mistrza budowy i poproś go, aby ustawił wszystkie narzędzia. Następnie nadal wykorzystuj go do ulepszania systemu, dodawania wskaźników, automatycznego generowania dokumentów, zautomatyzowanych testów itp. Jest to bardziej kosztowne, ale jeśli zostanie wykonane prawidłowo, inwestycje w tę osobę bardzo szybko się zwrócą, zwiększając efektywność zespołu programistów. Ta osoba powinna biegle posługiwać się językami i strukturami używanymi przez Twój zespół i pragnąć przykleić je w systemie. Z drugiej strony (na podstawie komentarzy) może to nie mieścić się w twoim budżecie, a utworzenie specjalistycznej pozycji może doprowadzić do niedostatecznie udokumentowanego rozwiązania, które może utrudnić przejście.
To powiedziawszy, zanim zaczniesz cokolwiek, upewnij się, czego naprawdę chcesz od tego. W twoim pytaniu brakuje trochę szczegółów, aby skierować Cię we właściwym kierunku technicznym. Musisz wiedzieć, jakie korzyści chcesz osiągnąć dzięki takim narzędziom, potrzebujesz ogólnej wizji pożądanego systemu. Można stworzyć długą drogę do stworzenia środowiska, które to wszystko wiąże, ale bez planu budowania przeciwko tobie można także uruchomić koła i sprawić, że sprawy staną się bardziej skomplikowane niż są.
Menedżer, który powiedziałem kiedyś, że narzędzia są dobre, ale bez procesu są bezużyteczne. Chciałbym tylko, żeby kontynuował to, co powiedział, kiedy nadszedł czas, aby je wprowadzić ...
Jeśli więc zdecydujesz się kogoś zatrudnić, zyskasz programistę, a nie kogoś z większym doświadczeniem IT. Chodzi przede wszystkim o to, że osoba ta może poświęcić trochę czasu i energii na tworzenie kodu kleju i wtyczek, które zintegrują różne systemy razem w spójny system.
Mam nadzieję, że to pomogło
źródło
Jeśli pełnisz rolę lidera, Twoim zadaniem jest identyfikacja brakujących elementów / praktyk oraz odpowiedzialność za prawidłowe wdrożenie. Zadanie wdrożenia może być delegowane lub nie, ale ostatecznie to odpowiedzialność przywódców.
Kluczem do akceptacji jest zrozumienie lub przynajmniej danie ci korzyści z wątpliwości. Możesz porozmawiać o tym, co chcesz zrobić, i podnieść koszty i korzyści. Jeśli dyskusja nie przyniesie zrozumienia, możesz polegać na ich zaufaniu w twoich decyzjach, ale tylko wtedy, gdy stworzysz tego rodzaju naprawę.
Jeśli Twój delegat spełnia ograniczenia czasowe wiedzy specjalistycznej, przywołaj ją podczas spotkania w zespole lub w zespole i poproś o wolontariusza. Jeśli nikt nie nadchodzi, po prostu przypisz to tak, jak każdą inną pracę.
aktualizacja:
W każdej firmie istnieje struktura organizacyjna. Rola przywódcza odpowiada za zasoby na tym poziomie. Są również odpowiedzialni za wskazywanie i rozwiązywanie wszelkich problemów. Mogą potrzebować dodatkowych zasobów i / lub sugestii, w którym momencie pójdziesz w górę łańcucha. Jeśli możesz poradzić sobie z tym problemem, masz możliwość samodzielnego wdrożenia rozwiązania lub delegowania. To może i powinno obejmować osoby, na które wpłynie bezpośrednio, najlepiej we współpracy z nimi.
Nie mogę powiedzieć, że poziom dyrektora i wyższe stanowiska nigdy nie powinny być bezpośrednio odpowiedzialne za określoną osobę lub grupę w firmie. To zależy od struktury organizacyjnej firmy. Pracowałem w start-upach, w których CTO był bezpośrednio odpowiedzialny za programistów i testerów. W bardziej tradycyjnym większym przedsiębiorstwie zarząd na tym poziomie nie miałby wymaganej widoczności ani znajomości wymaganej do podejmowania właściwych decyzji na niższych poziomach.
źródło
Jestem głównie programistą i konfiguruję go, kiedy mogę (a mianowicie, gdy nie jestem wyraźnie zabroniony). Ogólnie, ponieważ miejsca, w których pracuję, to sklepy .NET, wybieram CruiseControl.NET, ponieważ jest to oprogramowanie typu open source, działa z większością głównych systemów kontroli źródeł i jest stosunkowo łatwe w użyciu. Zawsze chciałem ustawić Ambient Orb jako jedno z wyjść, ale zwykle jest to poza moją kontrolą.
Przywołaj to na spotkaniu, aby najpierw sprawdzić, czy ktoś ma na to ochotę - pod warunkiem, że nie wpłynie to na projekty, nad którymi aktualnie pracują.
W moim obecnym miejscu (jednym z krajowych laboratoriów), mamy to skonfigurowane, aby tworzyć kompilacje w spójny sposób, aby ludzie, którzy chcą zobaczyć, co robimy, mogą uzyskać wersję do uruchomienia w dowolnym momencie . Nie chcą testów jednostkowych (menedżer projektu ma wrażenie, że wysiłek włożony w testy jednostkowe mógł zostać włożony w przeniesienie projektu do .NET).
W poprzednim miejscu moim zamiarem było stworzenie standardowych i spójnych wersji dla wszystkich produktów. Zbyt wiele produktów można było zbudować tylko na jednym specjalnym komputerze (w przypadku jednego produktu, obejmującego kontrolę innej firmy z agresywnym mechanizmem DRM, który dawno temu zakończył działalność, musieliśmy utrzymać jedną maszynę przez około 5 lat po odejściu dewelopera ponieważ jego był jedynym, który mógł zbudować ten obecnie zastępowany produkt wysyłkowy. Co więcej, instalacje mogą wykonać tylko jedna osoba, która była poranną osobą - więc jeśli potrzebujesz kompilacji po około 15:00, czekałeś do następnego dnia.
To zależy. Jeśli masz osobę z działu kontroli jakości, która jest przyzwoita w pisaniu skryptów, zapytaj ją najpierw, zanim ją do niej przypisasz.
Ustawienie go na początek nie jest skomplikowanym zadaniem. Konfiguracja nie powinna zająć więcej niż kilka dni (głównie w środowisku korporacyjnym, kłopoty z założeniem konta do działania z wszystkimi wymaganymi uprawnieniami) i uruchomienie.
źródło
Spróbuj ustawić go z innej strony - gdy wystąpi problem w środowisku produkcyjnym, spoczywaj na zespole programistów, aby go naprawić i naprawić szybko. Następnie przedstaw pomysł prostej kompilacji nocnej, która kompiluje się z najnowszego kodu, pieczęci wersji itp. Jeśli kompilacja się nie powiedzie, nie będzie promowana.
Myślę, że skrypt kompilacji powinien być własnością dewelopera. Kiedy modyfikują zależności lub wprowadzają zmiany, najlepiej wiedzą, jak zaktualizować skrypty. I powiedz im, że jeśli zarządzanie projektem jest jego własnością, po prostu wezwiesz ich na spotkanie, gdy tylko pojawi się problem.
źródło
Możesz po prostu powiedzieć na następnym spotkaniu, „OK, myślę, że powinniśmy to zrobić. Kto może to wdrożyć” Daję ci lepsze niż nawet szanse, że ktoś powie „Pewnie, że to zrobię”. to nie musisz się o to kłócić.
źródło