Cumu un picculu prugramma hà trasfurmatu un picculu uffiziu in una sucietà federale cù un prufittu di più di 100 milioni di rubli / mese

À a fini di dicembre 2008, sò statu invitatu à unu di i servizii di taxi in Perm cù u scopu di automatizà i prucessi di cummerciale esistenti. In generale, mi sò datu trè funzioni fundamentali:


  • Sviluppà un pacchettu di software per un call center cù una applicazione mobile per i cunduttori di taxi è automatizà i prucessi interni di l'affari.
  • Tuttu avia da esse fattu in u più cortu tempu pussibule.
  • Avè u vostru propiu software, piuttostu chè acquistatu da sviluppatori di terzu, chì in u futuru, cum'è u sviluppu di l'affari, pò esse scalatu indipindente à e cundizioni di u mercatu constantemente cambiante.

À quellu tempu, ùn aghju micca capitu cumu funziona stu mercatu è i so sfumature, ma quantunque, duie cose eranu evidenti per mè. U call center deve esse custruitu nantu à a basa di u software open source asterisk PBX. U scambiu d'infurmazioni trà u call center è l'applicazione mobile hè essenzialmente una soluzione cliente-servitore cù tutti i mudelli currispondenti per u disignu di l'architettura di u futuru prughjettu è a so prugrammazione.

Dopu una valutazione preliminare di i travaglii, i termini è i costi di u prugettu, è avè accunsentutu nantu à tutte e prublemi necessarii cù u pruprietariu di u serviziu di taxi, aghju cuminciatu à travaglià in ghjennaghju 2009.

Fighjendu avanti, dicu subitu. U risultatu era una piattaforma scalabile chì funziona nantu à 60+ servitori in 12 cità in Russia è 2 in Kazakhstan. U prufittu tutale di a cumpagnia era di più di 100 milioni di rubli / mese.

Prima tappa. Prototipu

Siccomu à quellu tempu ùn aghju avutu micca una sperienza pratica in a telefonia IP, è era solu superficialmente familiarizatu cù l'asteriscu cum'è parte di l'esperimenti di "casa", hè statu decisu di cumincià à travaglià cù u sviluppu di una applicazione mobile è una parte di u servitore. À u listessu tempu, chjude i lacune in a cunniscenza nantu à altre attività.

Sì cù l'applicazione mobile tuttu era più o menu chjaru. À quellu tempu, puderia esse scrittu solu in java per i telefuni simplici push-button, ma scrive un servitore chì serve i clienti mobili era un pocu più complicatu:

  • Chì servitore OS serà utilizatu;
  • Basatu nantu à a logica chì una lingua di prugrammazione hè sceltu per un compitu, è micca vice versa, è tenendu in contu u puntu 1, chì lingua di prugrammazione serà ottima per risolve i prublemi;
  • Duranti u disignu, era necessariu di piglià in contu i futuri carichi elevati previsti nantu à u serviziu;
  • Quale basa di dati pò guarantisci a tolleranza di difetti sottu carichi elevati è cumu per mantene un tempu di risposta veloce di a basa di dati cum'è u numeru di dumande à questu aumenta;
  • U fattore determinante era a rapidità di u sviluppu è a capacità di scala rapidamente u codice
  • U costu di l'equipaggiu è u so mantenimentu in u futuru (una di e cundizioni di u cliente hè chì i servitori deve esse situatu in u territoriu sottu u so cuntrollu);
  • Costu di sviluppatori chì saranu necessarii in i prossimi tappe di travagliu nantu à a piattaforma;

Cum'è parechje altre prublemi ligati à u disignu è u sviluppu.

Prima di principià u travagliu nantu à u prugettu, aghju prupostu a seguente decisione strategica à u pruprietariu di l'affari: postu chì u prugettu hè abbastanza cumplessu, a so implementazione hà da piglià una quantità notevuli di tempu, cusì prima aghju creatu una versione MVP, chì ùn duverà micca assai tempu è soldi, ma chì permetterà à a so cumpagnia di guadagnà un vantaghju cumpetitivu nantu à u mercatu digià "quì è avà", è ancu espansione e so capacità cum'è serviziu di taxi. À u turnu, una tale suluzione intermedia mi darà u tempu di cuncepisce più pensativamente a suluzione finale è u tempu per l'esperimenti tecnichi. À u listessu tempu, a suluzione di software implementata ùn serà micca garantita per esse cuncepita currettamente è pò esse radicalmente riprogettata o rimpiazzata in u futuru, ma certamente eseguirà a funziunalità minima necessaria per "rumpicà da i cuncurrenti". U fundatore di u taxi li piacia l'idea, cusì à a fine l'anu fattu.

Aghju passatu e prime duie simane à studià i prucessi di cummerciale in a cumpagnia, è studià u travagliu di un taxi da l'internu. Hà realizatu un analisi cummerciale di induve, ciò chì è cumu pò esse automatizatu è s'ellu hè necessariu. Chì difficultà è prublemi affrontanu l'impiegati di a cumpagnia? Cumu sò risolti. Cumu u ghjornu di travagliu hè urganizatu per l'impiegati di a cumpagnia. Chì arnesi utilizanu ?

À a fine di a terza settimana, dopu avè principiatu u travagliu è studià temi d'interessu in Internet, tenendu in contu i desideri di u pruprietariu di l'affari, è ancu a mo cunniscenza è e so capacità in quellu tempu, hè statu decisu di applicà a stack seguente. :

  • Servitore di basa di dati: MsSQL (versione gratuita cù un limitu di file di basa di dati finu à 2GB);
  • Sviluppu di un servitore chì serve i clienti mobili in Delphi sottu Windows, postu chì ci era digià un servitore Windows nantu à quale a basa di dati seria installata, è ancu l'ambiente di sviluppu stessu facilita u sviluppu rapidu;
  • In cunsiderà a bassa velocità di Internet in i telefunini mobili in u 2009, u protocolu di scambiu trà u cliente è u servitore deve esse binariu. Questu riducerà a dimensione di i pacchetti di dati trasmessi è, in u risultatu, aumenta a stabilità di u travagliu di i clienti cù u servitore;

Altre duie settimane sò state passate à cuncepisce u protocolu è a basa di dati. U risultatu era 12 pacchetti chì assicuranu u scambiu di tutte e dati necessarii trà u cliente mobile è u servitore è circa 20 tabelle in a basa di dati. Aghju fattu sta parte di u travagliu in cunsiderà u futuru, ancu s'è aghju da cambià a pila di tecnulugia cumpletamente, a struttura di i pacchetti è a basa di dati ùn deve esse cambiatu.

Dopu à u travagliu preparatori, era pussibule di principià a implementazione pratica di l'idea. Per accelerà u prucessu un pocu è liberà u tempu per altre attività, aghju fattu una versione bozza di l'applicazione mobile, abbozzatu l'UI, in parte l'UX, è implicatu un programatore java familiar in u prugettu. È si fucalizza nantu à u sviluppu, u disignu è a prova di u servitore.

À a fine di u secondu mese di travagliu nantu à u MVP, a prima versione di u servitore è u prototipu di u cliente era pronta.

È à a fine di u terzu mesi, dopu à teste sintetiche è teste di campu, correzioni di bug, migliure minori à u protocolu è a basa di dati, l'applicazione era pronta per a produzzione. Chì hè ciò chì hè statu fattu.

Da questu mumentu principia a parte più interessante è difficiule di u prugettu.

Durante a transizione di i cunduttori à u novu software, u duvere di 24 ore hè statu urganizatu. Siccomu micca tutti puderanu vene in l'ora di travagliu durante u ghjornu. Inoltre, amministrativamente, per una decisione forte di u fundatore di a cumpagnia, hè stata urganizata in tale manera chì u login / password hè stata entrata da u gestore di u serviziu di taxi è ùn sò micca stati cumunicati à u cunduttore. Da a mo parte, u supportu tecnicu per l'utilizatori era necessariu in casu di fallimenti è situazioni impreviste.

A lege di Murphy ci dice: "Qualcosa chì pò sbaglià, andarà male". È questu hè esattamente cumu e cose andavanu male... Hè una cosa quandu eiu è parechji tassisti anu pruvatu l'applicazione nantu à parechje decine di ordini di teste. È hè una materia completamente diversa quandu più di 500 piloti nantu à a linea travaglianu in tempu reale nantu à ordini reali da persone reali.

L'architettura di l'applicazione mobile era simplice è ci era assai menu bugs in questu chì in u servitore. Dunque, u focu principalu di u travagliu era in u latu di u servitore. U glitch più criticu in l'applicazione era u prublema di disconnection da u servitore quandu l'Internet in u telefunu hè persu è a sessione hè stata restaurata di novu. È Internet hè sparitu abbastanza spessu. Prima, in quelli anni l'Internet in u telefunu stessu ùn era micca abbastanza stabile. Siconda, ci era parechji punti cecu induve l'Internet simpricimenti ùn hà micca travagliatu. Avemu identificatu stu prublema quasi subitu è ​​in 24 ore riparatu è aghjurnatu tutte l'applicazioni installate prima.

U servitore hà avutu principarmenti errori in l'algoritmu di distribuzione di l'ordine è u trattamentu incorrectu di alcune dumande da i clienti. Dopu avè identificatu i glitches, aghju currettu è aghjurnatu u servitore.

In fatti, ùn ci era micca tanti prublemi tecnichi in questa fase. Tutta a difficultà era chì eru di turnu in l'uffiziu per quasi un mesi, solu in ocasioni in casa. Probabilmente 4-5 volte. E aghju durmitu in fitu è ​​principia, postu chì à quellu tempu aghju travagliatu solu nantu à u prugettu è nimu, fora di mè, puderia riparà nunda.

Un mese, questu ùn significa micca chì tuttu era constantemente glitching per un mese è codificava qualcosa senza piantà. Avemu solu decisu chì. Dopu tuttu, l'affari era digià operatu è facia un prufittu. Hè megliu per ghjucà in modu sicuru è riposu più tardi chè per perdiri clienti è prufitti avà. Tutti l'avemu capitu assai bè, cusì tutta a squadra hà cunsacratu cullettivamente a massima attenzione è u tempu per intruduce un novu software in u sistema di taxi. E tenendu in contu u trafficu attuale di ordini, eliminemu definitivamente tutte e carenze in un mesi. Ebbè, i bugs nascosti chì ponu restanu certamenti ùn anu micca cunsiquenzi critichi nantu à u prucessu cummerciale è, se ne necessariu, ponu esse curretti nantu à una basa di rutina.

Quì hè necessariu di nutà l'assistenza inestimabile da i direttori è i capimachja di i servizii di taxi, chì, cù a massima intelligenza di a cumplessità di a situazione di trasferimentu di i cunduttori à u novu software, hà travagliatu cù i cunduttori in tuttu u ghjornu. In fatti, dopu à compie a stallazione di novi prugrammi nantu à i telefoni, ùn avemu micca persu un solu driver. È ùn anu micca cresce criticamente u percentualità di non-eliminazione di i clienti, chì era prestu tornatu à i livelli normali.

Questu hà finitu a prima tappa di u travagliu nantu à u prugettu. È deve esse nutatu chì u risultatu ùn hè micca longu à vene. Per automatizà a distribuzione di ordini à i cunduttori senza intervenzione umana, u tempu mediu d'attesa per un taxi da un cliente hè stata ridutta da un ordine di grandezza, chì naturalmente hà aumentatu a fideltà di u cliente à u serviziu. Questu hà purtatu à un aumentu di u numeru di ordini. Dopu à questu, u numeru di cunduttori di taxi hè aumentatu. In u risultatu, u numeru di ordini cumpleti cù successu hè ancu aumentatu. È in u risultatu, i prufitti di a cumpagnia aumentanu. Di sicuru, quì aghju avutu un pocu davanti à mè stessu, postu chì tuttu stu prucessu ùn hè micca fattu istantaneamente. Dice chì a direzzione hè stata cuntenta hè di dì nunda. Mi hè statu datu un accessu illimitatu à più finanziamentu di u prugettu.

Per continuà ...

Source: www.habr.com

Add a comment