O podizanju minimalnih sistemskih zahteva

Ima već desetak godina kako razvijam za web. U početku, dok su projekti na kojima sam radio bili tuđi, obično je na poručiocu bilo da odredi koji su minimalni sistemski zahtevi. Međutim, od neke 2006. te odluke su bile na meni, pa kasnije, od kada je 2007. iza activeCollab projekta stala A51 doo, na nama.

Lično, u većini ću slučajeva predlagati da dignemo sistemske zahteve (u razumnim granicama) i vidimo da li možemo da se "provučemo" sa tim. Sad već davne 2006. prvi activeCollab je zahtevao PHP5, što je bilo ravno jeresi. Pre godinu dana, kada je activeCollab 3 završavan, u zadnjim momentima je odlučeno da PHP 5.3 bude minimalan zahtev iako su rane bete bile u potpunosti PHP 5.2 kompatibilne. U prvom slučaju se nismo "izvukli", pa je tokom leta 2007. activeCollab bio prepisan da lepo radi na PHP4, a u drugom slučaju nismo imali većih problema.

Usporenje ili ubrzanje

Po mom dosadašnjem iskustvu, razumno dizanje minimalnih sistemskih zahteva je ulaganje u dalji razvoj. Kasniti sa dizanjem minimalnih sistemskih zahteva vuče par problema:

  1. Nagomilavanje tehničkog duga. Isti je veliki problem ako se otme kontroli,
  2. Vreme uloženo u testiranje i razvoj za starije platforme je vreme koje se moglo uložiti u dalje usavršavanje proizvoda,
  3. Podrška za stare platforme obično odseca pristup alatima koje nova platforma pruža, jer isti nisu dostupni na staroj. To usporava tim i čini da se u kodu nagomilavaju hakovi i zakrpe,
  4. Osuđivanje svih korisnika na ograničenja platforme koju koristi manjina. Hakovi i zakrpe koji su potrebni da bi sistem radio na starijim platformam su tu i za one kojima isti ne trebaju.
  5. Omogućavanje korisnicima da nastave da koriste proizvod na platofrmi za koju znate da ne zadovoljava današnje standarde po pitanju korisničkog doživljaja i performansi. Ako je platforma spora ili bagovita, korisnik će kriviti vaš softver, ne platformu.

Pod "razumno" podizanje, ne mislim ne programerski hir, već odabir platforme u dugoročnom interesu većine korsnika. Kada je PHP 5.3 bio određen kao minimalan zahtev za activeCollab 3 u maju 2012. godine, tada je već dve i po godine bio stabilan, a nudio je značajno bolje performanse i brojna jezička unapređenja. Insistirati na PHP 5.4 u tom momentu (tada je bio stabilan oko dva meseca) bi bilo nerazumno, ali PHP 5.3 je bio sve, samo ne bleeding edge, neproveren i nepouzdan.

Umesto da se troši vreme na krpljenje i održavanje legacy platformi zarad šačice korisnika, to isto vreme može da se uloži u dalji razvoj softvera na modernijoj i bržoj platformi. Ne samo da sa jedne strane nisi u minusu (jer trošiš vreme na podršku starijih platformi), već s druge strane dobijaš i vetar u leđa u pogledu garantovanog pristupa alatima koje nova platforma pruža.

Tajming

Još jedna stvar koju treba imati na umu kada se odlučuje o dizanju minimalnih sistemskih zahteva je vreme lansiranja nove verzije softvera i koji je njen očekivani životni ciklus.

Ukoliko se lansiranje očekuje za 6 meseci recimo, do tada situacija može bitno da se promeni, pa odluka da li podržavati staru platformu ili ne postane nebitna. Takođe, ako se očekuje da ta verzija bude u upotrebi značajan vremenski period, možda je bolji ići sa novom platform uprkos "trnovitom" početku, kako bi osnova za kasniji razvoj i održavanje bila bolja.

Zaključak

Lider na tržištu na kome activeCollab nastupa je ove stvari shvatio vrlo rano i odluku za odlukom pokazuje da dobro razume šta radi (nisu džabe lider). Naime, oni među prvima "iseku" podršku za browsere koji ne zadovoljavaju njihove minimalne standarde. Na taj način njihovi korisnici su prisiljeni da koriste browser u kome njihov proizvod radi bolje nego u starijim verzijama (samim tim korisnik ima bolji doživljaj), a sa druge strane, vredan i skup programerski sat uvek odlazi na unapređenje proizvoda ili platforme, umesto na krpljenje i održavanje podrške za stare browsere zarad šačice korisnika koja ih koristi.

Mi smo sada pred izbacivanjem podrške za Internet Explorer 8. Problem čini grupa korisnika koja još uvek koristi Windows XP (ili stariji), a nema mogućnost instalacije nekog drugog, modernijeg browsera. Videćemo kako će se cela priča razvijati, pa pišem detalje.