Dva u kutiji – upravljanje konfiguracijom

by Travnja 11, 2023BI/Analitika0 komentari

Dva u kutiji (ako možete) i svi u dokumentaciji (uvijek).

U IT kontekstu, "dva u kutiji" odnosi se na dva poslužitelja ili komponente koje su dizajnirane da rade zajedno kako bi pružile redundanciju i povećanu pouzdanost. Ova postavka može osigurati da će, ako jedna komponenta zakaže, druga preuzeti njezine operacije, čime se održava kontinuitet usluge. Cilj "dva u kutiji" je osigurati visoku dostupnost i oporavak od katastrofe. Ovo se također odnosi na ljudske uloge u organizaciji; međutim, rijetko se provodi.

Pogledajmo relevantan primjer usluge Analytics. Vjerojatno svi znamo osobu u našoj tvrtki ili organizaciji po imenu koja je "obratna" osoba za Analytics. Oni su ti koji imaju izvješća ili nadzorne ploče nazvane po njima – Mikeovo izvješće ili Janeina nadzorna ploča. Naravno, ima drugih ljudi koji poznaju analitiku, ali ovo su pravi šampioni koji izgleda znaju kako obaviti najteže stvari i prestići rokove. Problem je u tome što su ti ljudi sami. U mnogim slučajevima pod pritiskom, oni ne rade ni s kim jer bi ih to moglo usporiti i tu počinje problem. Nikada ne mislimo da ćemo izgubiti ovu osobu. Suzdržat ću se od tipičnog "recimo da ih je udario autobus" ili korištenja primjera koji iskorištava trenutne prilike na tržištu rada i reći ću nešto pozitivno poput "oni su dobili na lutriji!", jer svi bismo trebali dati svoj doprinos da budemo pozitivni ovih dana.

Priča
Dolazi ponedjeljak ujutro i naš stručnjak za analitiku i prvak MJ podnio je ostavku. MJ je dobio na lutriji i već je napustio zemlju bez brige na svijetu. Tim i ljudi koji poznaju MJ-a su oduševljeni i ljubomorni, ali posao mora ići. Sada će se shvatiti vrijednost i stvarnost onoga što je MJ radio. MJ je bio odgovoran za konačno objavljivanje i validaciju analitike. Činilo se da uvijek mogu poboljšati učinkovitost ili napraviti tu tešku promjenu prije nego što svima pruže analitiku. Nitko zapravo nije mario kako je to učinjeno i bio je siguran u činjenicu da se to jednostavno dogodilo, a MJ je bio pojedinačna Rock zvijezda Analyticsa pa je dana određena razina autonomije. Sada kada tim počinje skupljati dijelove, zahtjeve, dnevne probleme, zahtjeve za izmjenama, oni su u nedoumici i počinju se koprcati. Izvješća / nadzorne ploče nalaze se u nepoznatom stanju; neka sredstva nisu ažurirana tijekom vikenda, a ne znamo zašto; ljudi se pitaju što se događa i kada će se stvari popraviti, izmjene za koje je MJ rekao da su učinjene ne pojavljuju se i nemamo pojma zašto. Momčad izgleda loše. To je katastrofa i sad svi mrzimo MJ-a.

Lekcije
Postoje neki jednostavni i očiti zaključci.

  1. Nikada ne dopustite pojedincu da radi sam. Zvuči dobro, ali u manjim agilnim timovima nemamo vremena ni ljudi koji bi ovo mogli ostvariti. Ljudi dolaze i odlaze, zadataka je mnogo, pa je podijeli i vladaj u ime produktivnosti.
  2. Svatko mora podijeliti svoje znanje. Također zvuči dobro, ali dijelimo li s pravom osobom ili ljudima? Imajte na umu da su mnogi dobitnici lutrije kolege s posla. Provođenje sesija dijeljenja znanja također oduzima vrijeme od zadataka i većina ljudi ulaže u vještine i znanje samo na vrijeme kada je to potrebno.

Dakle, koja su prava rješenja koja svatko može implementirati i zaostati?
Počnimo s upravljanjem konfiguracijom. Koristit ćemo ovo kao krovni izraz za nekoliko sličnih tema.

  1. Upravljanje promjenama: Proces planiranja, implementacije i kontrole promjena softverskih sustava na strukturiran i sustavan način. Ovaj proces ima za cilj osigurati da se promjene provode na kontroliran i učinkovit način (s mogućnošću vraćanja), uz minimalne poremećaje u postojećem sustavu i maksimalnu korist za organizaciju.
  2. Upravljanje projektima: Planiranje, organizacija i kontrola projekata razvoja softvera kako bi se osiguralo da su dovršeni na vrijeme, unutar proračuna i prema željenim standardima kvalitete. Uključuje koordinaciju resursa, aktivnosti i zadataka tijekom životnog ciklusa razvoja softvera kako bi se postigli projektni ciljevi i isporučio softverski proizvod prema planu.
  3. Kontinuirana integracija i kontinuirana isporuka (CI/CD): Proces automatizacije izgradnje, testiranja i postavljanja softvera. Kontinuirana integracija zahtijeva redovito spajanje promjena koda u zajednički repozitorij i pokretanje automatiziranih testova za otkrivanje pogrešaka rano u procesu razvoja. Kontinuirana isporuka/uvođenje uključuje automatsko puštanje testiranih i potvrđenih promjena koda u proizvodnju, što omogućuje brza i česta izdanja novih značajki i poboljšanja.
  4. Kontrola verzija: Proces upravljanja promjenama izvornog koda i drugih softverskih artefakata tijekom vremena pomoću specijaliziranih softverskih alata. Programerima omogućuje suradnju na bazi koda, održavanje potpune povijesti promjena i eksperimentiranje s novim značajkama bez utjecaja na glavnu bazu koda.

Sve gore navedeno odnosi se na dobru praksu razvoja softvera. Analitika koja pokreće i vodi poslovanje ne zaslužuje ništa manje jer je ključna za donošenje odluka. Sva analitička sredstva (ETL poslovi, semantičke definicije, definicije metrike, izvješća, nadzorne ploče, priče… itd.) samo su isječci koda s vizualnim sučeljem za dizajniranje i naizgled manje promjene mogu zaudarati na pustoš u operacijama.

Korištenje upravljanja konfiguracijom omogućuje nam da nastavimo raditi u dobrom stanju. Sredstva su verzirana tako da možemo vidjeti što se dogodilo u njihovom životnom vijeku, znamo tko na čemu radi zajedno s postignutim napretkom i vremenskim rokovima, i znamo da će se proizvodnja nastaviti. Ono što nije obuhvaćeno niti jednim čistim procesom je prijenos znanja i razumijevanje zašto su stvari takve kakve jesu.

Svaki sustav, baza podataka i analitički alat imaju svoje osobine. Stvari zbog kojih idu brzo ili sporo, stvari koje ih tjeraju da se ponašaju na određeni način ili daju željeni rezultat. To mogu biti postavke na razini sustava ili na globalnoj razini ili stvari unutar dizajna imovine koje ih čine da rade onako kako bi trebale. Problem je u tome što se većina tih stvari nauči tijekom vremena i nema uvijek mjesta za njihovo dokumentiranje. Čak i dok prelazimo na Cloud sustave gdje više ne kontroliramo kako se aplikacija izvršava i oslanjamo se na dobavljača da to učini što bržim, ugađanje definicija nastavlja se unutar naših sredstava kako bismo otključali točno ono što tražimo. Ovo znanje je ono što treba uhvatiti i podijeliti tako da bude dostupno drugima. To se znanje mora zahtijevati kao dio dokumentacije imovine i učiniti sastavnim dijelom kontrole verzija & CI/CD prijave i procesa odobravanja, au nekim slučajevima čak i kao dio popisa za provjeru prije objavljivanja stvari koje treba učiniti, a ne čini.

Nema čarobnih odgovora ili umjetne inteligencije koji bi prikrili prečace u našim analitičkim procesima ili nedostatak istih. Bez obzira na veličinu tima koji održava protok podataka i analitiku, ulaganje u sustav za praćenje promjena, verziju svih sredstava i pomoć u dokumentiranju razvojnog procesa i prikupljanje znanja je neophodno. Ulaganje u procese i vrijeme unaprijed uštedjet će gomilu izgubljenog vremena kasnije smišljajući stvari kako bismo održali zdravo stanje naše analitike. Stvari se događaju i najbolje je imati policu osiguranja za MJ-ove i druge dobitnike na lutriji.