Podržavanje dve verzije aplikacije u produkciji

Postoje scenariji gde želite da imate dve generacije SaaS aplikacije u produkciji koje rade rame uz rame - staru i novu. Razlozi zašto biste želeli da ostavite staru iako ste upravno izbacili novu verziju su retko tehničke, a gotovo uvek poslovne prirode. 

Velika je verovatnoća da postojeći korisnici (koji uredno plaćaju pretplatu) nisu spremni da se prebace na “nešto novo“ onog momenta kada ste vi spremni to novo da im učinite dostupnim. Možda im se ne sviđa da menjaju svoje navike. Možda im se i sviđa, ali je tajming loš (rade na nečemu što im je bitno, a učenje novog softvera i izgradnja novih navika im baš i nije visoko na listi prioriteta). 

Strogo “presecanje sa prošlošću” može biti i riskantno. Koji procenat mušterija bi razmislio o prelasku na konkurentski alat kada je suočen sa izborom u nametnutom vremenskom periodu (“Ako me već teraju da učim sve novo, zašto to ne bih radio na Konkurentu X npr?”)? Ukoliko je veći od 0%, onda je prevelik.

Kada smo izbacivali Active Collab 5 vodili smo se logikom da niko ne želi da mu neko u sred bitnog projekta promeni ceo app za vođenje projektima, pa smo odlučili da paralelno podržavamo Active Collab 4 i Active Collab 5. Bio je procenat korisnika koji su se odmah prebacili, ali je tokođe ostao i veliki broj ljudi na staroj verziji. Lagano ih podsećamo da je izašla nova verzija, koje su njene prednosti i prebacujemo kada su spremni.

Što se tehničkog dela priče tiče, jedna od stvari koje sam (na teži način) naučio je da se dve generacije aplikacije ne bi smele instalirati na isti aplikacioni sloj. 

Ukoliko se želi podržavati legacy verzija aplikacije, trebalo bi je ostavi na starom hardveraju, a novu verziju izgradi na novom. Ili obrnuto - preseli legacy na hardver koji je optimizovan za sunset (opadanje broja korisnika) umesto za rast, a novu podesi na hardver predviđen za rast. 

Ukoliko se to ne uradi, može biti dosta problema zato što sve novo što se dodaje u novoj generaciji aplikacije mora biti realizovano sa legacy verzijom na umu, a to šlepanje košta vremena i podložno je greškama.

Iako je sam proces prelaska sa stare verzije na novu dugotrajan i tehnički zahtevniji, i dalje mislim da je to bila ispravna stvar za uraditi. Takođe je i ceo proces zanimljivo iskustvo koje će nam pomoći da napravimo bolje odluke u budućnosti.