2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
成功したチーム、失敗したチーム(全1記事)
提供:株式会社CyberZ
リンクをコピー
記事をブックマーク
門田矩明氏(以下、門田):みなさん、こんばんは。F.O.X Meetupの主催の門田と申します。
今日はF.O.X Meetupというイベントの3回目になるんですが、場所はヒカラボさんにお借りして、共催というかたちで開催させていただいています。
僕からは「成功したチーム、失敗したチーム」というテーマで話をさせていただきます。私の名前なんですが、門田矩明と申します。今F.O.Xというサービスのサービスマネージャーをしてまして。
エンジニアチームのマネージャーや、エンジニアじゃない人たちのマネージャーだったり、採用をやったり広報をやったり、基本的に組織のなんでも屋をやってます。
F.O.Xについて。F.O.Xを聞いたことがある、ご存知の方ってどれくらいいらっしゃいますか?
(会場挙手)
ありがとうございます。ありがたいことに、ご存知の方も多いので、簡単にご説明します。F.O.Xはスマホアプリの広告効果の計測ツールです。
GoogleアナリティクスやFirebase的なやつだと思ってもらえればだいたい合ってるかなと思います。
私のキャリアについてですが、もともとSIerでエンジニアをやってました。そして、2012年くらいにサイバーエージェントに転職しまして、amebaっていう事業部で新規サービスの立ち上げに関わっていました。そこから4年ほど前にCyberZという子会社に出向になり、そこからはずっとF.O.Xに携わっています。
今回はサイバーエージェントに転職してからとCyberZに異動してからの間で、スタートアップに携わることが多かったんですが、その中から成功したチームと失敗したチームの事例を3つくらい挙げてお話させていただきます。
1つ目なんですが、JK、JCってわかりますか?(笑)。女子高生と女子中学生なんですが、JK、JC向けのSNSを作っていたときの話です。
どんなサービスだったかと言うと、簡単に言うとJKとJC向けのスマホSNSサービスでした。エンジニアチームの構成なんですが、サーバーサイドが3人くらい、フロントエンジニアが1人くらい、AndroidとiOSがそれぞれ1人ずつ、みたいな感じです。
サービス立ち上げ当初は2週間ごとにユーザー投稿型のイベントが開催されていまして、基本的にいかなるものよりも優先度が高いという状況でした。イメージとしては、ゲームのイベントのようなものです。当時、サービスにおいて1番重要なのはイベントという感じでした。
イベント1回の設計や実装、テストはだいたい3週間くらいかかるようなものになっていました。とくに2週間に1回やっているので、やっている最中にも、次のイベントの設計、実装が同時並行で走るという状態でした。
このときのチームの課題としては、サービスが立ち上がった直後ということもあり、イベントの開発と同時にサービスの機能開発もしなければいけませんでした。
どうやって対応したかなんですが、開発ラインを3つ用意して、サーバーサイドが3人だったので、1人ずつ分けました。1人は直近のイベントの設計と開発をやって、2人目はその次のイベントの設計と開発をやる。3人目はそれ以外の機能追加、普通の機能追加の開発をする、というかたちで分けました。
1人がずっとイベントを開発し続けるというわけじゃなくて、イベントの開発が終わればその次は機能追加の開発に移るみたいな感じで。開発レーンみたいな感じで3つくらいあって、それを順番に2週間ずつ回すようなイメージです。
これが実際どうだったか? 結論としては一応成功しました。ここでの成功というのは、イベントと機能追加のバランスがうまく取れたということです。
今だから言えることですが、イベント担当ってけっこう気疲れするというか。プロデューサーとかディレクターが、リリース3日前くらいに「こんなことも追加でやりたいんだけど」とか、イベント終了3日前くらいに「今回すごい盛り上がってるからフィナーレにこういう盛り上げを入れたい」みたいなとんでもないことを言ってくることがあります(笑)。
当然イベント担当は追い込みで気疲れをします。終わったら休みを取るというのもちょっと安直かなと思ったので、余裕のある開発ラインに移ってやりたいことやってリフレッシュか、ちょっと休んでリフレッシュするとか、どちらもできるようにしてみました。
その結果、チーム全体と個人のバランスを取りやすくなったので、一応成功かなと思っています。
続いて、2つ目のお話に移ります。CyberZに移ってからのアドテクプロダクトの話です。実は既にクローズしているサービスなので、今はないんですが、新規の広告の配信サービスです。立ち上げの開発チームは、エンジニアが4人、プロジェクトリーダーが別にいるような構成です。
すこし説明が難しいのでざっくりになってしまいますが、広告の配信システムと広告をトラッキングするシステムと管理画面、集計をするバッチシステムが存在してました。
1システム毎のサイズが大きいのと、フルスクラッチで全部開発することになっていたので、開発タスクがかなり膨大になっていました。
このチームの課題は、4システムあって、その4システムに膨大なタスクがあるということでした。この時どのように対処したかと言うと、システムごとに、トラッキングや広告配信、バッチなど、1システムずつに1人をアサインして専任担当というかたちでアサインしました。
プロジェクトリーダーは基本設計とシステム毎のタスクの分割が仕事の中心です。この開発機能はこのシステムだとこうで、このシステムだとこうで、みたいなタスク分割をする。システムごと、要はひとりひとりのタスク管理はプロジェクトリーダーがやることになっていました。
これによって専任担当が余計なことを考えずに担当のシステムだけに専念できる環境を整備する、ということでやっていました。
これは成功か、失敗か? 1つ目の例に近いですし、うまくいきそうな感じがするんですが、数ヶ月後に問題が発生しました。
バッチシステムは最初の開発が少なくて、後から要件がたくさん出てくるとか。逆に集計や広告配信のほうにタスクが偏って、後ろにいけばいくほどどんどん空きが出るという偏りが発生していました。
当然空いている人にタスクを回したいところなんですが、基本的に専任担当ということでタスクを分けてしまったので、自分が携わっていない部分のキャッチアップがぜんぜんできていませんでした。その結果、自分の領域外はぜんぜんカバーできないという問題が発生しました。
そんな状況なので慢性的にタスクの偏りが出て、消化できないタスクがかなり発生していたので、リリースの遅れが発生してしまいます。
なんとかリリースに至った後、運用が始まると当然トラブルが起きたり、バグが発生したりするわけなんですが、その運用対応も専任担当になってしまっているので対応ができないという問題も発生してしまいました。
一応、ディレクターを入れて、専任制を廃止してみんなでワークをシェアしてカバーしようと試みたんですが、解決するまでにかなり時間がかかってしまっています。
3つ目なんですが、ソーシャルマッチングサービスの話です。出会い系じゃなくてマッチングサービスです(笑)。サーバーサイド3人とWebフロント1人、スマホのアプリのエンジニアがAndroidとiOSで1人ずつという構成ですね。
これは相当古い話でして、2012年1月くらいの話です。6年前というのはiPhone4SとかXperia arcの時代でした(笑)。Galaxyで言うとのS2やS3がメインだった頃ですね。スマホに関する技術情報がほとんど世の中に出てないような時代の話です。
この頃の経験がある人とは懇親会でいいお酒が飲めると思うんですけど、当時のスマホのWebブラウザは機種依存だらけでした。今はChromeブラウザが標準搭載になって挙動に差異も少ないですが、当時は各社基本的に標準ブラウザに手を加えるのが主流になってまして、機種依存バグが出まくっている状態でした。当然AndroidやiOSアプリについても情報がないので試行錯誤を強いられてました。
加えて、一番難易度が高かったのがアプリ内課金、特に月額課金でした。AndroidとiOSで月額課金が始まった直後ぐらいでして、「対応したい!」という話が持ち上がり、やらなきゃいけない流れになりました。
この時のチームの課題なんですが、技術調査と開発の両立です。実際にどう対処したかなんですが、専門領域に関係なく、サーバーサイド・アプリ・Webなど複数名で技術調査をするようにしました。
調査メンバーはだいたい3人から4人くらいでやることが多かったんですが、サーバーやWebまわり、DBなどの設計も調査メンバー全員で設計するようにしました。
あと、専門領域は問わず、お互いに書いたコードのレビューも行いました。当然「iOSのコードは読めない」ということはあるんですが、ドキュメント通り実装されているかどうかであったり、「ここはなんでこういうふうに実装してるの?」というのはある程度わかるので、調査メンバーで専門領域に関係なくコードレビューをしていました。つまり、調査から開発までを複数名で取り組むということを徹底していました。
これは当然なんですが成功しまして、予定通りリリースできました。
リリースの前のアプリ内課金のテストには1ヶ月ほどかかってしまいました。やってるとAppleとかのドキュメントに書いていない出来事が平気で起きて大変でした。
トラブルが発生した場合も調査メンバーが3、4人いるので多角的に見れるようになりました。1人だと見方が固定化してしまうのですが、複数人の場合、仮説を立てやすいというか。仮説のバリエーションが出やすいので、解決までが早く、これは成功かなと思っています。
まとめです。言い切ってしまっていますが「チームワーク」です。これすごく当たり前の話だと思ってます。スタートアップで成功するチームというか、少人数で成功するチームと言い換えてもいいかもしれません。
ドメイン知識やビジネス知識、技術知識など、なんでもですが、知識をシェアできていることが重要だと思っています。
そのうえで、自分の専門領域の部分を超えた仕事ができていることが重要かなと思ってます。
たぶん世の中の人はこれをチームワークって呼ぶと思います。ですので、当たり前ですが、チームワークが大事かなと思います。
今日の話には、実は元ネタがあります。今日、会場にも来ている遠藤圭一さんというAndroid、iOSのエンジニアなんですが、彼がちょうど2年くらい前に、社内の勉強会で「成功したチームと成功しなかったチーム」発表をしました。
これは社内勉強会なんですが、スライドが公開されているので、僕のスライドと合わせて見るといいかなと思います。
遠藤さんのスライドは僕よりもさらにエモい内容になっているので、ぜひご覧になってください。以上になります。ありがとうございました。
(会場拍手)
株式会社CyberZ
2024.12.20
日本の約10倍がん患者が殺到し、病院はキャパオーバー ジャパンハートが描く医療の未来と、カンボジアに新病院を作る理由
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.17
面接で「後輩を指導できなさそう」と思われる人の伝え方 歳を重ねるほど重視される経験の「ノウハウ化」
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05