Varjatud sõltuvus
Paljud tehnoloogiaprojektid lõpevad töötava süsteemi ja tarnijaga, kes on ainus, kes seda muuta oskab. Kood võib tehniliselt kuuluda kliendile, kuid teadmised mitte. Iga konfiguratsioonimuudatus, iga uuendus ja iga intsident muutub tugipileti teemaks. See on lukustus, isegi kui iga komponent on avatud lähtekoodiga.
Meie arvates on see vale pidi. Organisatsioonile ehitatud platvorm tuleks esimesest päevast kavandada nii, et seda saaks käitada see organisatsioon ise. Üleandmine ei ole projekti viimane etapp, vaid see ongi toode. Meie põhimõte on lihtne: ei mingit lukustust, ka mitte meie külge.
Lukustus on harva taotluslik. See kasvab välja väikestest mugavustest: dokumenteerimata skript ühe inseneri sülearvutis, tootmises muudetud ja kuskile kirja panemata seadistus, parool, mida teab ainult tarnija. Igaüks neist on eraldi võttes kahjutu. Koos muudavad need tarnija asendamatuks, ja asendamatul tarnijal on vähe põhjust olla tõhus.
Kavanda käitaja jaoks
Üleandmist silmas pidades kavandamine muudab tehnilisi otsuseid. See eelistab laialt kasutatavaid avatud lähtekoodiga komponente nutikatele eritellimuslahendustele, sest nende jaoks saab klient inimesi palgata. See eelistab versioonihalduses hoitavat lihtsat konfiguratsiooni andmebaasi peidetud seadistustele. See eelistab väikest arvu hästi mõistetavaid liikuvaid osi keerukale arhitektuurile, millest suudab aru saada ainult selle autor.
See tähendab ka, et paigaldus peab olema korratav. Kord käsitsi paigaldatud platvormi ei suuda keegi uuesti üles ehitada. Iga keskkond tuleks paigaldada skriptiga, masinas kontrollida ja see peab olema nullist taasloodav inimese poolt, kes esimesel korral juures ei olnud.
Mida tegelik üleandmine sisaldab
Üleandmine on midagi enamat kui repositooriumi link ja slaidiesitlus. Kliendile peab kuuluma kõik, mida on vaja platvormi käitamiseks, muutmiseks või asendamiseks ilma algse ehitajata:
Kasulik test on kujutleda, et algne ehitaja on kuus kuud kättesaamatu. Kas sinu meeskond suudaks uuendada komponenti, taastuda rikkis kettast, võtta tööle uue administraatori ja selgitada audiitorile iga reeglit? Kui mõni vastus on eitav, ei ole üleandmine lõpetatud.
- Lähtekood, konfiguratsioon ja paigaldusskriptid kliendi enda repositooriumides.
- Käitajatele kirjutatud dokumentatsioon: arhitektuur, käsiraamatud, taasteprotseduurid ja teadaolevad piirangud.
- Reeglid ja otsused koos nende põhjendustega, et tulevased muudatused saaksid algset eesmärki austada.
- Automaatsed kontrollid, mis tõendavad, et platvorm käitub pärast iga muudatust endiselt nii, nagu kavandatud.
- Kliendi enda seifi üle viidud mandaadid, sertifikaadid ja saladused, kusjuures kõik ajutised juurdepääsud on tühistatud.
- Koolitus meeskonnale, kes platvormi käitama hakkab, eelistatult praktiline ja nende enda keskkonnas.
Kontrollid, mis tõendavad iseennast
Automaatsed kontrollid väärivad erilist tähelepanu, sest need on üleandmise osa, mis jätkab tööd ka siis, kui kõik on juba edasi liikunud. Hea kontrollikomplekt käivitub iga väljalaske juures ja vastab ühele küsimusele: kas platvorm teeb endiselt seda, mida peab? Oma väljalasete puhul käivitame platvormi konsoolipaketi vastu 3151 automaatset kontrolli; see on selle paketi kohta kontrollitud arv.
Kontrollid võivad ka valetada, läbides siis, kui peaksid ebaõnnestuma. Seepärast läheme sammu kaugemale ja hoiame tõendusskripte, mis viivad süsteemi meelega tagasi defekti ja näitavad, et asjakohane kontroll selle kinni püüab. Kontroll, mida pole kunagi ebaõnnestumas nähtud, ei ole tõestatult töötav.
Tugi ilma sõltuvuseta
See kõik ei tähenda, et klient tuleks üksi jätta. Tootmistugi ja planeeritud hooldusväljalasked on väärtuslikud ning paljud organisatsioonid eelistavad, et kogenud partner oleks valmis appi tulema. Erinevus on selles, et tugi on valitud, mitte kohustuslik. Klient võiks selle majja tuua, viia teise tarnija juurde või sellest üldse loobuda, ja platvorm töötaks edasi.
See valik muudab suhet. Tarnijal, kes teab, et teda saab asendada, on igati põhjust jääda kasulikuks. Klient, kes teab, et võib lahkuda, saab endale lubada jääda.