小芏暡なプログラムがどのようにしお小芏暡オフィスを月収 100 億ルヌブル以䞊の連邊䌁業に倉えたのか

2008 幎 XNUMX 月末、私は既存のビゞネス プロセスを自動化するこずを目的ずしたペルミのタクシヌ サヌビスの XNUMX ぀に招埅されたした。 䞀般に、私には XNUMX ぀の基本的なタスクが䞎えられたした。‚

  • タクシヌ運転手向けのモバむル アプリケヌションを備えたコヌルセンタヌ甚の゜フトりェア パッケヌゞを開発し、瀟内のビゞネス プロセスを自動化したす。
  • すべおを可胜な限り短時間で完了する必芁がありたした。
  • サヌドパヌティの開発者から賌入するのではなく、独自の゜フトりェアを所有したす。将来的には、ビゞネスの発展に応じお、絶えず倉化する垂堎状況に合わせお゜フトりェアを独自に拡匵できたす。

圓時、私はこの垂堎がどのように機胜するのか、そのニュアンスを理解しおいたせんでしたが、それでも、XNUMX ぀のこずが私にずっお明らかでした。 コヌルセンタヌは、オヌプン゜ヌスのアスタリスク ゜フトりェア PBX に基づいお構築する必芁がありたす。 コヌルセンタヌずモバむル アプリケヌション間の情報亀換は、基本的に、将来のプロゞェクトのアヌキテクチャずそのプログラミングを蚭蚈するための察応するすべおのパタヌンを備えたクラむアント/サヌバヌ ゜リュヌションです。

プロゞェクトのタスク、期限、コストを事前に評䟡し、タクシヌ サヌビスのオヌナヌず必芁なすべおの問題に぀いお合意した埌、2009 幎 XNUMX 月に仕事を開始したした。

先を芋据えお、すぐに蚀いたす。 その結果、ロシアの 60 郜垂ずカザフスタンの 12 郜垂にある 2 以䞊のサヌバヌで実行されるスケヌラブルなプラットフォヌムが実珟したした。 䌚瀟の総利益は月あたり 100 億ルヌブル以䞊でした。

ステヌゞXNUMX。 プロトタむプ

圓時、私は IP 電話の実務経隓がなく、「家庭」での実隓の䞀環ずしおアスタリスクに぀いお衚面的にしか知らなかったので、モバむル アプリケヌションずサヌバヌ郚分の開発に取り組むこずになりたした。 同時に、他のタスクに関する知識のギャップを埋めたす。

モバむル アプリケヌションを䜿甚すれば、すべおが倚かれ少なかれ明確になりたす。 圓時は、単玔なプッシュボタン匏電話機甚に Java でしか蚘述できたせんでしたが、モバむル クラむアントにサヌビスを提䟛するサヌバヌを蚘述するのはもう少し耇雑でした。

  • どのようなサヌバヌ OS が䜿甚されるか。
  • タスクに察しおプログラミング蚀語が遞択されるのではなく、タスクに察しおプログラミング蚀語が遞択されるずいうロゞックに基づき、ポむント 1 を考慮しお、どのプログラミング蚀語が問題解決に最適であるかを考慮したす。
  • 蚭蚈時には、サヌビスに将来予想される高負荷を考慮する必芁がありたした。
  • 高負荷䞋でフォヌルト トレランスを保蚌できるデヌタベヌスはどれか、たたデヌタベヌスぞのリク゚スト数が増加したずきにデヌタベヌスの高速応答時間を維持するにはどうすればよいか。
  • 決め手ずなったのは、開発速床ずコヌドを迅速に拡匵できる胜力でした。
  • 将来の機噚ずそのメンテナンスのコスト (顧客の条件の XNUMX ぀は、サヌバヌが顧客の管理䞋にある地域に配眮されおいる必芁があるこずです)。
  • プラットフォヌム䞊の䜜業の次の段階で必芁ずなる開発者のコ​​スト。

蚭蚈ず開発に関連する他の倚くの問題も同様です。

プロゞェクトの䜜業を開始する前に、私はビゞネス オヌナヌに次の戊略的決定を提案したした。プロゞェクトは非垞に耇雑なので、実装にはかなりの時間がかかるため、最初に MVP バヌゞョンを䜜成したす。これにはそれほど時間はかかりたせん。しかし、それによっお圌の䌚瀟はすでに「今ここ」の垂堎で競争䞊の優䜍性を埗るこずができ、タクシヌサヌビスずしおの胜力も拡倧するこずになるだろう。 その結果、このような䞭間゜リュヌションにより、最終゜リュヌションをより慎重に蚭蚈するための時間ず、技術的な実隓のための時間を埗るこずができたす。 同時に、実装された゜フトりェア ゜リュヌションは正しく蚭蚈されおいるずは保蚌されず、将来的に根本的に再蚭蚈たたは眮き換えられる可胜性がありたすが、「競合他瀟からの脱华」に必芁な最小限の機胜は確実に実行したす。 タクシヌの創始者はこのアむデアを気に入ったので、最終的にはそれを実珟したした。

最初のXNUMX週間は瀟内の業務プロセスを勉匷したり、タクシヌの仕事を内偎から勉匷したりしたした。 どこで、䜕を、どのように自動化できるのか、たた自動化がそもそも必芁なのかどうかに぀いおビゞネス分析を実斜したした。 䌚瀟員はどのような困難や問題に盎面しおいるのでしょうか それらはどのように解決されるのか。 䌚瀟の埓業員の勀務日がどのように線成されるか。 圌らはどんなツヌルを䜿っおいるのでしょうか

XNUMX週目の終わりたでに、仕事を始めおむンタヌネットで関心のある問題を勉匷した埌、経営者の垌望ずその時点での私自身の知識ず胜力を考慮しお、次のスタックを適甚するこずが決定されたした。 :

  • デヌタベヌス サヌバヌ: MsSQL (デヌタベヌス ファむルの制限が 2 GB たでの無料バヌゞョン)。
  • Windows 䞊の Delphi でモバむル クラむアントにサヌビスを提䟛するサヌバヌの開発。デヌタベヌスがむンストヌルされる Windows サヌバヌがすでに存圚し、開発環境自䜓も迅速な開発を促進したす。
  • 2009 幎圓時の携垯電話のむンタヌネット速床が䜎かったこずを考慮するず、クラむアントずサヌバヌ間の亀換プロトコルはバむナリでなければなりたせん。 これにより、送信されるデヌタ パケットのサむズが小さくなり、その結果、サヌバヌずクラむアントの䜜業の安定性が向䞊したす。

さらに 12 週間がプロトコルずデヌタベヌスの蚭蚈に費やされたした。 その結果、モバむル クラむアントずサヌバヌ間で必芁なすべおのデヌタずデヌタベヌス内の玄 20 のテヌブルを確実に亀換する XNUMX 個のパッケヌゞが完成したした。 この郚分の䜜業は、たずえ技術スタックを完党に倉曎する必芁があるずしおも、パッケヌゞずデヌタベヌスの構造は倉曎しない必芁があるずいう将来を考慮しお実行したした。

準備䜜業の埌、アむデアの実際の実装を開始するこずができたした。 プロセスを少しスピヌドアップしお他のタスクに時間を割くために、私はモバむル アプリケヌションのドラフト バヌゞョンを䜜成し、UI (侀郹 UX) をスケッチし、プロゞェクトに銎染みの Java プログラマヌを巻き蟌みたした。 そしお、サヌバヌサむドの開発、蚭蚈、テストに重点を眮きたした。

MVP の䜜業の XNUMX か月目の終わりたでに、サヌバヌずクラむアントのプロトタむプの最初のバヌゞョンが完成したした。

そしお、合成テストずフィヌルド テスト、バグ修正、プロトコルずデヌタベヌスの小芏暡な改善を経お、XNUMX か月目の終わりたでに、アプリケヌションは運甚準備が敎いたした。 それが行われたのです。

この瞬間から、プロゞェクトの最も興味深く、最も難しい郚分が始たりたす。

ドラむバヌが新しい゜フトりェアに移行する間、XNUMX 時間勀務が組織されたした。 日䞭の勀務時間䞭に誰もが来られるわけではないので。 たた、管理䞊は、創業者の匷い意志により、ログむン・パスワヌドはタクシヌサヌビスの管理者が入力し、運転手には䌝わらない仕組みになっおいた。 私の偎では、障害や予期せぬ事態が発生した堎合に備えお、ナヌザヌぞの技術サポヌトが必芁でした。

マヌフィヌの法則は、「うたくいかない可胜性のあるものは、必ずうたくいかない」ず教えおいたす。 そしお、それがたさに事態がうたくいかなかった理由です...私ず数人のタクシヌ運転手が数十のテスト泚文でアプリケヌションをテストしたずきのこずです。 そしお、ラむン䞊で 500 人以䞊のドラむバヌが実際の人々からの実際の泚文にリアルタむムで取り組んでいる堎合は、たったく別の問題になりたす。

モバむル アプリケヌションのアヌキテクチャはシンプルで、サヌバヌに比べおバグが倧幅に少なくなっおいたす。 したがっお、䜜業の䞻な焊点はサヌバヌ偎でした。 アプリケヌションの最も重倧な問題は、電話機のむンタヌネットが倱われ、セッションが再び埩元されたずきにサヌバヌから切断されるずいう問題でした。 そしお、むンタヌネットは頻繁に消えたした。 たず、圓時は携垯電話のむンタヌネット自䜓が十分に安定しおいたせんでした。 第二に、むンタヌネットが機胜しない盲点がたくさんありたした。 私たちはこの問題をほが即座に特定し、XNUMX 時間以内に以前にむンストヌルされたすべおのアプリケヌションを修正および曎新したした。

サヌバヌには䞻に、泚文分散アルゎリズムに゚ラヌがあり、クラむアントからの䞀郚のリク゚ストが正しく凊理されたせんでした。 䞍具合を特定したので、サヌバヌを修正しお曎新したした。

実際、この段階では技術的な問題はそれほど倚くありたせんでした。 倧倉だったのは、私がほが 4 か月間オフィスで勀務し、たたにしか家に垰らなかったこずです。 たぶん5XNUMX回くらい。 圓時、私は䞀人でプロゞェクトに取り組んでいお、私以倖に䜕も修正できる人がいなかったため、私は行き圓たりばったりで寝おいたした。

XNUMX か月間、これは、XNUMX か月間すべおに垞に䞍具合があり、停止するこずなく䜕かをコヌディングしおいたずいう意味ではありたせん。 私たちはそう決めただけです。 結局のずころ、ビゞネスはすでに運営されおおり、利益を䞊げおいたした。 今すぐ顧客や利益を倱うよりは、安党策を講じお埌で䌑んだ方が良いでしょう。 私たち党員がこのこずをよく理解しおいたため、チヌム党䜓がタクシヌ システムに新しい゜フトりェアを導入するこずに最倧限の泚意ず時間を費やしたした。 珟圚の泚文の混雑状況を考慮するず、間違いなく XNUMX か月以内にすべおの欠点を解消したす。 確かに、隠れたバグが残っおいる可胜性があっおも、ビゞネス プロセスに重倧な圱響を䞎えるこずはなく、必芁に応じお定期的に修正できたす。

ここで泚目すべきは、ドラむバヌを新しい゜フトりェアに移行する状況の耇雑さを最倧限に理解し、XNUMX時間䜓制でドラむバヌず協力したタクシヌサヌビスのディレクタヌや職長からの貎重な支揎である。 実際、電話機ぞの新しいプログラムのむンストヌルが完了した埌、ドラむバヌを XNUMX ぀も倱うこずはありたせんでした。 たた、クラむアントの䞍削陀率はそれほど倧きくは増加したせんでしたが、すぐに通垞のレベルに戻りたした。

これでプロゞェクトの第 XNUMX 段階の䜜業が完了したした。 そしお、結果が出るたでに長くはかからなかったこずに泚意する必芁がありたす。 人間の介入なしにドラむバヌぞの泚文の配信を自動化するこずで、顧客のタクシヌの平均埅ち時間が䞀桁短瞮され、圓然のこずながらサヌビスに察する顧客ロむダルティが向䞊したした。 これにより受泚件数が増加したした。 これを受けおタクシヌ運転手の数も増加した。 その結果、受泚件数も順調に増加したした。 そしおその結果、䌚瀟の利益は増加したした。 もちろん、このプロセス党䜓が即座に行われたわけではないので、ここでは少し先を進んでいたす。 経営陣が喜んでいたず蚀っおも過蚀ではありたせん。 私はプロゞェクトぞのさらなる資金調達に無制限にアクセスできるようになりたした。

続ける..

出所 habr.com

コメントを远加したす