โปรแกรมขนาดเล็กเปลี่ยนสำนักงานขนาดเล็กให้กลายเป็นบริษัทรัฐบาลกลางด้วยผลกำไร 100+ ล้านรูเบิลต่อเดือนได้อย่างไร

เมื่อปลายเดือนธันวาคม 2008 ฉันได้รับเชิญให้เข้าร่วมบริการแท็กซี่แห่งหนึ่งในเมืองเพิร์ม โดยมีเป้าหมายเพื่อทำให้กระบวนการทางธุรกิจที่มีอยู่เป็นแบบอัตโนมัติ โดยทั่วไป ฉันได้รับมอบหมายงานพื้นฐานสามประการ:


  • พัฒนาแพ็คเกจซอฟต์แวร์สำหรับคอลเซ็นเตอร์ด้วยแอปพลิเคชันมือถือสำหรับคนขับแท็กซี่ และทำให้กระบวนการทางธุรกิจภายในเป็นอัตโนมัติ
  • ทุกอย่างจะต้องเสร็จสิ้นในเวลาที่สั้นที่สุด
  • มีซอฟต์แวร์ของคุณเอง แทนที่จะซื้อจากนักพัฒนาบุคคลที่สาม ซึ่งในอนาคตเมื่อธุรกิจพัฒนาขึ้น จะสามารถปรับขนาดได้อย่างอิสระตามสภาวะตลาดที่เปลี่ยนแปลงอยู่ตลอดเวลา

ในเวลานั้น ฉันไม่เข้าใจว่าตลาดนี้ทำงานอย่างไรและมีความแตกต่างอย่างไร แต่ถึงกระนั้นฉันก็มีสองสิ่งที่ชัดเจนสำหรับฉัน ศูนย์บริการทางโทรศัพท์จะต้องสร้างขึ้นบนพื้นฐานของซอฟต์แวร์เครื่องหมายดอกจันแบบโอเพ่นซอร์ส PBX การแลกเปลี่ยนข้อมูลระหว่างศูนย์บริการทางโทรศัพท์และแอปพลิเคชันมือถือถือเป็นโซลูชันไคลเอนต์และเซิร์ฟเวอร์ที่มีรูปแบบที่สอดคล้องกันทั้งหมดสำหรับการออกแบบสถาปัตยกรรมของโครงการในอนาคตและการเขียนโปรแกรม

หลังจากการประเมินงานเบื้องต้น กำหนดเวลาและค่าใช้จ่ายของโครงการ และหลังจากตกลงในประเด็นที่จำเป็นทั้งหมดกับเจ้าของบริการแท็กซี่แล้ว ฉันเริ่มทำงานในเดือนมกราคม 2009

มองไปข้างหน้าฉันจะพูดทันที ผลลัพธ์คือแพลตฟอร์มที่ปรับขนาดได้ซึ่งทำงานบนเซิร์ฟเวอร์มากกว่า 60 แห่งใน 12 เมืองในรัสเซียและ 2 แห่งในคาซัคสถาน กำไรรวมของบริษัทอยู่ที่ 100+ ล้านรูเบิล/เดือน

ขั้นตอนที่หนึ่ง ต้นแบบ

เนื่องจากในเวลานั้นฉันไม่มีประสบการณ์จริงในระบบโทรศัพท์ IP และฉันเพียงผิวเผินคุ้นเคยกับเครื่องหมายดอกจันซึ่งเป็นส่วนหนึ่งของการทดลอง "ที่บ้าน" จึงตัดสินใจเริ่มทำงานกับการพัฒนาแอปพลิเคชันมือถือและส่วนเซิร์ฟเวอร์ ขณะเดียวกันก็ปิดช่องว่างความรู้ในงานอื่นๆ

หากด้วยแอปพลิเคชันมือถือทุกอย่างชัดเจนไม่มากก็น้อย ในเวลานั้น สามารถเขียนได้เฉพาะในภาษาจาวาสำหรับโทรศัพท์ปุ่มกดธรรมดา แต่การเขียนเซิร์ฟเวอร์ที่ให้บริการไคลเอนต์มือถือนั้นซับซ้อนกว่าเล็กน้อย:

  • ระบบปฏิบัติการเซิร์ฟเวอร์ใดที่จะใช้
  • ขึ้นอยู่กับตรรกะที่เลือกภาษาการเขียนโปรแกรมสำหรับงานและไม่ใช่ในทางกลับกัน และคำนึงถึงจุดที่ 1 ว่าภาษาการเขียนโปรแกรมใดจะเหมาะสมที่สุดสำหรับการแก้ปัญหา
  • ในระหว่างการออกแบบจำเป็นต้องคำนึงถึงภาระบริการที่สูงในอนาคตที่คาดหวังไว้
  • ฐานข้อมูลใดที่สามารถรับประกันความทนทานต่อข้อผิดพลาดภายใต้โหลดที่สูง และวิธีการรักษาเวลาตอบสนองของฐานข้อมูลที่รวดเร็วเมื่อจำนวนคำขอเพิ่มขึ้น
  • ปัจจัยกำหนดคือความเร็วของการพัฒนาและความสามารถในการปรับขนาดโค้ดได้อย่างรวดเร็ว
  • ค่าอุปกรณ์และการบำรุงรักษาในอนาคต (เงื่อนไขประการหนึ่งของลูกค้าคือเซิร์ฟเวอร์จะต้องตั้งอยู่ในอาณาเขตที่อยู่ภายใต้การควบคุมของเขา)
  • ค่าใช้จ่ายของนักพัฒนาที่จำเป็นสำหรับขั้นตอนต่อไปของการทำงานบนแพลตฟอร์ม

รวมถึงประเด็นอื่นๆ อีกมากมายที่เกี่ยวข้องกับการออกแบบและพัฒนา

ก่อนที่จะเริ่มทำงานในโครงการ ฉันเสนอการตัดสินใจเชิงกลยุทธ์ต่อไปนี้ให้กับเจ้าของธุรกิจ: เนื่องจากโครงการค่อนข้างซับซ้อน การนำไปปฏิบัติจึงต้องใช้เวลาพอสมควร ดังนั้นก่อนอื่นฉันจึงสร้างเวอร์ชัน MVP ซึ่งจะใช้เวลาไม่นานและ เงิน แต่จะทำให้บริษัทของเขาได้รับความได้เปรียบในการแข่งขันในตลาดอยู่แล้ว “ที่นี่และเดี๋ยวนี้” และยังจะขยายขีดความสามารถในฐานะบริการแท็กซี่ด้วย ในทางกลับกัน โซลูชันระดับกลางดังกล่าวจะให้เวลาฉันในการออกแบบโซลูชันขั้นสุดท้ายและมีเวลาสำหรับการทดลองทางเทคนิคอย่างรอบคอบมากขึ้น ในเวลาเดียวกัน โซลูชันซอฟต์แวร์ที่ใช้งานจะไม่รับประกันว่าจะได้รับการออกแบบอย่างถูกต้อง และอาจได้รับการออกแบบใหม่หรือเปลี่ยนใหม่อย่างรุนแรงในอนาคต แต่จะใช้ฟังก์ชันการทำงานที่จำเป็นขั้นต่ำอย่างแน่นอนเพื่อ "แยกตัวออกจากคู่แข่ง" ผู้ก่อตั้งแท็กซี่ชอบแนวคิดนี้ ดังนั้นในที่สุดพวกเขาก็ทำสำเร็จ

ฉันใช้เวลาสองสัปดาห์แรกศึกษากระบวนการทางธุรกิจในบริษัท และศึกษาการทำงานของรถแท็กซี่จากภายใน ดำเนินการวิเคราะห์ทางธุรกิจว่าที่ไหน อะไร และอย่างไรที่สามารถทำให้เป็นอัตโนมัติได้ และจำเป็นหรือไม่ พนักงานบริษัทต้องเผชิญกับความยากลำบากและปัญหาอะไรบ้าง? วิธีแก้ไข. วันทำงานของพนักงานบริษัทมีการจัดอย่างไร พวกเขาใช้เครื่องมืออะไร?

ปลายสัปดาห์ที่ 3 หลังจากเริ่มทำงานและศึกษาประเด็นที่สนใจทางอินเทอร์เน็ต โดยคำนึงถึงความปรารถนาของเจ้าของธุรกิจตลอดจนความรู้และความสามารถของตัวเองในขณะนั้น จึงตัดสินใจนำ Stack ต่อไปนี้ไปใช้ : :

  • เซิร์ฟเวอร์ฐานข้อมูล: MsSQL (เวอร์ชันฟรีพร้อมขีดจำกัดไฟล์ฐานข้อมูลสูงสุด 2GB)
  • การพัฒนาเซิร์ฟเวอร์ที่ให้บริการไคลเอนต์มือถือใน Delphi บน Windows เนื่องจากมีเซิร์ฟเวอร์ Windows อยู่แล้วที่จะติดตั้งฐานข้อมูลรวมถึงสภาพแวดล้อมการพัฒนาเองที่เอื้อต่อการพัฒนาอย่างรวดเร็ว
  • เมื่อคำนึงถึงความเร็วอินเทอร์เน็ตที่ต่ำบนโทรศัพท์มือถือย้อนกลับไปในปี 2009 โปรโตคอลการแลกเปลี่ยนระหว่างไคลเอนต์และเซิร์ฟเวอร์จะต้องเป็นไบนารี สิ่งนี้จะลดขนาดของแพ็กเก็ตข้อมูลที่ส่งและเป็นผลให้เพิ่มความเสถียรในการทำงานของลูกค้ากับเซิร์ฟเวอร์

ใช้เวลาอีกสองสัปดาห์ในการออกแบบโปรโตคอลและฐานข้อมูล ผลลัพธ์คือ 12 แพ็คเกจที่รับประกันการแลกเปลี่ยนข้อมูลที่จำเป็นทั้งหมดระหว่างไคลเอนต์มือถือและเซิร์ฟเวอร์และประมาณ 20 ตารางในฐานข้อมูล ฉันทำงานส่วนนี้โดยคำนึงถึงอนาคต แม้ว่าจะต้องเปลี่ยน Technology Stack ทั้งหมด แต่โครงสร้างของแพ็คเกจและฐานข้อมูลก็ไม่ควรเปลี่ยนแปลง

หลังจากงานเตรียมการแล้ว ก็เป็นไปได้ที่จะเริ่มนำแนวคิดนี้ไปปฏิบัติจริง เพื่อเร่งกระบวนการให้เร็วขึ้นและเพิ่มเวลาสำหรับงานอื่นๆ ฉันได้สร้างแอปพลิเคชันมือถือเวอร์ชันร่าง ร่าง UI ซึ่งเป็นส่วนหนึ่งของ UX และเกี่ยวข้องกับโปรแกรมเมอร์ Java ที่คุ้นเคยในโปรเจ็กต์ และเขามุ่งเน้นไปที่การพัฒนา การออกแบบ และการทดสอบฝั่งเซิร์ฟเวอร์

เมื่อสิ้นสุดเดือนที่สองของการทำงานกับ MVP เวอร์ชันแรกของเซิร์ฟเวอร์และต้นแบบไคลเอนต์ก็พร้อมแล้ว

และภายในสิ้นเดือนที่สาม หลังจากการทดสอบสังเคราะห์และการทดสอบภาคสนาม แก้ไขข้อบกพร่อง การปรับปรุงโปรโตคอลและฐานข้อมูลเล็กน้อย แอปพลิเคชันก็พร้อมสำหรับการผลิต ซึ่งเป็นสิ่งที่ทำไปแล้ว

นับจากนี้เป็นต้นไปส่วนที่น่าสนใจและยากที่สุดของโครงการก็เริ่มต้นขึ้น

ในระหว่างการเปลี่ยนไดรเวอร์ไปใช้ซอฟต์แวร์ใหม่ มีการจัดให้มีการปฏิบัติหน้าที่ตลอด 24 ชั่วโมง เนื่องจากไม่ใช่ทุกคนที่จะมาในช่วงเวลาทำงานระหว่างวันได้ นอกจากนี้ ในด้านการบริหาร โดยการตัดสินใจอันแน่วแน่ของผู้ก่อตั้งบริษัท ได้มีการจัดระเบียบในลักษณะที่ผู้จัดการของบริการแท็กซี่เป็นผู้ป้อนข้อมูลเข้าสู่ระบบ/รหัสผ่าน และไม่มีการสื่อสารกับคนขับ ในส่วนของฉัน การสนับสนุนด้านเทคนิคสำหรับผู้ใช้เป็นสิ่งจำเป็นในกรณีที่เกิดความล้มเหลวและสถานการณ์ที่ไม่คาดฝัน

กฎของเมอร์ฟี่บอกเราว่า "สิ่งใดที่ผิดพลาดได้ สิ่งนั้นย่อมผิดพลาด" และนั่นคือสิ่งที่เกิดข้อผิดพลาดขึ้น... เป็นสิ่งหนึ่งที่ฉันและคนขับแท็กซี่หลายคนทดสอบแอปพลิเคชันตามคำสั่งทดสอบหลายสิบรายการ และเป็นเรื่องที่แตกต่างไปจากเดิมอย่างสิ้นเชิงเมื่อพนักงานขับรถมากกว่า 500 คนในสายการผลิตทำงานแบบเรียลไทม์ตามคำสั่งซื้อจริงจากคนจริง

สถาปัตยกรรมของแอปพลิเคชันมือถือนั้นเรียบง่ายและมีข้อบกพร่องน้อยกว่าในเซิร์ฟเวอร์อย่างเห็นได้ชัด ดังนั้นงานหลักจึงอยู่ที่ฝั่งเซิร์ฟเวอร์ ข้อผิดพลาดที่สำคัญที่สุดในแอปพลิเคชันคือปัญหาการขาดการเชื่อมต่อจากเซิร์ฟเวอร์เมื่ออินเทอร์เน็ตบนโทรศัพท์หายไปและเซสชันได้รับการกู้คืนอีกครั้ง และอินเตอร์เน็ตก็หายไปค่อนข้างบ่อย ประการแรก ในช่วงหลายปีที่ผ่านมาอินเทอร์เน็ตบนโทรศัพท์นั้นไม่เสถียรเพียงพอ ประการที่สอง มีจุดบอดมากมายที่อินเทอร์เน็ตใช้งานไม่ได้ เราตรวจพบปัญหานี้เกือบจะในทันทีและภายใน 24 ชั่วโมงได้แก้ไขและอัปเดตแอปพลิเคชันที่ติดตั้งไว้ก่อนหน้านี้ทั้งหมด

เซิร์ฟเวอร์ส่วนใหญ่มีข้อผิดพลาดในอัลกอริธึมการกระจายคำสั่งซื้อและการประมวลผลคำขอบางรายการจากไคลเอนต์ไม่ถูกต้อง เมื่อระบุข้อผิดพลาดได้ ฉันจึงแก้ไขและอัปเดตเซิร์ฟเวอร์

ที่จริงแล้ว ในระยะนี้ไม่มีปัญหาทางเทคนิคมากมายนัก ปัญหาทั้งหมดคือฉันต้องเข้าเวรที่ออฟฟิศเกือบหนึ่งเดือน กลับบ้านบ้างเป็นครั้งคราวเท่านั้น น่าจะ4-5ครั้งครับ และฉันก็นอนหลับได้พอดีและเริ่มต้นได้ เพราะตอนนั้นฉันทำงานโปรเจ็กต์นี้คนเดียวและไม่มีใครสามารถแก้ไขอะไรได้เลยนอกจากฉัน

หนึ่งเดือนไม่ได้หมายความว่าทุกอย่างผิดพลาดตลอดเวลาเป็นเวลาหนึ่งเดือนและฉันกำลังเขียนโค้ดบางอย่างโดยไม่หยุด เราเพิ่งตัดสินใจว่า ท้ายที่สุดแล้ว ธุรกิจได้ดำเนินการและทำกำไรแล้ว ดีกว่าที่จะเล่นอย่างปลอดภัยและพักผ่อนในภายหลัง ดีกว่าเสียลูกค้าและผลกำไรในตอนนี้ เราทุกคนเข้าใจเรื่องนี้เป็นอย่างดี ดังนั้นทั้งทีมจึงร่วมกันทุ่มเทความสนใจและเวลาสูงสุดในการแนะนำซอฟต์แวร์ใหม่เข้าสู่ระบบแท็กซี่ และเมื่อคำนึงถึงปริมาณการสั่งซื้อในปัจจุบัน เราจะกำจัดข้อบกพร่องทั้งหมดภายในหนึ่งเดือนอย่างแน่นอน จุดบกพร่องที่ซ่อนอยู่ที่อาจยังคงอยู่จะไม่ส่งผลกระทบร้ายแรงต่อกระบวนการทางธุรกิจอย่างแน่นอน และหากจำเป็น ก็สามารถแก้ไขได้เป็นประจำ

จำเป็นต้องทราบความช่วยเหลืออันล้ำค่าจากผู้อำนวยการและหัวหน้าคนงานของบริการรถแท็กซี่ซึ่งมีความเข้าใจสูงสุดเกี่ยวกับความซับซ้อนของสถานการณ์ในการถ่ายโอนไดรเวอร์ไปยังซอฟต์แวร์ใหม่ทำงานร่วมกับคนขับตลอดเวลา ที่จริงแล้วหลังจากติดตั้งโปรแกรมใหม่บนโทรศัพท์เสร็จแล้ว เราไม่ได้สูญเสียไดรเวอร์แม้แต่ตัวเดียว และพวกเขาไม่ได้เพิ่มเปอร์เซ็นต์ของการไม่ลบลูกค้าอย่างมาก ซึ่งในไม่ช้าก็กลับสู่ระดับปกติ

ซึ่งถือเป็นการเสร็จสิ้นขั้นตอนแรกของการทำงานในโครงการนี้ และควรสังเกตว่าผลลัพธ์จะเกิดขึ้นไม่นาน ด้วยการกระจายคำสั่งซื้อไปยังคนขับโดยอัตโนมัติโดยไม่มีการแทรกแซงของมนุษย์ เวลารอแท็กซี่โดยเฉลี่ยของลูกค้าจึงลดลงตามลำดับความสำคัญ ซึ่งเพิ่มความภักดีของลูกค้าต่อบริการตามธรรมชาติ ส่งผลให้มีการสั่งซื้อเพิ่มมากขึ้น ต่อมาจำนวนคนขับรถแท็กซี่ก็เพิ่มขึ้น เป็นผลให้จำนวนคำสั่งซื้อที่เสร็จสมบูรณ์ก็เพิ่มขึ้นเช่นกัน และส่งผลให้กำไรของบริษัทเพิ่มขึ้น แน่นอนว่าฉันกำลังก้าวไปข้างหน้าเล็กน้อย เนื่องจากกระบวนการทั้งหมดนี้ไม่ได้เกิดขึ้นทันที จะบอกว่าฝ่ายบริหารพอใจก็ไม่ต้องพูดอะไรเลย ฉันได้รับอนุญาตให้เข้าถึงแหล่งเงินทุนเพิ่มเติมของโครงการได้อย่างไม่จำกัด

จะยังคง ..

ที่มา: will.com

เพิ่มความคิดเห็น