Ocena ilościowa zalet nowoczesnego systemu kontroli wersji [zamknięty]


24

Przez prawie trzy lata pracowałem jako kierownik zespołu / programista w środowisku dużych przedsiębiorstw finansowych. Nasz proces produkcji jest koszmarem, ponieważ obraca się wokół Clearcase. Mamy grupę zarządzającą zmianami, która wykonuje wszystkie wydania i która zezwoli tylko na kod, który został pobrany z produkcji.

Jedną z pierwszych rzeczy, które zrobiłem, kiedy dołączyłem, było skonfigurowanie mojego zespołu z Git. Wszyscy zgodzili się, że Clearcase jest okropny i niepraktyczny w codziennej obsłudze źródeł. Więc stworzyliśmy coś w rodzaju „nieoficjalnego” repozytorium na mojej lokalnej maszynie i napisałem skrypt, aby zsynchronizować nasze repozytorium git i Clearcase około czasu wydania.

Wieść o tym rozprzestrzeniła się na inne zespoły, a kilka z nich przyjęło ten sam proces. Używanie gita w „nieoficjalny” sposób w codziennych czynnościach i „oficjalnie” w przypadku Clearcase. Stałem się typem faceta w przypadku jakichkolwiek problemów z Git.

W tym tygodniu mam spotkanie z SVP w sprawie zmiany infrastruktury, która konkretnie chce, żebym wyjaśnił jej zalety Git. Najwyraźniej dotarły do ​​niej wieści o moich częstych narzekaniach na Clearcase. Jeśli zaakceptuje moje argumenty, będę miał naprawdę szansę, aby pomóc mojemu pracodawcy pozbyć się tej obrzydliwości.

Moje doświadczenie z menedżerami mówi mi, że a) chcą bardzo zwięzłych wyjaśnień na temat wszystkiego b) interesują się tylko faktami, które dotyczą liczb w dolarach

Deweloperowi mogę wyjaśnić zalety Git w stosunku do Clearcase (lub DOWOLNEGO innego systemu kontroli wersji w stosunku do Clearcase w tej kwestii), ale rysuję puste wyjaśnienie, jak to zrobić szefowi technicznemu bez wiedzy technicznej (ona ma MBA i zrobił jej licencjat z geografii).

Wydaje mi się, że jakikolwiek argument, który jej przedstawię, będzie albo brzmiał jak techniczny bełkot, albo że ewangelizuję moje osobiste preferencje.

To, co próbuję znaleźć, to konkretne fakty świadczące o tym, że programiści pracują efektywniej z Git lub DOWOLNYM nowoczesnym systemem kontroli źródła.

Myślę, że fakt, że inne zespoły zaczęły używać Git wewnętrznie, jest znaczącym znakiem, ale wciąż nie jest wystarczająco silny, ponieważ nadal można go odrzucić jako osobistą preferencję.

To, czego naprawdę potrzebuję, jest wystarczająco potężne, aby przebić się przez „Ten proces działał przez 20 lat, dlaczego powinniśmy go zmienić?” argument.


4
Myślę, że oceniasz je, jeśli uważasz, że interesują ich tylko fakty z danymi o dolarach. I mogą chcieć zwięzłych wyjaśnień, ponieważ pełne wyjaśnienie może oszukać je w coś, czego nie rozumieją. Najlepszym rozwiązaniem może być podanie listy dobrych rzeczy, które ma Git, ale ClearCase nie. Niemniej jednak uważam, że kierownictwo środowiska korporacyjnego nie ufa oprogramowaniu typu open source, szczególnie jeśli istnieje dobrze znana wersja dla przedsiębiorstw.
Poinformowano


2
Zademonstruj, o ile więcej za pomocą git sprawia, że ​​Ty (i inne zespoły) skutecznie wykonujesz swoje obowiązki. Nie zgłaszaj się na ochotnika zastępując ClearCase bez wysłuchania uzasadnienia, ale pokaż, gdzie są codzienne korzyści. Funkcja ClearCase może być wymagana do kontroli kompilacji lub śledzenia problemów w całym projekcie, w których Github nie jest silny.
Kevin

3
Jeśli są zainteresowani dolarami, pokaż im roczne opłaty licencyjne ClearCase oraz personel, który musisz zapłacić, aby je utrzymać.
17 z 26

3
„zawieszone jako oparte głównie na opiniach”. Nie zgadzam się z tym. Z mojego pytania „Staram się znaleźć konkretne fakty świadczące o tym, że programiści pracują efektywniej z Git”. Na czym opiera się opinia?
Mike,

Odpowiedzi:


22

Byłem w bardzo podobnych sytuacjach (w przemyśle lotniczym i motoryzacyjnym). Nie spodziewaj się postępów na tym lub kolejnych spotkaniach. Obie te sytuacje przerosły moje pragnienie kontynuowania walki o poprawę, ale oto najlepsza taktyka, jaką do tej pory widziałem ...

Mówisz „ten proces działał od 20 lat”, ale czy naprawdę? Zacznij od wyjaśnienia, co masz na myśli mówiąc, że „nasz proces produkcji jest koszmarem”. Utwórz listę problemów z bieżącym procesem / narzędziem, które będą możliwie najbardziej niezależne od ClearCase.

Następnie utwórz listę „rozwiązań” procesowych / narzędziowych, które są tak agnostyczne jak Git (choć Git lub jakikolwiek nowoczesny DVCS będzie dokładnie pasował do rachunku). Wyjaśnienie, dlaczego Git jest lepszy niż ClearCase, nic nie znaczy dla osób niebędących użytkownikami.

Pozwól zespołowi infrastruktury potwierdzić, że obecne podejście ma zidentyfikowane problemy. To prawdopodobnie doprowadzi ich do zwrócenia się do IBM o pomoc w „naprawieniu” tych problemów. Pozostań w kontakcie, aby zapewnić, że IBM nie rozwiąże problemów. Ponieważ ClearCase nie ma podstawowych właściwości naszego nowoczesnego rozumienia kontroli wersji, większość z tych problemów nie może zostać naprawiona lub będzie wymagać poważnej zmiany infrastruktury.

Mamy nadzieję, że do tego momentu zespół ds. Infrastruktury uzna to za problem biznesowy, ale bez łatwego rozwiązania. W tym momencie proponujesz porównać dodatkowe rozwiązania z szacowanymi kosztami. Ponieważ wiele Twoich zespołów korzysta już z Git, powinieneś być w stanie usunąć szkolenie jako wydatek.

Powodzenia!


Uwaga: ClearCase nie ma 20 lat.
Jan Hudec

2
Nie sądzę, abyś znalazł coś, czego nie można zrobić z ClearCase. Ale wiele rzeczy będzie znacznie bardziej skomplikowanych dzięki ClearCase i, co ważniejsze, powolnych jak melasa . Na szczęście coraz rzeczy zrobić szybciej jest argumentem większość menedżerów będzie akceptować.
Jan Hudec

10
@JHHecec pierwsze wydanie Rational ClearCase miało miejsce w 1992 roku, dzięki czemu miało 22 lata.
private_meta

@private_meta: Hm, nie wiem, dlaczego pamiętam 1998.
Jan Hudec

14

Nasz proces produkcji jest koszmarem, ponieważ obraca się wokół Clearcase. Mamy grupę zarządzającą zmianami, która wykonuje wszystkie wydania i która zezwoli tylko na kod, który został pobrany z produkcji.

Nie, twój proces jest „koszmarem” z powodu twojej grupy zarządzania zmianami i procedur wydawania. Śmiało i zamień Clearcase na SVN, git lub Fossil. Będziesz miał dokładnie te same problemy . (Myślę, że robią to dobrze TBH, silna kontrola uwalniania jest niezbędna).

Na tym musisz się skupić, a nie na naukowym poświadczeniu git (które są nieistotne dla wszystkich oprócz deweloperów), musisz skupić się na uzasadnieniu biznesowym, aby zmienić proces tak, aby był mniej uciążliwy. Możliwe, że możesz to zrobić za pomocą Clearcase, ale daje ci to szansę, aby w jakiś sposób podkręcić pomysł użycia git.

Jeśli nie spojrzysz na „większy obraz” tutaj, najlepszym rozwiązaniem jest użycie git z tymi samymi ograniczeniami, jakich wymaga grupa wydań. Jeśli zastanowisz się nad szerszymi aspektami kontroli zmian, docenisz ograniczenia, które musisz wprowadzić, aby git był użyteczny w rodzaju ściśle kontrolowanego procesu wydawania, jakiego potrzebuje twoja organizacja.


Kilka pomysłów dla Ciebie: spraw, by zobaczyli problemy z produktywnością obecnego systemu z punktu widzenia programisty. Zrób to jako część 1 z 2. Część 2, idź i pracuj z nimi nad wydaniem, aby zobaczyć problemy kontrolne, które deweloperzy powinni zrozumieć. Potraktuj to jako ćwiczenie edukacyjne dla obu stron, aby zobaczyć widok drugiej strony, a wtedy powinieneś być w stanie wymyślić rozwiązanie, które nadal rozwiązuje główne wymagania każdej ze stron. Zwróć uwagę, że wydania są ważniejsze od wersji deweloperskich, więc powinieneś być tym, który przygotuje się dać więcej niż się spodziewasz.

Po uzyskaniu wiedzy na temat tego, co jest wymagane do wydania, należy wyrazić zgodę na napisanie szczegółowego dokumentu procesowego (zawierającego szczegółowe informacje na temat kolejnych kroków), który można pokazać, podając mu to, czego potrzebują. Jak możesz to masować, aby strona deweloperów była dla Ciebie lepsza, zależy od Ciebie. Wyobrażam sobie, że tak naprawdę nie obchodzi ich, jak deweloper tworzy, o ile źródło jest odpowiednio zarządzane i odpowiednio wydawane - oznacza to, że będziesz musiał pokazać, w jaki sposób można powiązać zmiany kodu, aby zmienić bilety, jak pobrać kod, który stworzył wydanie do łatania, kompilowania i ponownego wydawania.


Cóż, być może największym problemem z ClearCase jest to, że jest wolny jak melasa. Więc jeśli proces jest skomplikowany (i może być ku temu dobry powód), przejście na coś szybszego poprawiłoby to.
Jan Hudec

1
@ JanHudec Pamiętam Clearcase ... nie było tak wolno w miejscu, w którym pracowałem, ale może to jeden z tych produktów, w których repo umieszczane jest na serwerze w odległym korporacyjnym centrum danych otoczonym wieloma warstwami bezpieczeństwa i routingu. Myślę, że OP miałby większą szansę na SVN lub TFS niż git, ale to nie jest jego serce.
gbjbaanb

3
ClearCase to w zasadzie sieciowy system plików z wersjonowaniem. Tak więc pasmo sieciowe, a zwłaszcza opóźnienia, mają dla niego duże znaczenie. W przypadku lokalnej repliki większość operacji była możliwa do zniesienia (ale nadal dużo wolniejsza niż w git, który jest przeznaczony do prędkości), ale niektóre operacje były straszne. Najgorsze, co zrobiłem, to oznaczenie wszystkich plików do wydania, co zajęło 15 minut i nie był to wyjątkowo duży projekt.
Jan Hudec

1
+1 za wskazanie, że jest to problem „ludzi”, a nie problem technologiczny.
kdgregory,

1
Największym koszmarem, jaki miałem z Clearcase, było to, że podobnie jak CVS, był on wersjonowany tylko na poziomie poszczególnych plików; co oznacza, że ​​problemy z scalaniem / etc spowodowałyby, że najnowsza wersja CC stała się zepsutą kompilacją i niemożnością przywrócenia całej bazy kodu z powrotem do dowolnej daty / godziny. Korzystanie z opcji wykonania widoku lokalnego zamiast wirtualnego dysku sieciowego znacznie zmniejszyło ból związany z opóźnieniami we / wy.
Dan Neely,

6

Konkretne przykłady będą bardziej niż abstrakcyjne zalety. Myślę, że odniesiesz największy sukces, jeśli potrafisz udokumentować konkretne przykłady, w których (a) Clearcase spowodował problemy, które wymagały czasu, a (b) Git rozwiązał te problemy. Pamiętaj, że nie musisz wchodzić w szczegóły techniczne, dlaczego tak jest (chyba że zostaniesz o to poproszony), po prostu pokaż, że tak jest; kierownictwo nie musi znać szczegółów technicznych, za to płacą.

Jeśli możesz dołączyć określone terminy i daty do tych przykładów, tym lepiej. Możesz również być w stanie to uzupełnić, pokazując, że zadanie X, które wykonujesz dużo, zajmuje Y minut w Clearcase i Z minut w Git.

Pamiętaj, że czas to pieniądz, więc jeśli możesz pokazać, że praca z Gitem jest szybsza , możesz pokazać, że będzie to również miało sens finansowy.


3

Oto próba tego, jak bym tego spróbował.

Może to zabrzmieć głupio dla dewelopera, ale dla kierownictwa zmiany technologiczne są postrzegane jako ryzykowne.

„Jeśli magia już działa, to po co ryzykować jej zniszczenie?”

Dlatego musisz obrócić stół. Zwiększ ryzyko, aby nie przejść na git. Za wszelką cenę nie sprawiaj, że będzie to nowa zabawka.

Zacznę od stwierdzenia, że ​​git jest obecnie szeroko stosowany. Użyj liczb, takich jak: http://ianskerrett.wordpress.com/2014/06/23/eclipse-community-survey-2014-results/

Dla menedżera oznacza to, że powinni być w stanie znaleźć wielu programistów używających git. I cały ekosystem narzędzi innych firm (słyszałem, że nawet Microsoft integruje teraz git ze studiem wizualnym).

Poza tym menedżera nie można tak naprawdę obwiniać za przestrzeganie głównych zasad, prawda? Dla kontrastu, kto tutaj używa $ other_cvs?

Połóż nacisk na to, jak duże projekty go używają, ponieważ jest prosty, szybki, elastyczny, potężny ... Znajdź duże projekty z dołączonymi dużymi nazwami (GNU / Linux, Google, Microsoft ...), które używają git.

Po wykazaniu, że nie może to być zły ruch, możesz przejść do tego, jak poprawiłoby to sytuację w twoim przypadku.

Chcesz, aby firma pozostała konkurencyjna i aby nie wyprzedzały jej szybsze, sprawniejsze zespoły, prawda? Spróbowałbym znaleźć jakieś wewnętrzne (pisemne) oszacowania dotyczące zmiany wydajności przy użyciu Clearcase vs. Git. Możesz skorzystać z pomocy innych programistów. Następnie dokonaj ekstrapolacji dla całej firmy (tj. Wszystkich programistów), podając liczby i szacunkowy koszt pobytu w Clearcase.

Chciałbym nawet, jeśli to stosowne, podsumować całość w pisemnym e-mailu po spotkaniu (w tym odpowiednie osoby).


1
Jeśli mają dedykowany dział wydań, prawie na pewno nie dają figi o „szybszych, bardziej zwinnych zespołach”. Prawdopodobnie nie dbają też o produktywność programistów. Będą dbać o niezawodność, identyfikowalność zmian i kontrolę tego, co znajdzie się w wydaniu.
gbjbaanb

@ gbjbaanb Dobra uwaga, jednak nie widziałem, jak się o to kłócić w dyskusji z menedżerem, gdy inny CVS jest już używany.
nha

1

To, czego naprawdę potrzebuję, jest wystarczająco potężne, aby przebić się przez „Ten proces działał przez 20 lat, dlaczego powinniśmy go zmienić?” argument.

Jest to nieważny argument (powozy konne „pracowały od stuleci”, ale prawdopodobnie zamiast tego chcesz kupić samochód).

Słyszałem ten sam argument na temat svn vs. mercurial (to ja korzystałem z mercurial w moim systemie programistycznym).

Ten problem nie polega na zamianie tego, co działa; Nie próbuj tego tak wyrażać, a jeśli to jest pytanie, które musisz „pokonać”, powinieneś zacząć od wskazania, że ​​nie jest to kwestia tego, co działa, czy nie - ale kwestia tego, jakie korzyści masz z git , gdy oba działają (i dlaczego git działa lepiej).

Dobre argumenty za użyciem git:

  • git jest skoncentrowany na zestawie zmian zamiast na pliku. Oznacza to, że zmiany łatwiej śledzić w różnych plikach (możliwość śledzenia w całym projekcie).

  • git jest dystrybuowany zamiast scentralizowany; Oznacza to, że odprawa nie jest ograniczona szybkością sieci - znowu oszczędza dużo czasu. Oznacza to również, że nie ma ani jednego punktu awarii w przypadku awarii serwera ClearCase.

  • ze względu na swój rozgałęziony system git minimalizuje potrzebę scalania (tzn. nie scalasz plików przy każdym zameldowaniu, ale przy każdej zakończonej funkcji). Przełączasz się z rozwiązywania konfliktów scalania (jeśli występują) kilka razy dziennie (przy każdym zatwierdzeniu) na raz lub dwa razy w tygodniu (przy każdej zakończonej funkcji). Oznacza to więcej czasu dla programistów (coś, co menedżerowie będą chcieli zmaksymalizować).

Myślę, że fakt, że inne zespoły zaczęły używać Git wewnętrznie, jest znaczącym znakiem, ale wciąż nie jest wystarczająco silny, ponieważ nadal można go odrzucić jako osobistą preferencję.

Możesz zauważyć, że różnica jakościowa jest tak duża , że programiści z Twojej firmy wolą komplikacje związane z instalacją, konfiguracją i używaniem git, oprócz Clearcase, ze względu na dodatkowe funkcje. W rzeczywistości jest to mocny argument (jeśli nie zapewniłby całkowicie lepszego doświadczenia użytkownika i zestawu funkcji, ludzie nie zrobiliby więcej, aby go użyć - zwłaszcza, że ​​jest to coś, czego firma nie wymaga).

W tym tygodniu mam spotkanie z SVP w sprawie zmiany infrastruktury, która konkretnie chce, żebym wyjaśnił jej zalety Git.

Narysuj wykres reprezentujący zatwierdzenia z dwoma systemami i pokaż usprawnienie uzyskane przez programistów, którzy nie biorą udziału publicznie (tzn. Jeśli rozwiążesz plik, reszta zespołu nie zostanie zablokowana i nie będzie w stanie go skompilować, dopóki go nie naprawisz). Wyjaśnij także dodatkowe kontrole jakości, które możesz wprowadzić, gdy możesz dokonywać pośrednich zmian bez wpływu na innych, fakt, że możesz uzyskać czyste różnice dla poszczególnych funkcji (niezbędne do recenzji kodu).


3
Zarządzanie nietechniczne prawdopodobnie nie będzie obchodzić tych argumentów.
jcm

1
Problem z przywołaniem konkretnych punktów porównania polega na tym, że musisz bardzo dobrze znać alternatywy , w przeciwnym razie zostaniesz rozerwany. W przypadku tej odpowiedzi jedynym ważnym punktem jest „rozproszony vs scentralizowany”, a nawet wtedy musisz być przygotowany na „masz na myśli, że każdy potencjalnie niezadowolony pracownik ma całe nasze repozytorium źródłowe na swoim laptopie?!?”
kdgregory

2
@kdgregory Każdy niezadowolony pracownik ma również kilka plików zip i osobistych repozytoriów kodu, ponieważ ClearCase jest zbyt wolny i uciążliwy do pracy w 100% przypadków. :-)
Jace Browning

@kdgregory i rzucą się na „możesz się zameldować bez przechodzenia na serwer, co jeśli twój komputer się zawiesi, stracisz wszystkie swoje zameldowania. Gdzie są kopie zapasowe? w jaki sposób kontrolujemy pojedynczy strumień źródeł, aby zbudować każde zwolnić z? ”
gbjbaanb

1

To, czego naprawdę potrzebuję, jest wystarczająco potężne, aby przebić się przez „Ten proces działał przez 20 lat, dlaczego powinniśmy go zmienić?” argument.

Trudno naprawdę ocenić, co byłoby dobrym argumentem, nie będąc świadkiem sceny. Ale postaram się pomóc w sformułowaniu argumentów, aby mogły zostać wysłuchane.

Zakładam, że twoi odbiorcy nie posiadają wiedzy eksperckiej na ten temat i są zainteresowani utrzymaniem obecnego kursu. Mają różne obawy i obowiązki i mogą ponieść poważne konsekwencje, jeśli coś pójdzie nie tak, więc będziesz musiał pracować z tego sposobu myślenia. Przewiduj niektóre pytania lub wątpliwości, które mogą mieć:

  • Jakie nowe możliwości to przyniesie? Czy jest coś, czego obecnie nie możemy zrobić, co chcielibyśmy zrobić i na co pozwoli nam ta nowa rzecz? Zacznij od pozytywnej nuty.

  • Jaki jest wpływ na harmonogramy wydań? Ile kosztuje wdrożenie tej zmiany w stosunku do najbliższej wersji? Jakie są koszty i korzyści wynikające z kolejnych wydań?

  • Czy pociągnie to za sobą zmianę procesu? Czy w odróżnieniu od harmonogramu wydania zmiany będą wymagały zmiany osób w procesie wydawania? Czy będzie to dla nich przejrzyste, czy będą musieli się dostosować? Czy będziesz musiał współpracować z innymi działami? Ludzie są odporni na zmiany.

  • Czy grozi niebezpieczeństwo związane z trzymaniem się obecnego systemu? Czy w obecnym procesie występują zależności oprogramowania lub sprzętu, które minęły lub wkrótce przestaną być używane? Czy opiera się na specjalistycznej wiedzy osób, które podnoszą koszty zatrudnienia? Czy ma potencjalną lukę w zabezpieczeniach, którą zatkany jest nowy system (dodatkowe punkty, jeśli dziura ta może prowadzić do działań prawnych)? Nie machaj ręką, ani „może”, ani „prawdopodobnie” tego: chodzi o to, że działał dobrze przez 20 lat, więc ciężar dowodu spoczywa na zwolenniku zmiany.

Ponadto, za szczególne o problemach i rozwiązaniach . Jeśli nie możesz znaleźć konkretnych przykładów, użyj uczciwych danych szacunkowych ze swojego stanowiska jako eksperta. Pomogą Ci przykłady innych firm / działów / podmiotów, które przyjmą taką zmianę, najlepiej z Twojej branży, oraz ich ocena tej zmiany. (Nie wybieraj przykładów, które miały jakiś upubliczniony problem informatyczny w ostatnich latach, bo spoczywa na tobie obowiązek udowodnienia, że ​​ta zmiana nie była przyczyną).

Możesz znaleźć tę odpowiedź, aby przekonać firmę, dla której pracuję, aby wdrożyć kontrolę wersji? pomocny.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.