Izazovi
Članarine u svesci, uplate u nečijoj glavi, a rezultat mjeseca se rekonstruiše kad mjesec prođe — teretana gubi novac na produženjima koja niko nije potjerao, a ne na treningu.
Članarine u svesci, uplate u nečijoj glavi, a rezultat mjeseca se rekonstruiše kad mjesec prođe — teretana gubi novac na produženjima koja niko nije potjerao, a ne na treningu.
Članarine u svesci, uplate u nečijoj glavi, a rezultat mjeseca se rekonstruiše kad mjesec prođe — teretana gubi novac na produženjima koja niko nije potjerao, a ne na treningu.
Svaka članarina ima datum isteka koji sistem prati; svaka prodaja po konstrukciji dođe do mjesečne brojke; web stranicu uređuje vlasnik, ne programer.
Teretane ovdje rijetko propadaju zbog treninga. Gube na članarini koja je istekla u utorak i niko je nije potjerao do petka, na suplementu koji je prodat a nigdje zaveden, i na mjesecu za koji se tek u sljedećem shvati da nije pokrio kiriju. Softver za teretanu vrijedi kupiti samo ako ukloni ta tri gubitka.
Sisteme za teretane gradimo oko pulta, a ne oko liste funkcionalnosti. Prvo pitanje nikad nije koje module želite — nego šta se dešava u devedeset sekundi dok član plaća, ko dira zapis, i šta morate vidjeti prvog u mjesecu. Iz tog razgovora obično izađe jedna odluka iz koje slijedi sve ostalo.
Ta odluka je da zapis o članu nije nalog za prijavu. Većina gotovih programa pretpostavlja da će svaki član instalirati aplikaciju i registrovati se. Neće. U komšijskoj teretani polovina članova plati keš na pultu i nikad ne otvori nikakvu aplikaciju — i to je uredu. Član mora postojati u sistemu bez naloga, sa imenom, brojem telefona i datumom isteka, a aplikacija je pogodnost za one koji je hoće. Program koji to ne dozvoljava tjera vlasnika da vodi dvije evidencije, i onda ima dvije, a ne nijednu.
Članarina je datum, a ne stanje. Sistem koji zna samo „aktivan/neaktivan" ne pomaže — treba znati kome ističe u narednih sedam dana, ko je istekao a nije se vratio, i ko produžava svakog mjeseca bez podsjećanja. Produženje se mora nadovezati na postojeći datum, a ne početi od danas, jer član koji plati tri dana ranije ne smije izgubiti tri dana. To je sitnica koju osjeti svaki član i koja odlučuje hoće li vjerovati sistemu.
Novac se računa u bazi, ne u pregledniku. Kod nas cijena paketa, cijena suplementa i stanje zaliha žive u funkcijama baze podataka: aplikacija šalje šifru paketa i količinu, nikad iznos. Prodaja ne može preći stanje zaliha, nabavna cijena se zapisuje u trenutku prodaje pa marža ostaje tačna i kad se cijene kasnije promijene, a iznos se ne može podmetnuti izvana. Isto vrijedi za pristup: član vidi isključivo svoje — nikad finansije, nabavne cijene ni tuđe podatke — i to je provjereno testom, a ne pretpostavkom.
Suplementi su drugi izvor prihoda koji najčešće nigdje nije zaveden. Kad prodaja na pultu i narudžba člana idu kroz isti sistem kao i članarine, mjesečna slika se sama slaže: prihod od članarina, prihod od robe, troškovi, neto. Vlasnik ne rekonstruiše mjesec — otvori ga.
Web stranica teretane je dio sistema, ne zaseban posao. Cjenovnik, radno vrijeme, galerija sale i priče o transformacijama moraju se moći promijeniti iz istog panela u kojem se vodi članstvo, jer inače svaka promjena cijene čeka programera i stranica polako postane netačna. Iz istog razloga upit sa kontakt forme mora završiti u panelu kao zadatak koji neko zatvori, a ne u mailu koji se izgubi.
Ovo smo već izgradili. Za teretanu Željezna Generacija u Hrasnici isporučili smo jedan sistem koji je istovremeno javna web stranica, portal za članove i panel vlasnika — članarine, uplate, zalihe suplemenata, narudžbe, oprema, troškovi i upiti sa stranice, sve u jednoj bazi. Panel prati i vodič od 51 koraka koji vlasnika provede kroz sistem svakodnevnim jezikom, jer čovjek koji vodi teretanu nije IT osoba i neće čitati uputstvo.
AI ovdje ima smisla tek kad osnova radi. Sistem koji ne umije pouzdano produžiti članarinu nema šta sažimati. Kad je jezgro čvrsto, korisne primjene su uske i dosadne u najboljem smislu: pisanje poruka članovima kojima ističe članarina, označavanje onih koji su prestali dolaziti, i izvlačenje brojki koje vlasnik inače ručno slaže na kraju mjeseca.
Ne, i sistem je namjerno tako građen. Član postoji kao zapis koji vodi vlasnik — ime, telefon, članarina, uplate — bez obzira na to hoće li se ikad prijaviti. Portal je tu za članove koji žele sami provjeriti datum isteka, historiju uplata i naručiti suplement s telefona; za sve ostale se na pultu ne mijenja ništa.
To je normalan slučaj, ne izuzetak. Uplata se zavodi sa načinom plaćanja, gotovina uključena, a mjesečnim brojkama je svejedno kako je novac stigao. Kartično plaćanje se može dodati kasnije ako se isplati, ali ga ne gradimo podrazumijevano — terminal, provizija i papirologija su stvaran trošak, a većini teretana ovdje ne treba.
Najčešće da. Izvoz iz drugog programa, tabela, pa i uredna sveska mogu se uvesti, a migraciju tretiramo kao zaseban korak s provjerom. Najvažnije je tačno prenijeti trenutne datume isteka — član kojem prvog dana datum ne valja, sistemu više neće vjerovati.
Sedmice, ne mjeseci, i granica rijetko bude softver. Čovjek za pultom mu mora vjerovati dok član stoji i čeka, pa krećemo od članarina i uplata, držimo staru svesku uz njega dok se brojke ne poklope, a suplemente, troškove i sadržaj stranice dodajemo poslije.
Oboje, i to je isti sistem. Javna stranica — cjenovnik, radno vrijeme, galerija, priče o transformacijama, kontakt forma — uređuje se iz panela, a upiti stižu u panel kao zadaci. To je i poenta: stranica teretane koja za promjenu cijene traži programera prestane biti tačna u roku od jedne sezone.