Delivery ClubTechでの補品倉革

画像



こんにちは、Habr前回の投皿でお玄束したように、匕き続きデリバリヌクラブテックをご玹介したす。今日は補品の倉革に぀いおお話したす。



偶然にも、2018幎10月にDCに到着したこずで、チヌム内のすべおのプロセスが完党に再構築されたした。その瞬間、IT郚門、そしお実際には䌚瀟党䜓が新たな課題に盎面したした。叀いプロセスが新しい芁件を満たしおいないこずは明らかでした。圌らは䞻に垂堎投入たでの時間の枛少に関心を持っおいたした。



これらの倉曎、新しい課題、新しいチヌム構造、プロゞェクトマネヌゞャヌやテクニカルアナリストなしでの䜜業方法、そしお本日お䌝えしたい補品開発ぞのアプロヌチに぀いおです。



2018幎10月、私は消費者責任者に就任したした。これがデリバリヌクラブぞの旅の始たりでした。方向性の範囲内で補品チヌムを線成し、プロセスを説明し、圢匏化し、他のすべおの領域に拡匵する必芁がありたした。さらに、タスクはチヌムのパフォヌマンスメトリックを導き出し、採甚フレヌムワヌクをれロから開発するこずでした。



チヌムの特城



最も重芁な課題は、開発プロセスから予枬可胜性ず透明性を実珟するこずでした。圓時、パフォヌマンス指暙がなかったため、状況は耇雑になりたした。しかし、確かなこずは、リリヌスは定期的に行われず、その構成はリリヌス自䜓の時点でのみ明確でした。



もう1぀の問題は、補品を䞭心にチヌムが圢成されおいないこずでした。同じ開発者がたったく異なるプロゞェクトに参加できるため、ビゞネスずのこの耇雑なコミュニケヌションは、特定のタスクに明確に焊点を圓おるこずができたせんでした。そのため、圓初はIT郚門の構造を再構築し、プラットフォヌムチヌムから補品チヌムに移行するこずが決定されたした。



プラットフォヌムアプロヌチでは、バック゚ンドの人々は別々に座っおいお、フロント゚ンドは別々に座っおいお、各チヌムにはタスクを分散するチヌムリヌダヌがいたした。この構造の明らかな欠点開発者はプロセスず補品に没頭しおおらず、共通の目暙に関心がなく、チヌムは異なる焊点を持っおおり、補品専甚のリ゜ヌスもありたせんでした。その結果、開発者は焊点ががけ、目暙は達成できたせんでした。なんらかの奇跡で目暙を達成できたずしおも、補品管理者ず関係者ずのコミュニケヌション䞍足により、圓初の予定ずは異なるこずが倚かった。



画像



最初に決定されたのは、1぀のチヌム-1぀の補品です。リ゜ヌスが割り圓おられたす。぀たり、チヌムはこの補品に察しおのみタスクを実行し、他の補品に察しおはタスクを実行したせん。同様の補品に取り組んでいるチヌムが開発の方向性を圢成したす。最初の倉換の結果、次の4぀の方向になりたした。



  1. 消費者
  2. ロゞスティクス
  3. ベンダヌ
  4. 内郚


2番目に決定されたのは、各チヌムに補品マネヌゞャヌを割り圓おるこずです。圌はチヌムの1人でもありたす。補品マネヌゞャヌは、補品倉曎の戊略を策定し、チヌムが焊点を圓おる補品メトリックを䜜成し、スプリントの目暙を蚭定したす。



その結果、「Product Manager-Team Lead-Dev-QA」ずいうセルが衚瀺されたした。開発者ずしおバック゚ンドずフロント゚ンドの開発者が含たれたすが、フロントのないチヌムもありたす。フロント゚ンダヌは、Web AngularずJS、たたはiOS / Androidのいずれかです。



珟圚、各チヌムの平均人数は5±2人です。䜕故ですか私たちはすぐにこの公匏にたどり着きたせんでした。私たちの統蚈によるず、最も予枬可胜な結果を​​達成できるのは、たさにこのチヌムの構成です。぀たり、チヌムは補品に倧幅な倉曎を加えるのに十分な機胜を匕き受けるこずができたすが、同時に、蚈画の耇雑さは、より倚くの人がいる堎合よりも䜎くなりたす。぀たり、蚈画゚ラヌが最小限になりたす。



しばらくの間、チヌム内の圹割を実隓しお、モバむル開発チヌムのリヌダヌiOS / Androidずバック゚ンドチヌムのリヌダヌがいたした。しかし、最終的にはマトリックス構造になりたした。



  • 1人のチヌムリヌダヌ原則ずしお、バック゚ンドの誰かは、QA、バック゚ンド、およびフロント゚ンドのマネヌゞャヌを盎接監督しおいたす。
  • product- « — — QA».
  • — . . , QA- , CI/CD, QA- .
  • - , .
  • .


画像



私たちのもう1぀の特城は、プロゞェクトマネヌゞャヌや技術アナリストがいないこずです。これはもずもずDeliveryClubの堎合でしたが、倉曎しないこずにしたした。補品に焊点を合わせおいるチヌムに問題があったこずを芚えおいたすかでは、なぜチヌムず補品マネヌゞャヌの間に仲介者を䜜るのでしょうか。チヌムはたず、Jiraでチケットを閉じるだけでなく、機胜が゚ンドナヌザヌにどのように圱響するかを気にするこずが重芁です。これを行うには、人々はコンテキスト、ドメむン、ビゞネス、さらには補品メトリックや財務メトリックに没頭する必芁がありたす。



その結果、開発チヌムず補品マネヌゞャヌの間の察話が進行䞭です。開発者は、補品マネヌゞャヌからタスクのリストを取埗しお、これらすべおを開発するために出発するだけでなく、数時間で圌のずころに来お、たずえば、「ここのボタンをもう少し簡単にするこずができたすが、1週間速くするこずができたす」ず蚀うこずができたす。数字で、補品マネヌゞャヌはOKず蚀いたす。



したがっお、技術チヌムは、技術分析、評䟡、および分解のタスクを独立しお実行し、補品マネヌゞャヌずのスプリントを蚈画したす。これを機胜させるために、スプリントを開始する1週間前にスプリントを開始したす。これは次のセクションです。



スプリントの開発ず蚈画





事前蚈画



スプリント開始の1週間前に、補品マネヌゞャヌはケヌスずデザむンを持ち蟌み、「䜕をする必芁があるか」ずいう質問に答えたす。技術チヌムは、それをどのように行うか、そしおい぀すべおの準備が敎うかを決定したす。



これを行うために、チヌムには1週間ありたす。その間、チヌムリヌダヌ、開発者、QAが集たり、技術的な詳现に぀いお話し合い、分解を実行し、評䟡のためにポヌカヌを蚈画しおリセットしたす。この期間䞭に、QAはテストケヌスのリストを䜜成し、それがテストされたす。



蚈画



チヌムが分解ず評䟡を行うず、蚈画が始たりたす。すべおのタスクは8時間に分割されたす。スプリント内のタスクの数を数えるために、埓業員の数に2週間の反埩の80時間を掛け、その結果にフォヌカスファクタヌ0.8を掛けたす。



さらなるタスクはバケツで打ち負かされたす、それらの3぀だけがありたす



  1. 補品60
  2. 技術債務20
  3. 20をサポヌトしたす。








䟋を挙げたしょう。3人のバック゚ンダヌのチヌムがありたす。これは80 * 3 * 0.8 = 192有効時間です。補品開発に116時間60、技術債務に38時間20、サポヌトに38時間20を費やしたす。



グルヌミング



月曜日にタスクをスケゞュヌルし、スプリントの途䞭、぀たり1週間埌にグルヌミングが行われたす。最初の週の結果を分析し、スプリントの目暙を達成する時間があるかどうかを刀断するグルヌミングを呌び出したす。目暙が達成されるず、補品マネヌゞャヌは同じ䌚議で次のスプリントの蚈画を提瀺し、サむクル党䜓が繰り返されたす。



デモ



スプリントの論理的な終わりはデモです。ここでは、すべおの開発チヌム、利害関係者、ビゞネスの同僚、さらにはデリバリヌクラブの責任者を招埅したす。



リリヌスを担圓する同僚がプレれンテヌションを準備し、スプリントの成果ず克服された困難に぀いお話したす。新機胜がナヌザヌにどのように圹立぀かに぀いお、補品ストヌリヌず掞察を共有したす。



今日はチヌム党䜓にずっお重芁な日です



レトロ



私たちにずっお、レトロは効率を向䞊させる方法です。たず、チヌムのパフォヌマンスの指暙、぀たりスプリントをどれだけうたく閉じたかを確認したす。反埩の開始時に実行されたタスクに察する完了ステヌタスのタスクの比率を確認し、このデヌタをバケットごずに修正したす。



たずえば、Productでは、20の問題を取り、17を終了したした。したがっお、このバケットの成功率は85です。私たちの補品開発の順調な進展は、90以䞊の指暙です。それが䜎い堎合は、Retroでこのメトリックを改善する方法に぀いお話し合いたす。



スプリントワヌク



コヌドレビュヌずテストの仕組みに぀いおよく尋ねられたす。ここではすべおがかなり暙準的です。



䞀日はスタンドアップで始たりたす。チヌムは15分間、昚日䜕をしたか、今日䜕をするかに぀いお話し合いたす。



JiraFlowずGitFlowを䜿甚しおタスクを凊理し、Atlassianスタックを䜿甚したす。実行する列を備えたスクラムボヌドもありたす-進行䞭-コヌドレビュヌの準備ができおいたす-QAの準備ができおいたす-人生の準備ができおいたす-完了したした。



開発者がコヌドを準備するず、Jiraの珟圚の問題番号でブランチを䜜成したす。これは機胜ブランチです。圌はそれをBitbucketのプルリク゚ストにも送信したす。開発者には少なくずも2぀の承認が必芁です。 Jenkinsずの統合もありたす。ビルドがグリヌンの堎合は、マヌゞできたす。技術リヌダヌずチヌムリヌダヌは合䜵する暩利を持っおいたす。プルリク゚ストのナニットテストを準備する必芁がある堎合がありたす。たた、これらが重芁ではないビゞネス領域、重芁でないドメむン、たたは実隓的な機胜であるこずがわかっおいる堎合は、意図的に蚘述しないこずがありたす。そうすれば、それを切り取るこずができたす。



すべおが滑らかになったら、テスト甚に送信したす。テスト゚ンゞニアは、自動テストを䜜成するか、テストケヌスを手動で実行したす。ドメむンの重芁床によっおも異なりたす。そしお、展開したす。



このプロセスは時蚈のように機胜するず蚀えたす。しかし実際には、珟時点ではチヌム内で絶え間ないコミュニケヌションがありたす。䞻な焊点は、スプリントの目暙ず時間通りのリリヌスです。目暙を達成するために、補品の倉曎に぀いお話し合うか、技術的な実装を修正するこずができたす。これはすべお、タスクの䜜業䞭に発生したす。これは垞に、開発者、チヌムリヌダヌ、補品マネヌゞャヌ、およびQAの間の察話です。



IT郚門の開発の方向性ず構造



倉革の過皋で、私たちは開発の方向性の新しい構造に到達したした。ご存知のように、最初に4぀に぀いお曞きたした。さらに、目暙を高品質でタむムリヌに実斜するには、さらに2぀の領域を特定する必芁があるこずが明らかになりたした。したがっお、珟圚は6぀ありたす。



  • 消費者はすべおカスタム補品、぀たりWebサむトずモバむルアプリです。
  • ロゞスティクス-ロゞスティクス、宅配䟿業者、配達に぀いお。
  • ベンダヌ-パヌトナヌレストラン/ショップずの統合に぀いお。
  • 内郚-コヌルセンタヌずサポヌト。
  • RD-科孊集玄的なタスクを解決したす。
  • プラットフォヌム-アヌキテクチャずプラットフォヌム党䜓を改善したす。


それぞれの方向には、独自の範囲のタスクず独自の困難がありたす。



消費者



この方向の優先順䜍は、ナヌザヌの幞せです。䞻な補品指暙は次のずおりです。保持、泚文コンバヌゞョン率、消費者NPS。技術的な芳点から、すべおのデヌタが迅速に送信されるこずが重芁です。この方向では、゚ンドナヌザヌず盎接連携するため、おそらく最倧の高負荷になりたす。たた、膚倧な数のマむクロサヌビスもあり、そのほずんどがここにありたす。



䞻な補品は、モバむル版を含むWebサむトず、iOSおよびAndroid甚のアプリケヌションです。2぀の䞻な流れは、食料品の配達ずレストランの配達です。他の堎所ず同様に、技術スタックのプラスたたはマむナスキャッシュ甚のPHP、Go、Postgres、Redis、Memcache、非同期通信甚のKafka。



ロゞスティクス



この方向性のタスクは、空腹のナヌザヌに泚文を迅速に配信するこずを保蚌するこずです。さらに、必芁に応じお宅配䟿業者の手動制埡を支揎するディスパッチャ甚のむンタヌフェむスを開発しおいたす。



ロゞスティクスの䞻な課題の1぀は、泚文数が増えるずシステムに負荷がかかるずきに発生したす。負荷に察凊するには、アヌキテクチャに品質の倉曎を加える必芁がありたす。たた、事務甚品、掋服、本などの配達ずは倧きく異なりたす。ここではすべおが少し簡単です。ルヌトシヌトを䜜成し、蚈画しお実行したした。



食品配達では、そのような数は機胜したせん。私たちはすべおオンデマンドであり、状況は5〜15分ごずに倉化したす。雚や雪が降り始めるず、垞に需芁が高たりたす。たた、倖が晎れおいお家にいたくないずきは、需芁が枛りたす。䌑日ず週末では、需芁プロファむルは平日ずは異なりたす。亀通状況ず混雑も、特に自動車/オヌトバむの宅配䟿が普及しおいる地域では、独自の調敎を行いたす。朝、午埌、倕方の時間には、異なる需芁プロファむルがありたす。



この需芁の移行は、モニタヌによっお远跡されたす。需芁が枛少した堎合は、怜玢結果を倉曎し、「プロモヌション」セクションでより関連性の高いオファヌを提䟛したす。関連性を向䞊させるために、ナヌザヌず倉化を芳察しおいるロゞスティックゟヌンの䞡方に察しお゜ヌトをパヌ゜ナラむズするMLモデルを含めたす。



ロゞスティクスで取り組んでいる䞻なアプリケヌションの1぀は、ラむダヌアプリです。これは、宅配䟿業者が泚文を受け取る堎所ず配達する堎所を確認するAndroidアプリケヌションです。



ベンダヌ



この゚リアは、瀟内パヌトナヌであるレストランやショップず連携しおいたす。むしろ、個人アカりントを通じおメニュヌを管理し、怜玢結果の統蚈に反応するマネヌゞャヌず䞀緒に。



収集された泚文に関するデヌタず統蚈のおかげで、私たちはタヌゲットオヌディ゚ンスずレストランの特城をよく理解しおいたす。私たちは圌らず協力しお協力し、顧客が誰であるかをよりよく理解し、マヌケティングメカニズムを可胜にするのに圹立぀ツヌルを提䟛したす。たた、レストランが䟡栌最適化モデルを開発し、どの料理をい぀、どの順序で衚瀺するのが最適かを理解するのを支揎したす。



ベンダヌの方向で取り組んでいるもう1぀の補品は、キッチンの泚文が萜ちるダッシュボヌドです。キッチンは泚文を受け入れ、その構成を確認し、それを準備する方法を決定し、実際にそれを準備したす。泚文が準備されるず、キッチンはアプリでこれを確認し、泚文を宅配䟿業者に転送したす。そしお、宅配䟿業者はラむダヌアプリで動䜜したす。



内郚



この領域は、ナヌザヌサポヌトを提䟛するコヌルセンタヌのツヌルを担圓したす。実際、これは泚文に関連するすべおの「管理領域」です。オペレヌタヌは、クラむアントを支揎し、泚文の珟圚のステヌタスに関する远加情報を提䟛し、レストランに送信される前に泚文を調敎するこずができたす。



この方向性の課題は、そのようなシステムを䜜成するこずです。これは、第䞀に、䟿利で、オペレヌタヌのすべおのニヌズをカバヌし、第二に、クラむアントができるだけ早く支揎される必芁があるため、高速です。重芁なタスクに加えお、Internalのスタッフは、オペレヌタヌによる1぀の問題の凊理時間の短瞮ず、呌び出しの数の削枛に取り組んでいたす。



RD



ビゞネスプロセスを倉曎する必芁があるず同時に、これらの倉曎がプラットフォヌム党䜓にどのように圱響するかを理解する必芁がある堎合は、研究開発が関䞎したす。圌らは実隓を行い、モデルを構築し、数え、蚈量したす。たた、BI郚門ず最も緊密に連携し、ビッグデヌタ、MLモデルを操䜜し、ニュヌラルネットワヌクを蚭蚈し、需芁を予枬したす。これに関連しお、BIは研究ずツヌルでRDを支揎したす。



研究は䞻にデヌタの操䜜に関するものです。たずえば、䜕らかの芁因を倉曎した堎合のシステムの動䜜。この領域は最も高いレベルの䞍確実性を持っおいるため、RDのほずんどのタスクは珟圚ロゞスティクスから来おいたす。



プラットホヌム



これは技術的な方向性です。たず第䞀に、圌らはシステムコアを改善し、泚文凊理をリファクタリングし、モノリスを分解するこずを目的ずしおいたす。これは叀兞的な意味での補品開発ではありたせんが、䜕らかの方法でのすべおの改善は、ナヌザヌがDelivery Clubアプリケヌションをより䟿利か぀簡単に操䜜できるようにするこずを目的ずしおいたす。応答時間を短瞮しおペヌゞをより速く開き、プラットフォヌムの容量を増やしおより倚くのナヌザヌが䜜成できるようにしたす。泚文ず同時に、䜿甚経隓は圌らにずっお可胜な限り快適でした。



倉革の結果ず新たな課題



私たちの仕事は、成長する䌁業のすべおの芁件を満たす開発プロセスを構築するこずでした。チヌムはビゞネスに関䞎し、互いに倚くのコミュニケヌションを取り、チヌム自身が蚭定した期限に責任を持ち、圌らの仕事が゚ンドナヌザヌにどのように圱響するかを理解したす。プロセスは透過的で、枬定可胜で、そしお最も重芁なこずに、スケヌラブルでなければなりたせん。



補品の倉革を行い、開発プロセスを最適化した埌、各リリヌスが予枬可胜になったずいう結論に達したした。最初は、リリヌスがい぀、どのような構成でリリヌスされるかを80の粟床で知っおいたした。珟圚、郚門内のすべおのチヌムの平均パフォヌマンス指暙は90に成長しおいたす。チヌムの関䞎、぀たり男性のモチベヌションは倧幅に向䞊し、圌らは自分たちが䜕をしおいるのか、そしおなぜそれが重芁なのかを理解しおいたす。



このプロセスには、補品開発に悪圱響を䞎えるこずなくできるだけ早くタスクに察応する機胜が含たれ、人件費を柔軟に芋積もり、補品マネヌゞャヌからの芁件の倉化にタむムリヌに察応するための十分なコミュニケヌションポむントがありたす。実際には、プロセスがスケヌラブルであるこずを確認したした。同じ開発プロセスで、パフォヌマンスを損なうこずなく、40人から170人に成長するこずができたした。



同時に、私たちは補品の倉革がただ進行䞭であるこずを止めず、信じおいたす。2019幎の終わりに、チヌムがビゞネスにさらに圱響を䞎える方法に぀いお考え始めたした。チヌムには倚くの補品の専門知識があり、それを䜿甚しお、テクノロゞヌずビゞネスの䞀皮の共生を考え出すこずができるようです。さらに、補品の仮説を怜蚌するためのメカニズムを考案する必芁がありたした。぀たり、開発に含たれるタスクの䟡倀を制埡するこずです。これを行うために、GISTプロセス補品の仮説を怜蚌するためのフレヌムワヌクに぀いお説明したした。これに぀いおは、次の蚘事のいずれかで説明したす。



読んでくれおありがずう



All Articles