Kā neliela programma pārvērta mazu biroju par federālu uzņēmumu ar peļņu 100+ miljoni rubļu mēnesī

2008. gada decembra beigās mani uzaicināja uz vienu no taksometru pakalpojumiem Permā ar mērÄ·i automatizēt esoÅ”os biznesa procesus. Kopumā man tika doti trÄ«s pamatuzdevumi:ā€Ø

  • Izstrādāt programmatÅ«ras pakotni zvanu centram ar mobilo aplikāciju taksometru vadÄ«tājiem un automatizēt iekŔējos biznesa procesus.
  • Viss bija jādara pēc iespējas Ä«sākā laikā.
  • Jums ir sava programmatÅ«ra, nevis jāiegādājas no treÅ”o puÅ”u izstrādātājiem, kuru nākotnē, biznesam attÄ«stoties, var neatkarÄ«gi pielāgot pastāvÄ«gi mainÄ«gajiem tirgus apstākļiem.

Toreiz nesapratu, kā Å”is tirgus darbojas un tā nianses, bet tomēr divas lietas man bija paÅ”saprotamas. Zvanu centrs ir jāveido, pamatojoties uz atvērtā koda zvaigznÄ«tes programmatÅ«ru PBX. Informācijas apmaiņa starp zvanu centru un mobilo aplikāciju bÅ«tÄ«bā ir klienta-servera risinājums ar visiem atbilstoÅ”ajiem modeļiem nākotnes projekta arhitektÅ«ras projektÄ“Å”anai un tā programmÄ“Å”anai.

Pēc iepriekŔēja projekta uzdevumu, termiņu un izmaksu izvērtÄ“Å”anas un, saskaņojot visus nepiecieÅ”amos jautājumus ar taksometru servisa Ä«paÅ”nieku, darbu sāku 2009. gada janvārÄ«.

Skatoties uz priekÅ”u, teikÅ”u uzreiz. Rezultātā tika izveidota mērogojama platforma, kas darbojas uz 60+ serveriem 12 pilsētās Krievijā un 2 pilsētās Kazahstānā. Uzņēmuma kopējā peļņa bija 100+ miljoni rubļu/mēn.

Pirmais posms. Prototips

Tā kā tobrÄ«d man nebija praktiskas pieredzes IP telefonijā un ar zvaigznÄ«ti zināju tikai virspusēji ā€œmājasā€ eksperimentu ietvaros, tika nolemts sākt strādāt ar mobilās aplikācijas un servera daļas izstrādi. Vienlaikus novērÅ”ot robus zināŔanās par citiem uzdevumiem.

Ja ar mobilo aplikāciju viss bija vairāk vai mazāk skaidrs. Tolaik to varēja rakstÄ«t tikai java vienkārÅ”iem spiedpogu tālruņiem, bet mobilo klientu apkalpojoŔā servera rakstÄ«Å”ana bija nedaudz sarežģītāka:

  • Kāda servera OS tiks izmantota;
  • Balstoties uz loÄ£iku, ka uzdevumam tiek izvēlēta programmÄ“Å”anas valoda, nevis otrādi, un ņemot vērā 1. punktu, kura programmÄ“Å”anas valoda bÅ«s optimāla problēmu risināŔanai;
  • ProjektÄ“Å”anas laikā bija jāņem vērā nākotnē paredzamās augstās slodzes uz pakalpojumu;
  • Kura datu bāze var garantēt kļūdu toleranci pie lielām slodzēm un kā uzturēt ātru datu bāzes reakcijas laiku, palielinoties pieprasÄ«jumu skaitam tai;
  • NoteicoÅ”ais faktors bija izstrādes ātrums un spēja ātri mērogot kodu
  • AprÄ«kojuma izmaksas un tās uzturÄ“Å”ana nākotnē (viens no klienta nosacÄ«jumiem ir, ka serveriem jāatrodas viņa pārziņā esoÅ”ajā teritorijā);
  • Izstrādātāju izmaksas, kuri bÅ«s nepiecieÅ”ami nākamajos platformas darba posmos;

Kā arÄ« daudzi citi ar projektÄ“Å”anu un izstrādi saistÄ«ti jautājumi.

Pirms uzsākt darbu pie projekta, uzņēmuma Ä«paÅ”niekam piedāvāju Ŕādu stratēģisku lēmumu: tā kā projekts ir diezgan sarežģīts, tā Ä«stenoÅ”ana prasÄ«s jÅ«tami daudz laika, tāpēc vispirms izveidoju MVP versiju, kas neaizņems daudz laika un naudu, bet kas ļaus viņa uzņēmumam iegÅ«t konkurences priekÅ”rocÄ«bas tirgÅ« jau ā€œÅ”eit un tagadā€, kā arÄ« paplaÅ”inās savas iespējas kā taksometru serviss. Savukārt man Ŕāds starprisinājums dos laiku pārdomātāk izstrādāt gala risinājumu un laiku tehniskiem eksperimentiem. Tajā paŔā laikā ieviestais programmatÅ«ras risinājums netiks garantēts pareizi izstrādāts un nākotnē var tikt radikāli pārveidots vai nomainÄ«ts, taču tas noteikti izpildÄ«s minimālo nepiecieÅ”amo funkcionalitāti, lai ā€œatdalÄ«tos no konkurentiemā€. Taksometra dibinātājam Ŕī ideja patika, tāpēc beigās viņi to izdarÄ«ja.

Pirmās divas nedēļas pavadÄ«ju, pētot biznesa procesus uzņēmumā un pētot taksometra darbu no iekÅ”puses. Veikta biznesa analÄ«ze, kur, ko un kā var automatizēt un vai tas vispār ir nepiecieÅ”ams. Ar kādām grÅ«tÄ«bām un problēmām saskaras uzņēmuma darbinieki? Kā tie tiek atrisināti. Kā tiek organizēta darba diena uzņēmuma darbiniekiem. Kādus rÄ«kus viņi izmanto?

LÄ«dz treŔās nedēļas beigām, uzsākot darbu un izpētot sev interesējoÅ”os jautājumus internetā, ņemot vērā uzņēmuma Ä«paÅ”nieka vēlmes, kā arÄ« manas tā brīža zināŔanas un iespējas, tika nolemts pielietot Ŕādu steku :

  • Datu bāzes serveris: MsSQL (bezmaksas versija ar datu bāzes failu ierobežojumu lÄ«dz 2GB);
  • Mobilo klientu apkalpojoŔā servera izstrāde Delphi zem Windows, jo jau bija Windows serveris, uz kura tiks uzstādÄ«ta datu bāze, kā arÄ« pati izstrādes vide veicina strauju attÄ«stÄ«bu;
  • Ņemot vērā zemo interneta ātrumu mobilajos tālruņos 2009. gadā, apmaiņas protokolam starp klientu un serveri ir jābÅ«t bināram. Tas samazinās pārsÅ«tÄ«to datu pakeÅ”u lielumu un rezultātā palielinās klientu darba ar serveri stabilitāti;

Vēl divas nedēļas tika pavadÄ«tas, izstrādājot protokolu un datubāzi. Rezultātā tika izveidotas 12 paketes, kas nodroÅ”ina visu nepiecieÅ”amo datu apmaiņu starp mobilo klientu un serveri un aptuveni 20 tabulas datu bāzē. Es veicu Å”o darba daļu, ņemot vērā nākotni, pat ja man pilnÄ«bā jāmaina tehnoloÄ£iju kaudze, pakotņu un datu bāzes struktÅ«rai vajadzētu palikt nemainÄ«gai.

Pēc sagatavoÅ”anās darbiem bija iespēja uzsākt praktisku idejas realizāciju. Lai nedaudz paātrinātu procesu un atbrÄ«votu laiku citiem darbiem, izveidoju mobilās aplikācijas melnrakstu, ieskicēju lietotāja interfeisu, daļēji UX un iesaistÄ«ju projektā pazÄ«stamu java programmētāju. Un viņŔ koncentrējās uz servera puses izstrādi, dizainu un testÄ“Å”anu.

LÄ«dz otrā darba mēneÅ”a beigām pie MVP bija gatava pirmā servera un klienta prototipa versija.

Un treŔā mēneÅ”a beigās pēc sintētiskām pārbaudēm un lauka testiem, kļūdu labojumiem, nelieliem protokola un datu bāzes uzlabojumiem lietojumprogramma bija gatava ražoÅ”anai. Kas arÄ« tika darÄ«ts.

No Ŕī brīža sākas projekta interesantākā un grūtākā daļa.

VadÄ«tāju pārejas laikā uz jauno programmatÅ«ru tika organizēta diennakts dežūra. Tā kā pa dienu visi nevarēja ierasties darba laikā. Turklāt administratÄ«vi, pēc uzņēmuma dibinātāja stingras gribas lēmuma, tas tika organizēts tā, ka pieteikÅ”anās vārdu/paroli ievadÄ«ja taksometra dienesta vadÄ«tājs un tie netika paziņoti vadÄ«tājam. No manas puses bija nepiecieÅ”ams tehniskais atbalsts lietotājiem kļūmju un neparedzētu situāciju gadÄ«jumos.

Mērfija likums mums saka: "Viss, kas var noiet greizi, noies greizi." Un tieÅ”i tā viss nogāja greizi... Viena lieta, kad es un vairāki taksometru vadÄ«tāji pārbaudÄ«jām lietojumprogrammu vairākiem desmitiem testa pasÅ«tÄ«jumu. Un tā ir pavisam cita lieta, ja uz lÄ«nijas vairāk nekā 500 autovadÄ«tāju strādā reāllaikā pēc reāliem cilvēku pasÅ«tÄ«jumiem.

Mobilās aplikācijas arhitektÅ«ra bija vienkārÅ”a un tajā bija ievērojami mazāk kļūdu nekā serverÄ«. Tāpēc galvenā darba uzmanÄ«ba tika pievērsta servera pusei. Kritiskākā kļūme aplikācijā bija atvienoÅ”anās no servera problēma, kad telefonā pazÅ«d internets un sesija atkal tika atjaunota. Un internets pazuda diezgan bieži. Pirmkārt, tajos gados pats telefons internets nebija pietiekami stabils. Otrkārt, bija daudz aklo zonu, kur internets vienkārÅ”i nedarbojās. Mēs identificējām Å”o problēmu gandrÄ«z nekavējoties un XNUMX stundu laikā novērsām un atjauninājām visas iepriekÅ” instalētās lietojumprogrammas.

Serverim galvenokārt bija kļūdas pasūtījumu sadales algoritmā un nepareiza dažu klientu pieprasījumu apstrāde. Konstatējot kļūmes, es laboju un atjaunināju serveri.

PatiesÄ«bā Å”ajā posmā nebija tik daudz tehnisku problēmu. Visa grÅ«tÄ«ba bija tā, ka gandrÄ«z mēnesi dežurēju birojā, tikai reizēm braucu mājās. DroÅ”i vien 4-5 reizes. Un es gulēju lēkmēs, jo tajā laikā pie projekta strādāju viens un neviens, izņemot mani, neko nevarēja salabot.

Mēnesi, tas nenozÄ«mē, ka visu mēnesi viss nepārtraukti traucās un es bez apstājas kaut ko kodēju. Mēs tikko tā nolēmām. Galu galā bizness jau darbojās un guva peļņu. Labāk ir droÅ”i spēlēt un atpÅ«sties vēlāk, nekā zaudēt klientus un peļņu tagad. Mēs visi to ļoti labi sapratām, tāpēc visa komanda kolektÄ«vi veltÄ«ja maksimālu uzmanÄ«bu un laiku jaunas programmatÅ«ras ievieÅ”anai taksometru sistēmā. Un ņemot vērā paÅ”reizējo pasÅ«tÄ«jumu plÅ«smu, mēneÅ”a laikā noteikti novērsÄ«sim visus trÅ«kumus. Nu, slēptās kļūdas, kas var palikt, noteikti neatstās kritiskas sekas biznesa procesā, un, ja nepiecieÅ”ams, tās var regulāri labot.

Å eit jāatzÄ«mē nenovērtējamā palÄ«dzÄ«ba no taksometru pakalpojumu direktoriem un meistariem, kuri, maksimāli izprotot situācijas sarežģītÄ«bu, pārejot uz jaunu programmatÅ«ru, strādāja ar Å”oferiem visu diennakti. PatiesÄ«bā, pabeidzot jaunu programmu instalÄ“Å”anu tālruņos, mēs nezaudējām nevienu draiveri. Un tie kritiski nepalielināja klientu neizņemÅ”anas procentuālo daļu, kas drÄ«z vien tika atgriezta normālā lÄ«menÄ«.

Tādējādi tika pabeigts projekta pirmais darba posms. Un jāatzÄ«mē, ka rezultāts nebija ilgi jāgaida. Automatizējot pasÅ«tÄ«jumu sadali vadÄ«tājiem bez cilvēka iejaukÅ”anās, par lielumu tika samazināts klienta vidējais taksometra gaidÄ«Å”anas laiks, kas likumsakarÄ«gi palielināja klientu lojalitāti pakalpojumam. Tas izraisÄ«ja pasÅ«tÄ«jumu skaita pieaugumu. Pēc tam palielinājās taksometru vadÄ«tāju skaits. LÄ«dz ar to pieaudzis arÄ« veiksmÄ«gi izpildÄ«to pasÅ«tÄ«jumu skaits. Un tā rezultātā uzņēmuma peļņa pieauga. Protams, Å”eit es esmu mazliet priekŔā, jo viss Å”is process nenotika uzreiz. Teikt, ka vadÄ«ba bija apmierināta, nozÄ«mē neteikt neko. Man tika dota neierobežota pieeja turpmākam projekta finansējumam.

Turpināt ..

Avots: www.habr.com

Pievieno komentāru