Si një program i vogël e ktheu një zyrë të vogël në një kompani federale me një fitim prej 100+ milion rubla/muaj

Në fund të dhjetorit 2008, u ftova në një nga shërbimet e taksive në Perm me qëllim automatizimin e proceseve ekzistuese të biznesit. Në përgjithësi, më janë dhënë tre detyra themelore:


  • Zhvilloni një paketë softuerike për një qendër thirrjesh me një aplikacion celular për shoferët e taksive dhe automatizoni proceset e brendshme të biznesit.
  • Gjithçka duhej të bëhej në kohën më të shkurtër të mundshme.
  • Keni softuerin tuaj, në vend që të blini nga zhvilluesit e palëve të treta, i cili në të ardhmen, me zhvillimin e biznesit, mund të shkallëzohet në mënyrë të pavarur në kushtet e tregut që ndryshojnë vazhdimisht.

Në atë kohë nuk e kuptoja se si funksionon ky treg dhe nuancat e tij, por megjithatë dy gjëra ishin të dukshme për mua. Qendra e thirrjeve duhet të ndërtohet në bazë të softuerit PBX me yll me kod të hapur. Shkëmbimi i informacionit ndërmjet qendrës së thirrjeve dhe aplikacionit celular është në thelb një zgjidhje klient-server me të gjitha modelet përkatëse për hartimin e arkitekturës së projektit të ardhshëm dhe programimit të tij.

Pas një vlerësimi paraprak të detyrave, afateve dhe kostove të projektit, si dhe pas marrëveshjes për të gjitha çështjet e nevojshme me pronarin e shërbimit taksi, fillova punën në janar 2009.

Duke parë përpara, do të them menjëherë. Rezultati ishte një platformë e shkallëzueshme që funksiononte në 60+ serverë në 12 qytete në Rusi dhe 2 në Kazakistan. Fitimi total i kompanisë ishte 100+ milion rubla/muaj.

Faza e parë. Prototip

Meqenëse në atë kohë nuk kisha përvojë praktike në telefoninë IP dhe isha njohur vetëm sipërfaqësisht me yll si pjesë e eksperimenteve "shtëpi", u vendos të filloja të punoja me zhvillimin e një aplikacioni celular dhe një pjese të serverit. Në të njëjtën kohë, duke mbyllur boshllëqet në njohuri për detyra të tjera.

Nëse me aplikacionin celular gjithçka ishte pak a shumë e qartë. Në atë kohë, mund të shkruhej vetëm në java për telefonat e thjeshtë me butona, por shkrimi i një serveri që u shërben klientëve celularë ishte pak më i komplikuar:

  • Cili OS server do të përdoret;
  • Bazuar në logjikën që një gjuhë programimi zgjidhet për një detyrë, dhe jo anasjelltas, dhe duke marrë parasysh pikën 1, cila gjuhë programimi do të jetë optimale për zgjidhjen e problemeve;
  • Gjatë projektimit, ishte e nevojshme të merren parasysh ngarkesat e larta të pritshme në shërbim në të ardhmen;
  • Cila bazë të dhënash mund të garantojë tolerancë ndaj gabimeve nën ngarkesa të larta dhe si të mbahet një kohë e shpejtë e përgjigjes së bazës së të dhënave ndërsa rritet numri i kërkesave për të;
  • Faktori përcaktues ishte shpejtësia e zhvillimit dhe aftësia për të shkallëzuar shpejt kodin
  • Kostoja e pajisjeve dhe mirëmbajtja e saj në të ardhmen (një nga kushtet e klientit është që serverët të jenë të vendosur në territorin nën kontrollin e tij);
  • Kostoja e zhvilluesve që do të nevojiten në fazat e ardhshme të punës në platformë;

Si dhe shumë çështje të tjera që lidhen me projektimin dhe zhvillimin.

Para fillimit të punës për projektin, i propozova pronarit të biznesit vendimin strategjik të mëposhtëm: meqenëse projekti është mjaft kompleks, zbatimi i tij do të marrë një kohë të dukshme, kështu që së pari krijoj një version MVP, i cili nuk do të marrë shumë kohë dhe para, por që do t'i lejojë kompanisë së tij të fitojë një avantazh konkurrues në treg tashmë "këtu dhe tani", dhe gjithashtu do të zgjerojë aftësitë e saj si një shërbim taksi. Nga ana tjetër, një zgjidhje e tillë e ndërmjetme do të më japë kohë për të hartuar më me mend zgjidhjen përfundimtare dhe kohë për eksperimente teknike. Në të njëjtën kohë, zgjidhja softuerike e implementuar nuk do të garantohet të jetë e dizajnuar saktë dhe mund të ridizajnohet ose zëvendësohet rrënjësisht në të ardhmen, por patjetër do të kryejë funksionalitetin minimal të nevojshëm për t'u "shkëputur nga konkurrentët". Themeluesit të taksisë i pëlqeu ideja, kështu që në fund ia dolën.

Dy javët e para i kalova duke studiuar proceset e biznesit në kompani dhe duke studiuar punën e një taksie nga brenda. U krye një analizë biznesi se ku, çfarë dhe si mund të automatizohet dhe nëse është e nevojshme fare. Me çfarë vështirësish dhe problemesh përballen punonjësit e kompanisë? Si zgjidhen. Si organizohet dita e punës për punonjësit e kompanisë. Çfarë mjetesh përdorin?

Në fund të javës së tretë, pas fillimit të punës dhe studimit të çështjeve me interes në internet, duke marrë parasysh dëshirat e pronarit të biznesit, si dhe njohuritë dhe aftësitë e mia në atë kohë, u vendos që të aplikoja grupin e mëposhtëm :

  • Serveri i bazës së të dhënave: MsSQL (versioni falas me limit skedari të bazës së të dhënave deri në 2 GB);
  • Zhvillimi i një serveri që u shërben klientëve celularë në Delphi nën Windows, pasi tashmë ekzistonte një server Windows në të cilin do të instalohej baza e të dhënave, si dhe vetë mjedisi i zhvillimit lehtëson zhvillimin e shpejtë;
  • Duke marrë parasysh shpejtësinë e ulët të internetit në telefonat celularë në vitin 2009, protokolli i shkëmbimit ndërmjet klientit dhe serverit duhet të jetë binar. Kjo do të zvogëlojë madhësinë e paketave të të dhënave të transmetuara dhe, si rezultat, do të rrisë stabilitetin e punës së klientëve me serverin;

Dy javë të tjera u shpenzuan për hartimin e protokollit dhe bazës së të dhënave. Rezultati ishte 12 paketa që sigurojnë shkëmbimin e të gjitha të dhënave të nevojshme ndërmjet klientit celular dhe serverit dhe rreth 20 tabela në bazën e të dhënave. Unë e bëra këtë pjesë të punës duke marrë parasysh të ardhmen, edhe nëse më duhet të ndryshoj plotësisht stackin e teknologjisë, struktura e paketave dhe bazës së të dhënave duhet të mbeten të pandryshuara.

Pas punës përgatitore, u bë e mundur fillimi i zbatimit praktik të idesë. Për ta shpejtuar pak procesin dhe për të liruar kohë për detyra të tjera, bëra një version draft të aplikacionit celular, skicova UI-në, pjesërisht UX dhe përfshiva një programues të njohur java në projekt. Dhe ai u fokusua në zhvillimin, dizajnimin dhe testimin nga ana e serverit.

Deri në fund të muajit të dytë të punës në MVP, versioni i parë i prototipit të serverit dhe klientit ishte gati.

Dhe në fund të muajit të tretë, pas testeve sintetike dhe testeve në terren, rregullimeve të gabimeve, përmirësimeve të vogla të protokollit dhe bazës së të dhënave, aplikacioni ishte gati për prodhim. E cila është ajo që është bërë.

Nga ky moment fillon pjesa më interesante dhe më e vështirë e projektit.

Gjatë kalimit të shoferëve në softuerin e ri u organizua shërbimi XNUMX-orësh. Meqenëse jo të gjithë mund të vinin gjatë orarit të punës gjatë ditës. Gjithashtu, administrativisht, me vendim të fortë të themeluesit të kompanisë, ishte organizuar në atë mënyrë që login/fjalëkalimi të futej nga menaxheri i shërbimit taksi dhe të mos i komunikoheshin shoferit. Nga ana ime, nevojitej mbështetje teknike për përdoruesit në rast të dështimeve dhe situatave të paparashikuara.

Ligji i Murfit na thotë: "Çdo gjë që mund të shkojë keq, do të shkojë keq." Dhe pikërisht kështu gjërat shkuan keq... Është një gjë kur unë dhe disa taksistë testuam aplikacionin në disa dhjetëra porosi testimi. Dhe është një çështje krejtësisht e ndryshme kur mbi 500 shoferë në linjë punojnë në kohë reale me porosi reale nga njerëz të vërtetë.

Arkitektura e aplikacionit celular ishte e thjeshtë dhe kishte dukshëm më pak gabime në të sesa në server. Prandaj, fokusi kryesor i punës ishte në anën e serverit. Defekti më kritik në aplikacion ishte problemi i shkëputjes nga serveri kur interneti në telefon humbi dhe seanca u rivendos përsëri. Dhe interneti u zhduk mjaft shpesh. Së pari, në ato vite vetë Interneti në telefon nuk ishte mjaftueshëm i qëndrueshëm. Së dyti, kishte shumë pika të verbëra ku interneti thjesht nuk funksiononte. Ne e identifikuam këtë problem pothuajse menjëherë dhe brenda XNUMX orëve i rregulluam dhe përditësuam të gjitha aplikacionet e instaluara më parë.

Serveri kishte kryesisht gabime në algoritmin e shpërndarjes së porosive dhe përpunim të gabuar të disa kërkesave nga klientët. Pas identifikimit të defekteve, korrigjova dhe përditësova serverin.

Në fakt, nuk kishte shumë probleme teknike në këtë fazë. E gjithë vështirësia ishte se unë isha në detyrë në zyrë për gati një muaj, vetëm herë pas here shkoja në shtëpi. Ndoshta 4-5 herë. Dhe unë fjeta në fitime dhe fillime, pasi në atë kohë punoja vetëm në projekt dhe askush përveç meje nuk mund të rregullonte asgjë.

Një muaj, kjo nuk do të thotë që gjithçka po gërryente vazhdimisht për një muaj dhe unë po kodoja diçka pa u ndalur. Ne thjesht vendosëm atë. Në fund të fundit, biznesi tashmë funksiononte dhe bënte fitim. Është më mirë të luash të sigurt dhe të pushosh më vonë sesa të humbasësh klientët dhe fitimet tani. Të gjithë e kuptuam shumë mirë këtë, kështu që i gjithë ekipi kolektivisht i kushtoi vëmendjen dhe kohën maksimale futjes së softuerit të ri në sistemin e taksive. Dhe duke marrë parasysh trafikun aktual të porosive, ne patjetër do të eliminojmë të gjitha mangësitë brenda një muaji. Epo, gabimet e fshehura që mund të mbeten sigurisht që nuk do të kenë pasoja kritike në procesin e biznesit dhe, nëse është e nevojshme, ato mund të korrigjohen në baza rutinë.

Këtu është e nevojshme të theksohet ndihma e paçmuar nga drejtorët dhe drejtuesit e shërbimeve taksi, të cilët, me kuptim maksimal të kompleksitetit të situatës së transferimit të drejtuesve në softuer të ri, punonin me drejtuesit gjatë gjithë kohës. Në fakt, pasi përfunduam instalimin e programeve të reja në telefona, nuk humbëm asnjë drejtues. Dhe nuk e rritën në mënyrë kritike përqindjen e moslargimit të klientëve, e cila shpejt u kthye në nivele normale.

Kjo përfundoi fazën e parë të punës në projekt. Dhe duhet theksuar se rezultati nuk vonoi. Duke automatizuar shpërndarjen e porosive tek shoferët pa ndërhyrjen njerëzore, koha mesatare e pritjes për një taksi nga një klient u zvogëlua me një renditje të madhësisë, gjë që rriti natyrshëm besnikërinë e klientit ndaj shërbimit. Kjo çoi në një rritje të numrit të porosive. Pas kësaj, numri i taksistëve u rrit. Si rezultat, numri i porosive të përfunduara me sukses është rritur gjithashtu. Dhe si rezultat, fitimet e kompanisë u rritën. Sigurisht që këtu po kaloj pak përpara, pasi i gjithë ky proces nuk u zhvillua në çast. Të thuash që menaxhmenti ishte i kënaqur do të thotë të mos thuash asgjë. Më është dhënë akses i pakufizuar për financimin e mëtejshëm të projektit.

Vazhdon..

Burimi: www.habr.com

Shto një koment