Automatizujte sve

Juče i danas sam imao priliku da radim na automatizaciji dva procesa: migriranja izuzetno velikih Active Collab instanci (koji umeju da traju i više od 24h) i integracije sa sistemom koji koristimo za lokalizaciju softvera. U pitanju je par sati efektive provedenim u pripremi i testiranju tih job-ova koji će nam vremenom uštedeti stotine i stotine sati.

Za automatizaciju posla nakon što su serveri podešeni koristimo Jenkins (za podešavanje servera koristimo Ansible, ali je tu moj upliv jako mali za sada). Jenkins nije lepotan, za interfejs se može reći da je sve osim da je user-friendly, a u pozadini je tona XML-a (bljak!). Uprkos tim manjkavostima, naučio sam da ga volim. Ljubav je zaslužio zato što je izuzetno vredan i pouzdan saradnik.

Izrada joba je prosto proceduralno programiranje, sa dosta dužim periodima testiranja. U prvo vreme kada krenem da pravim novi Jenkins job osećaj se svodi na: “Dođavola, ima li ovome kraja? Po koji put moram da pokrenem komandu i sačekam da se uradi X, Y i Z!?”, ali je na kraju mnogo bolje. Tada je: “Drago mi je što će timu i meni ovo što sam napravio štedeti sate i dane ponavljajućeg posla; sate i dane koje možemo potrošiti na neke korisnije stvari".

Promene koje automatizacija pravi u timi

Hajde sada da malo pričamo o tome kako automatizacija utiče na tim koji ju je usvojio. Kada se jednom krene sa automatizacijom i uvide prednosti, nema povratka na staro ad hoc rešavanje problema. Kako vreme prolazi, tako i broj automatizovanih procesa raste, a i njihova pouzdanost. 

Većina naših jobova je izvršena par stotina puta, a neki i po par hiljada puta. Time su zaslužili naše poverenje. Ako i nešto krene na loše, stiže obaveštenje (na email), a u mailu i u Jenkins interfejsu imamo sve potrebne detalje da rešimo problem (loguje se i čuva sav output). 

Uopšteno gledano, društvo ima stalan strah od automatizacije zato što se boji da ista smanjuje broj radnih mesta. U ovom slučaju je realnost daleko od te pretpostavke. Sve što smo automatizovali nam je oslobodilo vreme da radimo nešto korisnije, kao npr unapređujemo proizvod i stabilnost platforme, pružanje bolje podrške… U nekim slučajevima je čak i omogućilo stvari o kojima smo pre automatizacije mogli samo da sanjamo (pružanje velikog broja zvaničnih prevoda za Active Collab na primer). 

Izuzetno vredan propratni efekat automatizovanja procesa je da je automatika ujedno i dokumentacija procesa. Kako vreme prolazi, tako se dogodi i neminovnost da zaposleni koji jedini ima detaljno poznavanje nekog procesa ode. Ukoliko je proces automatizovan, a sama automatizacija u skladu sa dobrim praksama (jasni i nedvosmisleni ulazni parametri, iskomentarisani koraci, propratni opis itd), verovatnoća da će odlazak pojedinca napraviti veliki problem značajno opada. To je velika vrednost za firmu koja želi da preživi dugi niz godina.

Dodatak (27. 12. 2015.): jednu stvar sam zaboravio da napišem, a odmotala mi se danas dok sam radio na skroz drugom projektu (koji takođe koristi dosta automatizacije). U mojoj dosadašnjoj praksi se pokazalo da se jednom napisano jobu umem vratiti i koristiti ga ili kao osnov za novi job (Jenkins podržava brzo dupliranje jobova) ili kao mesto gde ću da vidim kako sam neki problem rešio (npr, "komituj izmene ako ih ima" grupa komandi). Reciklažom se štedi dosta vremena. Job koji sam danas rešavao je nastao za petnaestak minuta pre svega zato što je za osnov korišćen sličan job iz drugog projekta. Umesto da se sve piše i testira od nule, bilo je potrebno samo izneniti par parametara i koraka.

I na kraju, automatizacija direktno utiče na kulturu tima. Stavljanjem akcenta na automatizaciju (delom, ne "dekretemo sa vrha") se stavlja akcenat na ideju da smo tu da radimo pametno i da maksimalno iskoristimo vreme koje nam je na raspolaganju. Stvari koje se ponavljaju treba da radi računar, dok se mi bavimo kreativnijim poslom. 

S tim svim na umu, usuđujem se da dam sledeći savet: automatizujte sve, ili bar probajte. Jednom kada krenete tom stazom, nema nazad jer su prednosti koje donosi na svim frontovima vrlo brzo vidljive i izazivaju zavisnost (poslovnu i kulturnu).