Шағын бағдарлама шағын кеңсені айына 100+ миллион рубль кірісі бар федералды компанияға қалай айналдырды

2008 жылдың желтоқсан айының соңында мен бар бизнес-процестерді автоматтандыру мақсатымен Пермьдегі такси қызметтерінің біріне шақырылдым. Жалпы, маған үш негізгі тапсырма берілді:


  • Такси жүргізушілеріне арналған мобильді қосымшасы бар байланыс орталығына арналған бағдарламалық пакетті әзірлеу және ішкі бизнес-процестерді автоматтандыру.
  • Барлығын қысқа мерзімде жасау керек болды.
  • Болашақта бизнес дамып келе жатқанда, үнемі өзгеріп отыратын нарық жағдайларына дербес масштабтауға болатын үшінші тарап әзірлеушілерінен сатып алудың орнына өзіңіздің бағдарламалық жасақтамаңызға ие болыңыз.

Ол кезде мен бұл нарықтың қалай жұмыс істейтінін және оның нюанстарын түсінбедім, бірақ соған қарамастан маған екі нәрсе анық болды. Байланыс орталығы ашық бастапқы кодты жұлдызшалық PBX бағдарламалық қамтамасыз ету негізінде құрылуы керек. Байланыс орталығы мен мобильді қосымша арасындағы ақпарат алмасу негізінен болашақ жобаның архитектурасын жобалау және оны бағдарламалау үшін барлық сәйкес үлгілері бар клиент-сервер шешімі болып табылады.

Жоба бойынша тапсырмаларды, мерзімдерді және шығындарды алдын ала бағалап, такси қызметінің иесімен барлық қажетті мәселелерді келіскеннен кейін мен 2009 жылдың қаңтарында жұмысқа кірістім.

Алға қарап, мен бірден айтамын. Нәтижесінде Ресейдің 60 қаласында және Қазақстанның 12 қаласында 2+ серверде жұмыс істейтін ауқымды платформа пайда болды. Компанияның жалпы табысы айына 100+ миллион рубльді құрады.

Бірінші кезең. Прототип

Ол кезде менің IP телефонияда практикалық тәжірибем болмағандықтан және мен «үй» эксперименттерінің бөлігі ретінде жұлдызшамен үстірт таныс болғандықтан, мобильді қосымшаны және сервер бөлігін әзірлеумен жұмыс істеуді бастау туралы шешім қабылданды. Сонымен қатар басқа тапсырмалар бойынша білімдегі олқылықтарды жою.

Егер мобильді қосымшамен бәрі азды-көпті түсінікті болса. Ол кезде оны тек қарапайым түйме телефондары үшін java тілінде жазуға болатын еді, бірақ мобильді клиенттерге қызмет көрсететін серверді жазу біршама күрделірек болды:

  • Қандай сервер ОЖ пайдаланылады;
  • Тапсырма үшін бағдарламалау тілі таңдалады, керісінше емес логикаға сүйене отырып және 1-тармақты ескере отырып, есептерді шешу үшін қандай бағдарламалау тілі оңтайлы болады;
  • Жобалау кезінде қызметке күтілетін болашақ жоғары жүктемелерді ескеру қажет болды;
  • Қандай деректер базасы жоғары жүктемелер кезінде ақауларға төзімділікке кепілдік бере алады және оған сұраныстардың саны артқан сайын дерекқордың жылдам жауап беру уақытын қалай сақтауға болады;
  • Анықтаушы фактор даму жылдамдығы және кодты жылдам масштабтау мүмкіндігі болды
  • Жабдықтың құны және болашақта оған техникалық қызмет көрсету (клиенттің шарттарының бірі серверлер оның бақылауындағы аумақта орналасуы керек);
  • Платформадағы жұмыстың келесі кезеңдерінде қажет болатын әзірлеушілердің құны;

Сондай-ақ жобалау және әзірлеуге қатысты басқа да көптеген мәселелер.

Жобамен жұмысты бастамас бұрын, мен бизнес иесіне келесі стратегиялық шешімді ұсындым: жоба өте күрделі болғандықтан, оны жүзеге асыру айтарлықтай уақытты алады, сондықтан алдымен мен көп уақытты қажет етпейтін MVP нұсқасын жасаймын және ақша, бірақ бұл оның компаниясына нарықта «осында және қазір» бәсекелестік артықшылыққа қол жеткізуге мүмкіндік береді, сонымен қатар такси қызметі ретінде оның мүмкіндіктерін кеңейтеді. Өз кезегінде, мұндай аралық шешім маған соңғы шешімді ойластырылған түрде жобалауға уақыт пен техникалық эксперименттерге уақыт береді. Сонымен қатар, енгізілген бағдарламалық шешімнің дұрыс жобалануына кепілдік берілмейді және болашақта түбегейлі қайта жасалуы немесе ауыстырылуы мүмкін, бірақ ол «бәсекелестерден шығу» үшін ең аз қажетті функционалдылықты міндетті түрде орындайды. Бұл идея таксидің негізін қалаушыға ұнады, сондықтан олар мұны жасады.

Мен алғашқы екі аптаны компаниядағы бизнес-процестерді зерттеп, такси жұмысын іштен зерттедім. Қай жерде, нені және қалай автоматтандыруға болады және бұл мүлдем қажет пе деген бизнеске талдау жүргізді. Компания қызметкерлері қандай қиындықтар мен проблемаларға тап болады? Олар қалай шешіледі. Кәсіпорын қызметкерлері үшін жұмыс күні қалай ұйымдастырылады. Олар қандай құралдарды пайдаланады?

Үшінші аптаның соңына қарай жұмысқа кірісіп, интернетте қызықтыратын сұрақтарды зерттегеннен кейін, бизнес иесінің тілектерін, сондай-ақ сол кездегі өз білімім мен мүмкіндіктерімді ескере отырып, келесі стекті қолдану туралы шешім қабылданды. :

  • Деректер базасының сервері: MsSQL (2 ГБ дейін дерекқор файлы шектелген тегін нұсқасы);
  • Windows жүйесінде Delphi-де мобильді клиенттерге қызмет көрсететін серверді әзірлеу, өйткені деректер базасы орнатылатын Windows сервері бұрыннан бар болатын, сонымен қатар әзірлеу ортасының өзі жылдам дамуға ықпал етеді;
  • 2009 жылы ұялы телефондардағы интернет жылдамдығының төмендігін ескере отырып, клиент пен сервер арасындағы алмасу хаттамасы екілік болуы керек. Бұл жіберілетін деректер пакеттерінің көлемін азайтады және нәтижесінде клиенттердің сервермен жұмысының тұрақтылығын арттырады;

Тағы екі апта хаттама мен дерекқорды жобалауға жұмсалды. Нәтижесінде мобильді клиент пен сервер арасындағы барлық қажетті деректермен алмасуды қамтамасыз ететін 12 пакет және деректер қорындағы 20-ға жуық кесте пайда болды. Мен жұмыстың бұл бөлігін болашақты ескере отырып жасадым, тіпті технологиялық стекті толығымен өзгертуге тура келсе де, пакеттер мен деректер қорының құрылымы өзгеріссіз қалуы керек.

Дайындық жұмыстарынан кейін идеяны іс жүзінде жүзеге асыруға кірісуге мүмкіндік туды. Процесті сәл жылдамдату және басқа тапсырмаларға уақытты босату үшін мен мобильді қосымшаның нобайлық нұсқасын жасадым, UI, ішінара UX эскизін жасадым және жобаға таныс java бағдарламашысын тарттым. Және ол серверлік әзірлеуге, дизайнға және тестілеуге назар аударды.

MVP жұмысының екінші айының соңында сервер мен клиент прототипінің бірінші нұсқасы дайын болды.

Ал үшінші айдың соңында синтетикалық сынақтар мен далалық сынақтардан, қателерді түзетіп, хаттама мен дерекқорды аздаған жақсартулардан кейін қосымша өндіріске дайын болды. Бұл не істелді.

Осы сәттен бастап жобаның ең қызықты және ең қиын бөлігі басталады.

Жүргізушілердің жаңа бағдарламалық қамтамасыз етуге көшуі кезінде тәулік бойы кезекшілік ұйымдастырылды. Өйткені күндізгі жұмыс уақытында барлығы келе алмайды. Сонымен қатар, әкімшілік түрде компания құрылтайшысының ерікті шешімімен логин/парольді такси қызметінің менеджері енгізетін және олар жүргізушіге хабарланбайтын етіп ұйымдастырылған. Менің тарапымнан сәтсіздіктер мен күтпеген жағдайларда пайдаланушыларға техникалық қолдау қажет болды.

Мерфи заңы бізге былай дейді: «Қате болуы мүмкін кез келген нәрсе дұрыс емес болады». Міне, дәл осылай дұрыс болмады... Мен және бірнеше такси жүргізушілері қосымшаны бірнеше ондаған сынақ тапсырыстары бойынша сынап көргенімізде бір нәрсе болды. Желідегі 500-ден астам жүргізуші нақты адамдардың нақты тапсырыстары бойынша нақты уақытта жұмыс істейтін болса, бұл мүлдем басқа мәселе.

Мобильді қосымшаның архитектурасы қарапайым болды және ондағы қателер серверге қарағанда айтарлықтай аз болды. Сондықтан жұмыстың негізгі бағыты сервер жағында болды. Қолданбадағы ең маңызды ақау телефондағы интернет жоғалып, сеанс қайта қалпына келтірілген кезде серверден ажырату мәселесі болды. Ал Интернет жиі жоғалып кетті. Біріншіден, сол жылдары телефондағы интернет жеткілікті тұрақты емес еді. Екіншіден, Интернет жұмыс істемейтін көптеген соқырлар болды. Біз бұл мәселені бірден анықтадық және XNUMX сағат ішінде бұрын орнатылған барлық қолданбаларды жөндеп, жаңарттық.

Серверде негізінен тапсырысты тарату алгоритмінде қателер болды және клиенттердің кейбір сұрауларын дұрыс өңдемеуде. Ақауларды анықтағаннан кейін мен серверді түзетіп, жаңарттым.

Шындығында, бұл кезеңде техникалық ақаулар көп болған жоқ. Бүкіл қиындық менің кеңседе бір айға жуық кезекшілікте болдым, анда-санда үйге бардым. Мүмкін 4-5 рет. Мен ол кезде жобада жалғыз жұмыс істеп жүргендіктен, меннен басқа ешкім ештеңені түзете алмайтындықтан, ұйықтап қалдым.

Бір ай, бұл бір ай бойы бәрі үнемі қателесті және мен тоқтаусыз бірдеңені кодтадым дегенді білдірмейді. Біз жай ғана осылай шештік. Өйткені, кәсіп қазірдің өзінде жұмыс істеп, пайда тауып жатқан еді. Клиенттер мен пайданы қазір жоғалтқанша, оны қауіпсіз ойнап, кейінірек демалу жақсы. Біз мұны бәріміз жақсы түсіндік, сондықтан бүкіл команда такси жүйесіне жаңа бағдарламалық қамтамасыз етуді енгізуге барынша көңіл бөлді. Ал қазіргі тапсырыстар трафигін ескере отырып, біз бір айдың ішінде барлық кемшіліктерді міндетті түрде жоямыз. Ал, қалуы мүмкін жасырын қателер, әрине, бизнес-процес үшін маңызды салдарға әкелмейді және қажет болған жағдайда оларды жүйелі түрде түзетуге болады.

Бұл жерде жүргізушілерді жаңа бағдарламалық қамтамасыз етуге көшіру жағдайының күрделілігін барынша түсініп, жүргізушілермен тәулік бойы жұмыс істеген такси қызметінің директорлары мен бригадирлерінің баға жетпес көмегін атап өту қажет. Шындығында, телефондарға жаңа бағдарламаларды орнатуды аяқтағаннан кейін біз бірде-бір драйверді жоғалтпадық. Және олар көп ұзамай қалыпты деңгейге қайтарылған клиенттерді алып тастамау пайызын сыни көтермеді.

Бұл жоба бойынша жұмыстың бірінші кезеңін аяқтады. Нәтижесі көп күтпегенін айта кету керек. Адамның араласуынсыз жүргізушілерге тапсырыстарды таратуды автоматтандыру арқылы клиенттің таксиді күту уақыты орташа есеппен қысқартылды, бұл тұтынушылардың қызметке деген адалдығын табиғи түрде арттырды. Бұл тапсырыстар санының артуына әкелді. Осыдан кейін такси жүргізушілері де көбейді. Нәтижесінде сәтті орындалған тапсырыстар саны да артты. Нәтижесінде компанияның кірісі өсті. Әрине, бұл жерде мен өзімнен сәл озып кеттім, өйткені бұл процесс бірден болған жоқ. Басшылық риза болды деу - ештеңе айтпау. Маған жобаны одан әрі қаржыландыруға шектеусіз рұқсат берілді.

Жалғасы бар..

Ақпарат көзі: www.habr.com

пікір қалдыру