Tak Forresti taky přešli na Git, paní Müllerová

Ve Forrestu jsme jako verzovací systém používali po velmi dlouhou dobu prastaré CVS. Respektive v době, kdy se s tím ve firmě začínalo (pamětníků už je jen hrstka), to zase až tak zastaralý systém nebyl (mluvíme o roku 2000).

Dlouhou dobu jsme zvažovali náhradu za nějaké modernější VCS, ale nikdo se toho nechtěl osobně ujmout a byla tady celá řada překážek, se kterými bychom se museli kvůli přechodu vypořádat. Kromě infrastruktury (háčky do issue trackeru, build a install skripty, zálohování atd.) jsme měli obavu i o to, jak by přechod zvládly ty desítky vývojářů, kteří CVS používají – kritickým místem se zdál být tým webmasterů starající se o drobné úpravy na existujících projektech (v řádu desítek úprav denně). Prostě jsme hledali výmluvy, protože se nám do migrace nechtělo – zvlášť, když jsme neměli uvnitř firmy nikoho, kdo by nějaké nové VCS evangelizoval.

Samozřejmě existovaly i poměrně důležité motivy, proč se do migrace pustit – kromě nešvarů, které CVS mělo od svých prvopočátků (nemožnost odstraňovat složky, nemožnost přesunovat soubory – tj. při refaktoringu docházelo ke ztrátě historie, obtížné slučování nezávislých vývojových větví atp.), jsme věděli, že i vývojářské nástroje dříve nebo později začnou od podpory CVS ustupovat, a i kdyby ne, investice do tohoto VCS bude nulová. Svět už prostě CVS nezajímá poměrně dlouho a jiné to nebude. Řada z nás tak měla pocit, že nám tady ujíždí (pokud už dávno neujel) vlak. Někteří sice na několika OS projektech přišli do styku s Gitem, ale to rozhodně nestačilo na to, abychom se ho dokázali pořádně naučit.

Zkrátka jsme přešlapovali na skokánku a ostýchali se skočit.

Důležitým impulsem pro nás byla spolupráce s Inmite na projektu RunCzech.cz – sdílení zdrojových kódů v CVS s externí firmou totiž znamenalo řadu komplikací, které nás donutily k zamyšlení. Když přišel náš hlavní vývojář projektu RunCzech (díky Michale) s návrhem realizovat projekt nad Gitem, chopili jsme se toho jako příležitosti prototypového nasazení. Jak už jsem kdysi psal, za většinou zásadních rozhodnutí ve firmě stojí osobní odvaha jednotlivých lidí, a v tomto případě to nebylo jinak.

Když jsme uvažovali o migraci VCS, měli jsme v hledáčku jen dvě možnosti – Git nebo Mercurial (věděli jsme, že chceme jít směrem DVCS). Pro Git hovořila větší penetrace na trhu, lepší podpora v nástrojích a také to, že někteří z nás už s Gitem jakés takés zkušenosti měli. V lednu tohoto roku jsme byli tedy rozhodnuti prototypově nasadit Git a teprve, kdybychom narazili na nějaké zásadnější problémy, vyzkoušet na jiném projektu Mercurial.

Po několika měsících se ukázalo, že cesta je průchozí a přináší více pozitiv než problémů (i když na pár zapeklitostí jsme po cestě také narazili). Tým, který realizoval projekt pro RunCzech, se použitím Gitu prokousal sám, ale pro zbytek vývojářů jsme už zorganizovali školení od WebExpo Academy pod taktovkou Ladislava Prskavce. Školení bylo výborné a musím říct, že mi v některých ohledech otevřelo oči (a to jsem už Git sem tam používal) – rozhodně jsme všichni odcházeli s pocitem, že základním pochodům a principům Gitu rozumíme (a se zbytkem nám už pomůže pan Google).

Po necelém půl roce máme základní infrastrukturu pro Git připravenou, základní projekty zmigrované a všechny nové projekty už zakládáme pod Gitem. Nakonec nebyl přechod ani z poloviny tak problematický, jak jsme si mysleli, že bude.

Ponaučení

Z dnešního pohledu vidím naše váhání jako velkou chybu, a to především chybu nás seniorů, kteří jsme za tyto věci primárně zodpovědni. Už dlouhou dobu bylo zcela evidentní, že CVS budoucnost nemá a spíše pro nás začne být dříve nebo později limitující. Ačkoliv jsme toto dobře věděli, zdálo se nám, že cena za přechod bude příliš veliká kvůli "objektivním" překážkám a "specifickému" způsobu fungování uvnitř firmy. Byl to ale pouze přelud, za kterým se maskovala naše lenost a nedostatek odvahy udělat změnu.

Na druhou stranu se mi zdá, že ve chvíli, kdy jsme se rozhoupali, už byla posloupnost kroků poměrně optimální. Prototypové období trvalo cca 3 měsíce a ukázalo nám, že neexistují zásadní překážky, proč by Git neměl být nasazen všude. Navíc jsme díky tomu získali první "odborníky" uvnitř firmy, kteří byli schopni poskytnout alespoň základní podporu a rady ostatním v začátcích. Na prototypovém nasazení jsme si navíc ověřili, že Git je akceptovatelný jak Java, tak i Web developery, což je pro nás klíčové.

Před dalším rozšířením jsme prostřednictvím školení dostali základní představu o fungování Gitu mezi další lidi a ujasnili řadu věcí i našim prvním "odborníkům". Od té chvíle jsme začali nasazovat Git všude, začali migrovat naše hlavní knihovny pomocí Cvs2Git (díky Frci) a snažíme se, aby ti, kdo byli na školení, měli příležitost se s Gitem setkat co nejdříve na vlastní kůži, začali jej dennodenně používat a naučené postupy si tímto způsobem zažili.

Že to ale trvalo … :)

Tento článek je přetiskem článku z osobního blogu autora.

 

photo credit: dhammza via photopin cc 

Mohlo by vás zajímat

EvitaDB – inovace pro e-shopy od FG Forrest je zase o kus dál

Moderní databáze evitaDB pro e-shopy naplňuje očekávání našich vývojářů. Podívejte se na první výsledky z nasazení a nové funkce našeho vlastního produktu.

Celý článek

Redesign webu pojišťovny Kooperativa (záznam přednášky z UX Day 2023)

Podívejte se na záznam přednášky o rozsáhlém redesignu, který jsme realizovali pro pojišťovnu Kooperativa. Těšte se na čísla, data i různé zajímavosti!

Celý článek

Přeskočit na hlavní nabídku