Tässä eräs tuttavani kertoi mukavia tietoja erään firman kompetenssista ohjelmistokehityksen versionhallinnassa. Hauskaksi tämän tekee vielä se, että kyseinen yritys tarjoaa palveluja muille ohjelmistoyrityksille, sekä alihankintana että konsulttina työn tehostamisesssa. Puhutaan CMM-tasoista (joista ei tiedetä itsekään millä ollaan, mutta tärkeintä kuulemma on pyrkimys parempaan) ja vaikka mistä. Käytäntö sen sijaan on ihan toista.
Alunperin yritys oli ottanut käyttöön Visual Source Safen. Kaikki sitä käyttäneet tietävät, että se on tasolla "ok" jos kaikki käyttäjät ovat samassa lähiverkossa, eikä mitään monimutkaisempia ominaisuuksia tarvita. Kertoohan jo nimikin, että kyseessä on vain turvavarasto, ei niinkään täysiverinen versionhallinta. Mutta se ei ollut suurin ongelma asiassa.
VSS:ää käytettiin aika vapaasti, kukin laittoi muutoksia sisään ja välillä tietysti unohti jonkin muutoksen kirjata, tai vahingossa kirjasi sisään vääriä muutoksia. Oli myös käytössä Source Offsite, koska osa kehittäjistä oli toisessa maassa. Heillä olikin sitten suuria ongelmia, koska Source Offsiten sai jumiin vähän väliä, yhteydet olivat hitaita (kesti n. 5 tuntia ajaa muutoslistaus koko projektista) jne. Sitten isketään vielä soppaan sekakehitys, eli 2-3 ihmistä saattoi muokata samoja tiedostoja, jolloin "laitatko ton takas sisään, mun pitäs muuttaa sitä kanssa"-tyyppiset sähköpostit olivat normaaleja. Ja versionhallintaan meni sisään koko ajan satunnaista testaamatonta koodia.
Myöhemmin sitten yritys ei kyennyt hallitsemaan toisen maan kehittäjiä (koska kukaan ei ollut heitä johtamassa, heille vain heitettiin hommia eikä kunnolla selvitetty että asiat olisivat selviä) ja kaikki kehitys siirrettiin oman porukan hoidettavaksi. Versionhallintaan ei tehty muutoksia, vaikka kehittäjät olisivat halunneetkin.
Myöhemmin tarvittiin yhteistyötä toisen ohjelmistoyrityksen kanssa samassa projektissa, joten jotain piti tehdä. Eihän voitu enää antaa käyttää suoraan VSS:ää, koska sehän olisi ollut ongelma. Tarvittiin siis uusi menetelmä. Ja se menetelmä: sähköpostitse lähetettävä Excel-dokumentti, johon kirjoitettiin tiedostot, joihin haluttiin tehdä muutoksia. Tämä dokumentti meni sitten henkilölle, joka otti versionhallinnasta senhetkisen tilan ja lähetti dokumentin takaisin kertoen mihin hakemistoon tiedostot on laitettu. Kehittäjä sitten kopioi tiedostot, teki muutokset mainitsemiinsa tiedostoihin ja lähetti Excel-dokumentin takaisin lyhyellä merkinnällä muutosten syistä.
Tässä vaiheessa alkaa moni jo pudistella päätään, tiedän. Versionhallintatyökaluissahan olisi kommentointi (jopa VSS:ssä) ja tärkeintähän olisivat ne toimintatavat, eivät työkalut. Yksi perustelu tällaiselle välihenkilölle oli se, että näin saadaan atomaarisuutta versionhallintaan (joka VSS:stä puuttuu), eli voidaan varmistua jokaisen muutoksen ainakin kääntyvän. (Oikeampi syy lieni se, että tälle henkilölle ei ollut mitään työtä, josta olisi voinut laskuttaa ketään, näin saatiin tämäkin henkilö tuottavaan työhön)
Koska kehitystä samaan moduliin (ja jopa tiedostoon) joutui tekemään usemapi henkilö, tuli välillä ongelmia kun ei voitukaan muokata samoja tiedostoja. Joskus joku tiedosto oli useamman päivän varattuna, eikä toinen päässyt tekemään töitä suoraan. Tällöin sitten keksittiin, että voidaankin antaa muokata samoja tiedostoja, onhan heillä tämä henkilö, joka katsoo sitten muutoksia läpi ja varmistaa että kaikki menee läpi. Joten muutettiin sääntöjä (kertomatta sille toiselle yritykselle asiasta...) ja hupsista, saman tien jäi muutoksia menemättä versionhallintaan. Ja kukahan oli ensimmäisenä syyllinen? Tietysti toinen yritys, eihän versionhallinta tai sen hoitaja voinut tehdä mitään pieleen. Ja olihan muutos dokumentoitu, jonnekin levyn nurkalle ilman että kenellekään kerrottiin asiasta.
Lopulta tilanne muuttui sellaiseksi, että pahimmillaan toisen yrityksen työntekijät joutuivat odottamaan jopa vuorokauden että saivat uusimman version ja luvan muokata tiedostoja. Poistettiin tarve kertoa mitä tiedostoja muokkaa (kun eihän niitä edes tiennyt välttämättä etukäteen) ja annettiin entistä enemmän hommaa henkilölle, joka näitä yhdisteli. Ja tämä henkilö ei tuntenut ohjelmistoa yhtään, joten ei voinut päätellä mikä muutos oli oikea ja mikä väärä, jos sellaisia tuli (alunperin yksi perustelu tällaisen henkilön käyttöön oli juuri muutosten seuranta). Ja homma meni entistä mukavammaksi.
Kyseinen yritys vieläkin mainostelee palvelujaan ja on osaavinaan kaiken. Yrityksen osaamistaso vain on näin matalalla, joten hieman heikkoa on ollut asiakkaiden saanti. Mutta ovatpahan erään tahon mukaan "menestystarina", ehkä ovat vain typonneet "menetystarinan" sitten...