Qanday qilib kichik dastur kichik ofisni oyiga 100+ million rubl foyda bilan federal kompaniyaga aylantirdi

2008 yil dekabr oyining oxirida meni mavjud biznes jarayonlarini avtomatlashtirish maqsadida Permdagi taksi xizmatlaridan biriga taklif qilishdi. Umuman olganda, menga uchta asosiy vazifa berildi:


  • Taksi haydovchilari uchun mobil ilovaga ega qo‘ng‘iroqlar markazi uchun dasturiy ta’minot to‘plamini ishlab chiqish va ichki biznes jarayonlarini avtomatlashtirish.
  • Hamma narsani eng qisqa vaqt ichida qilish kerak edi.
  • Kelajakda biznes rivojlanib borishi bilan doimiy ravishda o'zgarib turadigan bozor sharoitlariga qarab mustaqil ravishda kengaytirilishi mumkin bo'lgan uchinchi tomon ishlab chiqaruvchilardan sotib olish o'rniga o'zingizning shaxsiy dasturiy ta'minotingizga ega bo'ling.

O'sha paytda men bu bozor qanday ishlashini va uning nuanslarini tushunmadim, ammo shunga qaramay, men uchun ikkita narsa aniq edi. Call-markaz ochiq kodli yulduzcha PBX dasturi asosida qurilgan bo'lishi kerak. Qo'ng'iroqlar markazi va mobil ilova o'rtasida ma'lumot almashish, asosan, kelajakdagi loyiha arxitekturasini loyihalash va uni dasturlash uchun barcha mos naqshlarga ega bo'lgan mijoz-server yechimidir.

Loyihaning vazifalari, muddatlari va xarajatlarini dastlabki baholash va taksi xizmati egasi bilan barcha zarur masalalarni kelishib olgandan so'ng, men 2009 yil yanvar oyida ish boshladim.

Oldinga qarab, men darhol aytaman. Natijada Rossiyaning 60 ta va Qozog‘istonning 12 ta shahrida 2 dan ortiq serverlarda ishlaydigan kengaytiriladigan platforma yaratildi. Kompaniyaning umumiy foydasi oyiga 100+ million rublni tashkil etdi.

Birinchi bosqich. Prototip

O'sha paytda men IP-telefoniya bo'yicha amaliy tajribaga ega bo'lmaganim va "uy" tajribalari doirasida yulduzcha bilan yuzaki tanish bo'lganim sababli, mobil ilova va server qismini ishlab chiqish bilan ishlashni boshlashga qaror qilindi. Shu bilan birga, boshqa vazifalar bo'yicha bilimlardagi bo'shliqlarni yopish.

Agar mobil ilova bilan hamma narsa ko'proq yoki kamroq aniq bo'lsa. O'sha paytda uni faqat oddiy tugmachali telefonlar uchun java tilida yozish mumkin edi, lekin mobil mijozlarga xizmat ko'rsatadigan serverni yozish biroz murakkabroq edi:

  • Qaysi server operatsion tizimi ishlatiladi;
  • Vazifa uchun dasturlash tili tanlanadi, aksincha emas, degan mantiqdan va 1-bandni hisobga olgan holda, qaysi dasturlash tili muammolarni hal qilish uchun maqbul bo'ladi;
  • Loyihalash jarayonida xizmatga kutilayotgan kelajakdagi yuqori yuklarni hisobga olish kerak edi;
  • Qaysi ma'lumotlar bazasi yuqori yuklanishlarda nosozliklarga chidamliligini kafolatlashi mumkin va unga so'rovlar soni ortib borayotganligi sababli ma'lumotlar bazasining tezkor javob vaqtini qanday saqlash kerak;
  • Rivojlanish tezligi va kodni tezda o'lchash qobiliyati hal qiluvchi omil edi
  • Uskunaning narxi va kelajakda unga texnik xizmat ko'rsatish (mijozning shartlaridan biri serverlar uning nazorati ostidagi hududda joylashgan bo'lishi kerak);
  • Platformadagi ishning keyingi bosqichlarida kerak bo'ladigan ishlab chiquvchilarning narxi;

Shuningdek, dizayn va ishlab chiqish bilan bog'liq ko'plab boshqa masalalar.

Loyiha ustida ishlashni boshlashdan oldin, men biznes egasiga quyidagi strategik qarorni taklif qildim: loyiha juda murakkab bo'lgani uchun uni amalga oshirish sezilarli vaqtni oladi, shuning uchun birinchi navbatda men MVP versiyasini yarataman, bu ko'p vaqt talab qilmaydi va pul, lekin bu uning kompaniyasiga bozorda allaqachon "bu erda va hozir" raqobatdosh ustunlikka ega bo'lishga imkon beradi va taksi xizmati sifatida o'z imkoniyatlarini kengaytiradi. O'z navbatida, bunday oraliq yechim menga yakuniy yechimni yanada o'ylangan holda loyihalash uchun vaqt va texnik tajribalar uchun vaqt beradi. Shu bilan birga, amalga oshirilgan dasturiy ta'minot yechimining to'g'ri ishlab chiqilishi kafolatlanmaydi va kelajakda tubdan qayta ishlab chiqilishi yoki almashtirilishi mumkin, ammo u "raqobatchilardan ajralib chiqish" uchun zarur bo'lgan minimal funktsiyalarni bajaradi. Taksi asoschisiga bu g‘oya yoqdi, shuning uchun oxir-oqibat buni amalga oshirishdi.

Dastlabki ikki haftada men kompaniyadagi biznes jarayonlarni o‘rgandim va taksi ishini ichkaridan o‘rgandim. Qayerda, nimani va qanday avtomatlashtirish mumkinligi va umuman kerakmi yoki yo'qmi, biznes tahlilini o'tkazdi. Kompaniya xodimlari qanday qiyinchiliklar va muammolarga duch kelishmoqda? Ular qanday hal qilinadi. Korxona xodimlari uchun ish kuni qanday tashkil etilganligi. Ular qanday vositalardan foydalanadilar?

Uchinchi haftaning oxiriga kelib, ishni boshlaganimdan va Internetda qiziqtirgan masalalarni o'rgangandan so'ng, biznes egasining xohish-istaklarini, shuningdek, o'sha paytdagi o'z bilim va imkoniyatlarimni hisobga olgan holda, quyidagi stekni qo'llashga qaror qilindi. :

  • Ma'lumotlar bazasi serveri: MsSQL (ma'lumotlar bazasi fayli chegarasi 2 GB gacha bo'lgan bepul versiya);
  • Windows ostida Delphida mobil mijozlarga xizmat ko'rsatadigan serverni ishlab chiqish, chunki ma'lumotlar bazasi o'rnatiladigan Windows serveri allaqachon mavjud edi, shuningdek, ishlab chiqish muhitining o'zi tez rivojlanishga yordam beradi;
  • 2009 yilda mobil telefonlarda past internet tezligini hisobga olgan holda, mijoz va server o'rtasidagi almashinuv protokoli ikkilik bo'lishi kerak. Bu uzatiladigan ma'lumotlar paketlarining hajmini kamaytiradi va natijada mijozlarning server bilan ishlashi barqarorligini oshiradi;

Yana ikki hafta protokol va ma'lumotlar bazasini loyihalash uchun sarflandi. Natijada mobil mijoz va server o'rtasida barcha kerakli ma'lumotlar almashinuvini ta'minlaydigan 12 ta paket va ma'lumotlar bazasidagi 20 ga yaqin jadvallar paydo bo'ldi. Men ishning ushbu qismini kelajakni hisobga olgan holda qildim, hatto texnologiya stekini butunlay o'zgartirishim kerak bo'lsa ham, paketlar va ma'lumotlar bazasi tuzilishi o'zgarishsiz qolishi kerak.

Tayyorgarlik ishlaridan so'ng g'oyani amaliy amalga oshirishga kirishish mumkin edi. Jarayonni biroz tezlashtirish va boshqa vazifalarga vaqt ajratish uchun men mobil ilovaning qoralama versiyasini yaratdim, UI, qisman UX ni chizdim va loyihaga tanish java dasturchisini jalb qildim. Va u server tomonida ishlab chiqish, dizayn va sinovlarga e'tibor qaratdi.

MVP ustida ishlashning ikkinchi oyining oxiriga kelib, server va mijoz prototipining birinchi versiyasi tayyor bo'ldi.

Uchinchi oyning oxiriga kelib, sintetik sinovlar va dala sinovlari, xatolarni tuzatish, protokol va ma'lumotlar bazasidagi kichik yaxshilanishlardan so'ng, dastur ishlab chiqarishga tayyor edi. Bu nima qilingan.

Shu paytdan boshlab loyihaning eng qiziqarli va eng qiyin qismi boshlanadi.

Haydovchilarni yangi dasturiy ta’minotga o‘tkazish jarayonida 24 soatlik navbatchilik tashkil etildi. Chunki kun davomida ish vaqtida hamma ham kela olmasdi. Bundan tashqari, ma'muriy jihatdan, kompaniya ta'sischisining qat'iy qarori bilan login/parol taksi xizmati menejeri tomonidan kiritilgan va ular haydovchiga bildirilmaydigan tarzda tashkil etilgan. Men tomondan, nosozliklar va kutilmagan vaziyatlarda foydalanuvchilarga texnik yordam kerak edi.

Merfi qonuni bizga aytadi: "Xato bo'lishi mumkin bo'lgan har qanday narsa noto'g'ri bo'ladi". Va aynan shunday narsalar noto'g'ri ketdi ... Men va bir nechta taksi haydovchilari dasturni bir necha o'nlab sinov buyurtmalarida sinab ko'rganimizda, bu bitta narsa. Va liniyada 500 dan ortiq haydovchilar real vaqt rejimida haqiqiy odamlarning haqiqiy buyurtmalari bo'yicha ishlayotganida, bu butunlay boshqacha masala.

Mobil ilovaning arxitekturasi sodda edi va undagi xatolar serverga qaraganda sezilarli darajada kam edi. Shuning uchun ishning asosiy yo'nalishi server tomoniga qaratildi. Ilovadagi eng jiddiy nosozlik telefondagi internet uzilib, sessiya qayta tiklanganda serverdan uzilish muammosi bo'ldi. Va Internet juda tez-tez yo'qoldi. Birinchidan, o'sha yillarda telefondagi Internet etarli darajada barqaror emas edi. Ikkinchidan, Internet oddiygina ishlamaydigan ko'plab ko'r joylar mavjud edi. Biz bu muammoni deyarli darhol aniqladik va 24 soat ichida avval o'rnatilgan barcha ilovalarni tuzatdik va yangiladik.

Serverda asosan buyurtmalarni taqsimlash algoritmida xatolar va mijozlarning ba'zi so'rovlarini noto'g'ri qayta ishlashda xatolar mavjud edi. Nosozliklarni aniqlagandan so'ng, men serverni tuzatdim va yangiladim.

Aslida, bu bosqichda texnik muammolar unchalik ko'p emas edi. Barcha qiyinchilik shundaki, men ofisda deyarli bir oy navbatchilik qildim, faqat vaqti-vaqti bilan uyga bordim. Ehtimol, 4-5 marta. Va men zerikib uxladim, chunki o'sha paytda men loyihada yolg'iz ishlayotgan edim va mendan boshqa hech kim hech narsani tuzata olmadi.

Bir oy, bu bir oy davomida hamma narsa doimiy ravishda chayqalayotganini anglatmaydi va men to'xtamasdan nimanidir kodlashim kerak edi. Biz shunchaki qaror qildik. Axir, biznes allaqachon faoliyat ko'rsatib, daromad keltirayotgan edi. Endi mijozlar va daromadlarni yo'qotishdan ko'ra, uni xavfsiz o'ynash va keyinroq dam olish yaxshiroqdir. Biz hammamiz buni juda yaxshi tushundik, shuning uchun butun jamoa birgalikda taksi tizimiga yangi dasturiy ta'minotni joriy etishga maksimal e'tibor va vaqt bag'ishladi. Va buyurtmalar oqimini hisobga olgan holda, biz bir oy ichida barcha kamchiliklarni albatta bartaraf qilamiz. Xo'sh, qolishi mumkin bo'lgan yashirin xatolar, albatta, biznes jarayoniga jiddiy oqibatlarga olib kelmaydi va agar kerak bo'lsa, ularni muntazam ravishda tuzatish mumkin.

Bu erda haydovchilarni yangi dasturiy ta'minotga o'tkazish holatining murakkabligini maksimal darajada tushunib, haydovchilar bilan kechayu kunduz ishlagan taksi xizmatlari direktorlari va ustalarining bebaho yordamini ta'kidlash kerak. Darhaqiqat, telefonlarda yangi dasturlarni o'rnatishni tugatgandan so'ng, biz bitta drayverni yo'qotmadik. Va ular mijozlarni olib tashlamaslik foizini keskin oshirmadilar, bu tez orada normal darajaga qaytdi.

Bu loyiha ustidagi ishlarning birinchi bosqichini yakunladi. Va shuni ta'kidlash kerakki, natija uzoq kutilmadi. Buyurtmalarni haydovchilarga inson aralashuvisiz taqsimlashni avtomatlashtirish orqali mijoz tomonidan taksini kutishning o‘rtacha vaqti kattalik tartibiga qisqartirildi, bu esa mijozlarning xizmatga sodiqligini tabiiy ravishda oshirdi. Bu buyurtmalar sonining ko'payishiga olib keldi. Buning ortidan taksichilar soni ortdi. Natijada, muvaffaqiyatli bajarilgan buyurtmalar soni ham ortdi. Va natijada kompaniyaning daromadi oshdi. Albatta, bu erda men o'zimdan biroz oldinga ketyapman, chunki bu jarayon bir zumda sodir bo'lmagan. Rahbariyat mamnun bo'ldi deyish hech narsa demaslikdir. Menga loyihani keyingi moliyalashtirish uchun cheksiz ruxsat berildi.

Davomi bor..

Manba: www.habr.com

a Izoh qo'shish