کس طرح ایک چھوٹے سے پروگرام نے 100+ ملین روبل/ماہ کے منافع کے ساتھ ایک چھوٹے دفتر کو وفاقی کمپنی میں تبدیل کر دیا

دسمبر 2008 کے آخر میں، مجھے پرم کی ایک ٹیکسی سروس میں مدعو کیا گیا تھا جس کا مقصد موجودہ کاروباری عمل کو خودکار بنانا تھا۔ عام طور پر، مجھے تین بنیادی کام سونپے گئے تھے:


  • ٹیکسی ڈرائیوروں کے لیے موبائل ایپلیکیشن کے ساتھ کال سینٹر کے لیے ایک سافٹ ویئر پیکج تیار کریں اور اندرونی کاروباری عمل کو خودکار بنائیں۔
  • سب کچھ کم سے کم وقت میں کرنا تھا۔
  • فریق ثالث کے ڈویلپرز سے خریدنے کے بجائے اپنا خود کا سافٹ ویئر رکھیں، جسے مستقبل میں، جیسے جیسے کاروبار ترقی کرتا ہے، آزادانہ طور پر مارکیٹ کے حالات کو مسلسل بدلتے ہوئے اسکیل کیا جا سکتا ہے۔

اس وقت مجھے یہ سمجھ نہیں آئی تھی کہ یہ بازار کیسے کام کرتا ہے اور اس کی باریکیاں، لیکن اس کے باوجود دو چیزیں مجھ پر عیاں تھیں۔ کال سینٹر کو اوپن سورس ایسٹرسک سافٹ ویئر PBX کی بنیاد پر بنایا جانا چاہیے۔ کال سینٹر اور موبائل ایپلیکیشن کے درمیان معلومات کا تبادلہ بنیادی طور پر کلائنٹ-سرور کا حل ہے جس میں مستقبل کے پروجیکٹ کے فن تعمیر اور اس کی پروگرامنگ کو ڈیزائن کرنے کے لیے تمام متعلقہ پیٹرن موجود ہیں۔

پروجیکٹ کے کاموں، ڈیڈ لائنز اور لاگت کا ابتدائی جائزہ لینے اور ٹیکسی سروس کے مالک کے ساتھ تمام ضروری امور پر اتفاق کرنے کے بعد، میں نے جنوری 2009 میں کام شروع کیا۔

آگے دیکھ کر فوراً کہوں گا۔ نتیجہ روس کے 60 شہروں اور قازقستان کے 12 شہروں میں 2+ سرورز پر چلنے والا ایک قابل توسیع پلیٹ فارم تھا۔ کمپنی کا کل منافع 100+ ملین روبل/ماہ تھا۔

پہلا مرحلہ۔ نمونہ

چونکہ اس وقت مجھے آئی پی ٹیلی فونی کا کوئی عملی تجربہ نہیں تھا، اور میں "گھریلو" تجربات کے حصے کے طور پر ستارے سے صرف سطحی طور پر واقف تھا، اس لیے فیصلہ کیا گیا کہ موبائل ایپلیکیشن اور سرور کے حصے کی تیاری کے ساتھ کام شروع کیا جائے۔ ایک ہی وقت میں، دوسرے کاموں پر علم میں فرق کو بند کرنا۔

اگر موبائل ایپلیکیشن کے ساتھ سب کچھ کم و بیش واضح تھا۔ اس وقت، یہ صرف سادہ پش بٹن فونز کے لیے جاوا میں لکھا جا سکتا تھا، لیکن موبائل کلائنٹس کی خدمت کرنے والے سرور کو لکھنا کچھ زیادہ ہی پیچیدہ تھا:

  • کون سا سرور OS استعمال کیا جائے گا؛
  • اس منطق کی بنیاد پر کہ کسی کام کے لیے ایک پروگرامنگ زبان کا انتخاب کیا جاتا ہے، نہ کہ اس کے برعکس، اور پوائنٹ 1 کو مدنظر رکھتے ہوئے، کون سی پروگرامنگ زبان مسائل کو حل کرنے کے لیے بہترین ہوگی۔
  • ڈیزائن کے دوران، سروس پر متوقع مستقبل میں زیادہ بوجھ کو مدنظر رکھنا ضروری تھا۔
  • کون سا ڈیٹا بیس زیادہ بوجھ کے تحت غلطی کو برداشت کرنے کی ضمانت دے سکتا ہے اور اس کے لیے درخواستوں کی تعداد میں اضافے کے ساتھ ڈیٹا بیس کے رسپانس ٹائم کو کیسے برقرار رکھا جائے؛
  • تعین کرنے والا عنصر ترقی کی رفتار اور کوڈ کو تیزی سے اسکیل کرنے کی صلاحیت تھا۔
  • مستقبل میں سازوسامان اور اس کی دیکھ بھال کی لاگت (گاہک کی شرائط میں سے ایک یہ ہے کہ سرور اس کے زیر کنٹرول علاقے میں واقع ہوں)؛
  • ڈویلپرز کی لاگت جو پلیٹ فارم پر کام کے اگلے مراحل میں درکار ہو گی۔

اس کے ساتھ ساتھ ڈیزائن اور ترقی سے متعلق بہت سے دوسرے مسائل۔

منصوبے پر کام شروع کرنے سے پہلے، میں نے کاروباری مالک کو درج ذیل حکمت عملی کا فیصلہ تجویز کیا: چونکہ یہ منصوبہ کافی پیچیدہ ہے، اس لیے اس پر عمل درآمد میں کافی وقت لگے گا، اس لیے پہلے میں ایک MVP ورژن بناتا ہوں، جس میں زیادہ وقت نہیں لگے گا اور پیسہ، لیکن جو اس کی کمپنی کو پہلے سے ہی "یہاں اور اب" مارکیٹ میں مسابقتی فائدہ حاصل کرنے کی اجازت دے گا، اور ٹیکسی سروس کے طور پر اپنی صلاحیتوں کو بھی وسعت دے گا۔ بدلے میں، اس طرح کا درمیانی حل مجھے حتمی حل اور تکنیکی تجربات کے لیے زیادہ سوچ سمجھ کر ڈیزائن کرنے کا وقت دے گا۔ ایک ہی وقت میں، نافذ کردہ سافٹ ویئر حل کے صحیح طریقے سے ڈیزائن کیے جانے کی ضمانت نہیں دی جائے گی اور اسے مستقبل میں یکسر دوبارہ ڈیزائن یا تبدیل کیا جا سکتا ہے، لیکن یہ یقینی طور پر "مقابلوں سے الگ ہونے" کے لیے کم از کم ضروری فعالیت انجام دے گا۔ ٹیکسی کے بانی کو یہ خیال پسند آیا، تو آخر کار انہوں نے ایسا ہی کیا۔

میں نے پہلے دو ہفتے کمپنی میں کاروباری عمل کا مطالعہ کرنے اور اندر سے ٹیکسی کے کام کا مطالعہ کرنے میں گزارے۔ کاروباری تجزیہ کیا کہ کہاں، کیا اور کیسے خودکار کیا جا سکتا ہے اور کیا یہ بالکل ضروری ہے۔ کمپنی کے ملازمین کو کن مشکلات اور مسائل کا سامنا ہے؟ ان کو کیسے حل کیا جاتا ہے۔ کمپنی کے ملازمین کے لیے کام کے دن کا اہتمام کیسے کیا جاتا ہے۔ وہ کون سے اوزار استعمال کرتے ہیں؟

تیسرے ہفتے کے آخر تک، کام شروع کرنے اور انٹرنیٹ پر دلچسپی کے مسائل کا مطالعہ کرنے کے بعد، کاروبار کے مالک کی خواہشات کے ساتھ ساتھ اس وقت میرے اپنے علم اور صلاحیتوں کو مدنظر رکھتے ہوئے، درج ذیل اسٹیک کو لاگو کرنے کا فیصلہ کیا گیا۔ :

  • ڈیٹا بیس سرور: MsSQL (2GB تک ڈیٹا بیس فائل کی حد کے ساتھ مفت ورژن)؛
  • ونڈوز کے تحت ڈیلفی میں موبائل کلائنٹس کی خدمت کرنے والے سرور کی ترقی، کیونکہ وہاں پہلے سے ہی ایک ونڈوز سرور موجود تھا جس پر ڈیٹا بیس نصب کیا جائے گا، اور ساتھ ہی ترقیاتی ماحول خود تیزی سے ترقی کی سہولت فراہم کرتا ہے۔
  • 2009 میں موبائل فون پر انٹرنیٹ کی کم رفتار کو مدنظر رکھتے ہوئے، کلائنٹ اور سرور کے درمیان ایکسچینج پروٹوکول بائنری ہونا چاہیے۔ اس سے منتقل شدہ ڈیٹا پیکٹ کا سائز کم ہو جائے گا اور اس کے نتیجے میں، سرور کے ساتھ کلائنٹس کے کام کے استحکام میں اضافہ ہو گا۔

پروٹوکول اور ڈیٹا بیس کو ڈیزائن کرنے میں مزید دو ہفتے صرف ہوئے۔ نتیجہ 12 پیکجز تھا جو موبائل کلائنٹ اور سرور کے درمیان تمام ضروری ڈیٹا اور ڈیٹا بیس میں تقریباً 20 ٹیبلز کے تبادلے کو یقینی بناتے ہیں۔ میں نے کام کا یہ حصہ مستقبل کو مدنظر رکھتے ہوئے کیا، چاہے مجھے ٹیکنالوجی کے اسٹیک کو مکمل طور پر تبدیل کرنا پڑے، پیکیجز اور ڈیٹا بیس کی ساخت میں کوئی تبدیلی نہیں ہونی چاہیے۔

تیاری کے کام کے بعد، یہ خیال کے عملی نفاذ شروع کرنے کے لئے ممکن تھا. اس عمل کو تھوڑا تیز کرنے اور دوسرے کاموں کے لیے وقت خالی کرنے کے لیے، میں نے موبائل ایپلیکیشن کا ایک ڈرافٹ ورژن بنایا، UI کا خاکہ بنایا، جزوی طور پر UX، اور پروجیکٹ میں ایک مانوس جاوا پروگرامر کو شامل کیا۔ اور اس نے سرور سائیڈ کی ترقی، ڈیزائن اور جانچ پر توجہ دی۔

MVP پر کام کے دوسرے مہینے کے اختتام تک، سرور اور کلائنٹ پروٹو ٹائپ کا پہلا ورژن تیار ہو چکا تھا۔

اور تیسرے مہینے کے آخر تک، مصنوعی ٹیسٹ اور فیلڈ ٹیسٹ، بگ فکسس، پروٹوکول اور ڈیٹا بیس میں معمولی بہتری کے بعد، ایپلی کیشن پروڈکشن کے لیے تیار تھی۔ جو کیا گیا تھا۔

اس لمحے سے اس منصوبے کا سب سے دلچسپ اور مشکل حصہ شروع ہوتا ہے۔

ڈرائیورز کی نئے سافٹ ویئر میں تبدیلی کے دوران XNUMX گھنٹے ڈیوٹی کا اہتمام کیا گیا۔ چونکہ دن میں کام کے اوقات میں ہر کوئی نہیں آسکتا تھا۔ اس کے علاوہ، انتظامی طور پر، کمپنی کے بانی کے مضبوط ارادے کے فیصلے کے ذریعے، اسے اس طرح منظم کیا گیا تھا کہ ٹیکسی سروس کے مینیجر کے ذریعے لاگ ان/پاس ورڈ درج کیا گیا تھا اور انہیں ڈرائیور تک نہیں پہنچایا گیا تھا۔ میری طرف سے، ناکامیوں اور غیر متوقع حالات کی صورت میں صارفین کے لیے تکنیکی مدد کی ضرورت تھی۔

مرفی کا قانون ہمیں بتاتا ہے: "کوئی بھی چیز جو غلط ہو سکتی ہے، غلط ہو جائے گی۔" اور بالکل اسی طرح چیزیں غلط ہوئیں... یہ ایک چیز ہے جب میں نے اور کئی ٹیکسی ڈرائیوروں نے کئی درجن ٹیسٹ آرڈرز پر درخواست کی جانچ کی۔ اور یہ بالکل مختلف معاملہ ہے جب لائن پر 500+ ڈرائیورز حقیقی لوگوں کے حقیقی آرڈرز پر حقیقی وقت میں کام کرتے ہیں۔

موبائل ایپلیکیشن کا فن تعمیر سادہ تھا اور اس میں سرور کے مقابلے میں نمایاں طور پر کم کیڑے تھے۔ اس لیے کام کی اصل توجہ سرور سائیڈ پر تھی۔ ایپلی کیشن میں سب سے اہم خرابی سرور سے منقطع ہونے کا مسئلہ تھا جب فون پر انٹرنیٹ ختم ہو گیا اور سیشن دوبارہ بحال ہو گیا۔ اور انٹرنیٹ اکثر غائب ہو گیا۔ سب سے پہلے، ان سالوں میں فون پر انٹرنیٹ کافی مستحکم نہیں تھا. دوم، بہت سے ایسے اندھے مقامات تھے جہاں انٹرنیٹ کام نہیں کرتا تھا۔ ہم نے تقریباً فوراً ہی اس مسئلے کی نشاندہی کی اور XNUMX گھنٹے کے اندر پہلے سے انسٹال کردہ تمام ایپلیکیشنز کو ٹھیک اور اپ ڈیٹ کیا۔

سرور میں بنیادی طور پر آرڈر کی تقسیم کے الگورتھم میں غلطیاں تھیں اور کلائنٹس کی جانب سے کچھ درخواستوں کی غلط پروسیسنگ تھی۔ خرابیوں کی نشاندہی کرنے پر، میں نے سرور کو درست اور اپ ڈیٹ کیا۔

درحقیقت، اس مرحلے پر اتنے تکنیکی مسائل نہیں تھے۔ ساری مشکل یہ تھی کہ میں تقریباً ایک ماہ سے دفتر میں ڈیوٹی پر تھا، کبھی کبھار ہی گھر جاتا تھا۔ شاید 4-5 بار۔ اور میں فٹ اور سٹارٹ میں سو گیا، کیونکہ اس وقت میں اکیلا پروجیکٹ پر کام کر رہا تھا اور میرے علاوہ کوئی بھی کچھ ٹھیک نہیں کر سکتا تھا۔

ایک مہینہ، اس کا مطلب یہ نہیں ہے کہ ہر چیز ایک مہینے سے مسلسل خراب ہو رہی تھی اور میں بغیر رکے کچھ کوڈنگ کر رہا تھا۔ ہم نے صرف یہ فیصلہ کیا۔ سب کے بعد، کاروبار پہلے سے ہی کام کر رہا تھا اور منافع کما رہا تھا. اسے محفوظ طریقے سے کھیلنا اور بعد میں آرام کرنا بہتر ہے اس سے کہ اب صارفین اور منافع کھو دیں۔ ہم سب اس بات کو اچھی طرح سمجھتے تھے، اس لیے پوری ٹیم نے اجتماعی طور پر ٹیکسی سسٹم میں نئے سافٹ ویئر کو متعارف کرانے کے لیے زیادہ سے زیادہ توجہ اور وقت صرف کیا۔ اور آرڈرز کی موجودہ ٹریفک کو مدنظر رکھتے ہوئے ہم ایک ماہ کے اندر اندر تمام خامیوں کو ضرور دور کر دیں گے۔ ٹھیک ہے، پوشیدہ کیڑے جو باقی رہ سکتے ہیں یقینی طور پر کاروباری عمل پر سنگین نتائج نہیں ہوں گے اور، اگر ضروری ہو تو، انہیں معمول کی بنیاد پر درست کیا جا سکتا ہے۔

یہاں ٹیکسی سروسز کے ڈائریکٹرز اور فورمین کی انمول مدد کو نوٹ کرنا ضروری ہے، جنہوں نے ڈرائیوروں کو نئے سافٹ ویئر میں منتقل کرنے کی صورت حال کی پیچیدگی کو زیادہ سے زیادہ سمجھنے کے ساتھ، ڈرائیوروں کے ساتھ چوبیس گھنٹے کام کیا۔ درحقیقت، فون پر نئے پروگراموں کی تنصیب مکمل کرنے کے بعد، ہم نے ایک بھی ڈرائیور نہیں کھویا۔ اور انہوں نے کلائنٹس کو نہ ہٹانے کے فیصد میں تنقیدی طور پر اضافہ نہیں کیا، جو جلد ہی معمول کی سطح پر واپس آ گیا تھا۔

اس سے منصوبے پر کام کا پہلا مرحلہ مکمل ہو گیا۔ اور یہ واضح رہے کہ نتیجہ آنے میں زیادہ دیر نہیں لگی تھی۔ انسانی مداخلت کے بغیر ڈرائیوروں کو آرڈرز کی تقسیم کو خودکار بنا کر، کلائنٹ کے ذریعہ ٹیکسی کے لیے انتظار کا اوسط وقت ایک حکم کی شدت سے کم ہو گیا، جس نے قدرتی طور پر سروس کے لیے کسٹمر کی وفاداری میں اضافہ کیا۔ اس کی وجہ سے آرڈرز کی تعداد میں اضافہ ہوا۔ اس کے بعد ٹیکسی ڈرائیوروں کی تعداد میں اضافہ ہوا۔ اس کے نتیجے میں، کامیابی سے مکمل ہونے والے آرڈرز کی تعداد میں بھی اضافہ ہوا ہے۔ اور اس کے نتیجے میں، کمپنی کے منافع میں اضافہ ہوا. بے شک، یہاں میں اپنے آپ سے تھوڑا آگے جا رہا ہوں، کیونکہ یہ سارا عمل فوری طور پر نہیں ہوا تھا۔ یہ کہنا کہ انتظامیہ خوش تھی کچھ نہیں کہنا۔ مجھے پراجیکٹ کی مزید فنانسنگ تک لامحدود رسائی دی گئی۔

جاری ہے..

ماخذ: www.habr.com

نیا تبصرہ شامل کریں