社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild)...

106
社内スタートアップに よる組織の成長に伴い 発生する痛みとその解 決策について REBUILD Recruit Holdings Recruit Institute of Technology Media Technology Lab Itsuki KURODA @i2key <- Follow Me Plz :-) Scrum& LeanStartup導入

description

★最新版の45分拡大版はこちら http://www.slideshare.net/i2key/45-developers-summit-2015-devsumi-devsumib 「DevLove現場甲子園2014 日本シリーズ」 にて発表しました資料です。 http://devlove.doorkeeper.jp/events/16200 元の資料の加筆修正版になります。(リーン回りをもう少し詳しく) http://www.slideshare.net/i2key/ss-38266796

Transcript of 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild)...

Page 1: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

社内スタートアップによる組織の成長に伴い発生する痛みとその解決策についてREBUILDRecruit Holdings Recruit Institute of Technology Media Technology Lab Itsuki KURODA @i2key <- Follow Me Plz :-)

Scrum& LeanStartup導入

Page 2: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

自己紹介 Recruit Holdings Recruit Institute of Technology Media Technology Lab 黒田 樹 (@i2key) !

全世界でシリーズ累計1000万DLのアプリcameranシリーズの技術責任者(開発、採用、組織構築、プロセスetc) 社内でリーンスタートアップやアジャイルの導入を推進しています !

※参考:FF14のコミット状況(カンスト6/9職)@Ultima鯖

http://mtl.recruit.co.jp

Page 3: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

コンテキスト調整

• 受託開発文脈ではなく、自社サービス文脈。

• 目的はサービスを契約(QCD+Scope)にあわせて開発するのではなく、サービスの成長にコミットすること。成長とは機能追加ではなく、売り上げへの貢献、ユーザー数の拡大、つまりは、事業の持続可能性の創出へのコミットである。凄い機能を高いコストをかけて開発したとしても、それに貢献しないのであれば意味がない。であれば、その機能は開発しないほうがよい。ヒト・カネ・ジカンは有限。

• そのパラダイムでお話をします。例えば、スクラムにおいても、各プラクティス導入の優先順位がそれにより大きく変わります。

Page 4: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

再演だし量を減らそうとリファクタリングしたら、 98枚から106枚に増えてしまいました。

!

結構ページ飛ばすので後で読んで下さい! そのためスライドは読み物として作成してあります。

!

文字多くてごめんなさい!!!!!!!! でも後から読み直し易いと思うよ!

スピード注意!!!!

Page 5: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

• cameranというアプリにおける組織拡大に伴い発生した数々の問題とその対処方法について発表します。

Page 6: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

第一部 ヒットからカオスへ突然の大ヒット。

全ての連鎖の始まりがここに。 !

第二部 師との出会い恩師との出会い。

そして我々は本当のスクラムを知る。 !

第三部 俺たちはリーンだ!様々な師達に教えを受け、 リーンスタートアップを会得

そして、自分達のプロセスに昇華

Page 7: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

第一部 ヒットからカオスへ突然の大ヒット。

全ての連鎖の始まりがここに。 !

第二部 師との出会い恩師との出会い。

そして我々は本当のスクラムを知る。 !

第三部 俺たちはリーンだ!様々な師達に教えを受け、 リーンスタートアップを会得

そして、自分達のプロセスに昇華

Page 8: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

•・ プロジェクト開始時の体制

• プロデューサー

• エンジニア(サーバ)

• エンジニア(iOS)※常駐外部パートナー

• デザイナー

• チームは、メンバー全員の打ち合わせで全ての課題が解決できる規模だった。

• ウォーターフォールではない、アジャイルのような何か。

Page 9: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

省略

Page 10: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

大ヒット御礼!!!!広告・ブースト無しで、 リリース3日で50万DL 10日で100万DL

※今回はヒット後の組織成長の話なので、 そのヒットを作り込んだ過程は省きます

(結果的に後から振り返るとものすごく顧客開発してました)

Page 11: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

突然の大ヒットにより、このままイケソウな兆しを感じた上層部は、更に追加投資することにした。 !

元々、地道に検証しながら進めて行こうとしていた画像SNS化計画をその資金でフルスロットル開発することが決定。※2ミリもリーンじゃない。

超特大開発の幕開け

Page 12: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

開発規模大きいし、 まずは・・・

Page 13: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

エンジニア増加!!

Page 14: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

今度はディレクターネック

Page 15: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

ディレクター増加!!

Page 16: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

今度はディレクタがアライアンスに手が回らない

Page 17: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

アライアンス担当増加!!

Page 18: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

デザイナもデザイナも!

Page 19: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

エンジニアも、もっと!!

Page 20: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

どうなるか・・・

Page 21: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

ちょw体制wwwwwwwwwプロデューサー

デザイナ

エンジニア

Before

アライアンス

デザイナ

エンジニア

ディレクター

プロデューサー

Lead EngineerServer Engineer

iOS Engineer

Android Engineer

After

\(^o^)/

Page 22: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

何が起きるのか・・・??

Page 23: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

• 目標に対する成長スピードの鈍化

• やるべきことに着手できていない焦り

• 日々発生する最優先タスクに振り回される現場。最優先の中の最優先とか・・・。

• 毎日行われる進捗会議というなの大検討会&それに浪費される時間

• 伝言ゲームによるコミュニケーションコストの肥大化

• プロデューサー - エンジニア間の発注者-受注者的関係性

• プロデューサー - エンジニア間の関係性の悪化(ギスギスする)

• 技術的負債の山

• 日々詰み上がるバグの山を解決するだけで時間が過ぎていく。

• 現場まで降りてこない方針。価値観。文脈。だから現場判断出来ない。

Page 24: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

コミュニケーション①

Lead Engineer

Server Engineer

iOS Engineer

Android Engineer

Engineer team

プロデューサー ディレクタープロデューサー team

①この仕様ってこれでいいのかな?

②ちょっと確認してみますね

③ここの仕様で質問きたのですが、こう回答していいすか?

④じゃ、それで。

⑤あざーす! ⑥うお・・・wこれインパクトでけえ・・。サーバエンジニア以外にも影響でるな・・・。

⑦りょーかいです・・・

⑦りょーかいです・・・

伝言ゲーム

Page 25: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

コミュニケーション②

Lead Engineer

Server Engineer

iOS Engineer

Android Engineer

Engineer team

プロデューサー ディレクタープロデューサー team

①この機能なるはやでいれよ! ②ワイヤー作って

調整しますー③仕様理解しました。各エンジニアにディスパッチして工数の見積もりを依頼します。

④全部やったら1ヶ月くらいかかるね。(今やってるの全部手をとめたらね)

④うーん、2週間くらいかなぁ。(今やってる開発作業はどうなるんだろ・・・)

⑤現在着手中のもあると思うので、バッファ詰んで1.5ヶ月にしましょう。そう伝えます。

⑥1.5ヶ月ですね。了解です。

⑦了解です。この間依頼した機能はまだ出来上がらないのかな。

ボトルネック

Page 26: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

コミュニケーション③

Lead Engineer

Server Engineer

iOS Engineer

Android Engineer

Engineer team

プロデューサー ディレクタープロデューサー team

①あそこの機能結構やっつけで作ったのでリファクタリングしてコード品質上げましょう。ついでにフレームワークのバージョンもあげましょうか。

②いいっすねー!やりましょー!1週間くらいあればできそうですね!

③技術的負債を解消するためのタスクがあることを知らない。

知らないとこでタスク作成

Page 27: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

コミュニケーション④

Lead Engineer

Server Engineer

iOS Engineer

Android Engineer

Engineer team

プロデューサー ディレクタープロデューサー team

①競合が新機能いれた、やばい、これなるはやで!

②ワイヤー作って調整しますー

③仕様理解しました。各エンジニアにディスパッチして工数の見積もりを依頼します。

④前回依頼あった実装まだ全然おわってないのに・・・。見積もりコストかなりかかるし・・・。2週間くらいかな。

④1週間くらいかな。

⑤(リファクタリング対象と実装箇所が被るので、リファクタリングを実施してから、本タスクは着手しましょう。)実装には2週間くらいあれば。

⑥2週間ですね。了解です。

⑦了解です。この間依頼した機能はまだ出来上がらないのかな。

知らないとこで優先付け

Page 28: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

コミュニケーション⑤

Lead Engineer

Server Engineer

iOS Engineer

Android Engineer

Engineer team

プロデューサー ディレクタープロデューサー team

①このバグやばい!なるはやでなおして!!!

②そんな重要なバグなのでしょうか?了解です。最優先で対処します。

③了解です!すぐになおします。暫定対処は、すぐだけど、本格対処は結構工数かかりそうだなー。

④今回は本格対処まで実施したいので、時間結構かかります。暫定版は明日リリースします。

⑥了解です。

どんなバグでも最優先対応

Page 29: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

コミュニケーション⑥

Lead Engineer

Server Engineer

iOS Engineer

Android Engineer

Engineer team

プロデューサー ディレクタープロデューサー team

①まだ新機能がリリースされない。何やってんだ!! ②そんなこといわれても、何

でもなるはやじゃないすか。

③こんなに毎日終電や徹夜してまで頑張ってるのに、なんで怒られなくてはならないのだろう・・・・

ギスギス・・・\((^^oo^^))/

Page 30: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

今なら言える失敗• スケーラブルな組織設計でないのにスケールさせてしまった。管理能力の高いチームは自らチームの成長を抑制するか、その代わりに管理キャパシティをスケールさせる。

• バニティメトリクスに支配されていた。表面上のMAUを稼ぐのは人を増やしてパワーを掛ければ稼げる(ので、人を増やしてしまう)

• プロジェクト計画の方法論、サイクル、カレンダーが無い

• 仕事の優先順位決定のメカニズムが無い

• 明確に定められたバグトリアージとトラッキングが無い

• コミュニケーションチャネル設計が無い

Page 31: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

少人数でならうまく行く 「ウォーターフォールではない何か」を「アジャイルにやってます」と言って プラクティスのつまみ食いしてただけ。

少人数ならどんなやり方だって それっぽくうまくいくので勘違いしがち。

Page 32: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

第一部 ヒットからカオスへ突然の大ヒット。

全ての連鎖の始まりがここに。 !

第二部 師との出会い恩師との出会い。

そして我々は本当のスクラムを知る。 !

第三部 俺たちはリーンだ!様々な師達に教えを受け、 リーンスタートアップを会得

そして、自分達のプロセスに昇華

Page 33: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

師USスタートアップの現場で使われている

本当のスクラムを 導入するためにメンターとして 500Startupsのメンター

でもあるJames Levine氏を師として招く

Page 34: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

やりたいこと。これへの対処

Page 35: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

チームを昔のように小さくする。みんなで顔を合わせれば

問題は大抵解決するような規模に。

エンジニアをとりまとめるようなエンジニアリーダーロールを廃止する。

全エンジニアが直接プロダクトオーナーと コミュニケーションするようにチームをフラット化する。

仕事の見える化タスクおよびそれの規模感の見える化により、 優先付けやトレードオフが機能するようにする。

Page 36: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

iOSエンジニアからScrumチーム化

Lead Engineer

Server Engineer

iOS Engineer

Android Engineer

Server Engineer

Android Engineer

iOS Scrum team

Lead Engineer

兼務

旧Engineer team

旧Engineer team

Scrum Master

プロデューサー ディレクター

PO teamProduct Owner

Sub PO

旧プロデューサー team

iOS team Product Backlog

Lead Engineerが1st Sprintのスクラムマスターに。

Page 37: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

スクラム始めるアルアル

• 見積もりを相対値でやらないといけない

• プランニングポーカーしないといけない

• インセプションデッキつくらないといけない

• ベロシティを計測しないといけない

• タスクはユーザーストーリーでかかないといけない

• みんな自己組織化しないといけない

Page 38: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

んなこたぁーない!プロジェクトのコンテキストにより、

必要なプラクティスは変わるし、型にはめたって意味ない。 最初こんなのどれもやらなかった。

Page 39: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

今回のケースで大事なこと

タスクの優先順位付けザービスをグロースさせるために、 リソースが適した優先順位で

優先すべき箇所に使われている状態を作ること

Page 40: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

価値の順番• 優先順位付けが出来ること

• そのために、見える化が必要

• タスク全て見える化

• 休み、会議、定常業務、スプリントタスク

• 見積もり

• 日付でいいのよ。無理に相対値見積もりしないでよい。それはチームの練度があがってからでよい。まずはタスクを見える化し、優先順位付けが機能し、スプリントを回すことが大切。

• 優先順位付けするサイクル・リズムが必要

• プランニング、デイリー、レビュー、レトロスペクティブ

Page 41: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

http://www.acunote.com

Page 42: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

開発タスク管理全てのタスクは理想日にて見積もり。 1スプリントの稼働日の合計を出し、それに合わせてスプリントバックログにタスクを入れていく。 !相対値見積もりは実施していない。

Page 43: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

以下の2つにわけて固定のタイムボックス化しバグ対応コストを管理。 ・将来発生する作業の予約 ・既知のバグ修正 バグ対応タイムボックス内で優先順位順にバグを改修していく。 !開発タスクとバグ対応タスクに割く、時間の割合はプロダクトオーナーが状況に応じてバランスをとる

バグ対応コスト管理

Page 44: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

ミーティングコスト管理全てのミーティングをコスト管理。 !何時間もかけたミーティングを行うと、このスプリントで作ることが出来る機能が減ることを意識させる。 !振り返りにて、ミーティングを減らす方向にバイアスがかかる。

Page 45: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

休暇予定管理全ての見積もりが稼働日換算なので、有給をとる日は、コストとして扱う。

Page 46: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

このやり方を サーバチーム、Androidチームへ、スケール

Page 47: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

サーバーエンジニアをScrumチーム化

Server Engineer

Android EngineerLead Engineer

兼務

Scrum MasterServer Scrum team

旧Engineer team

iOS Scrum teamScrum Master

PO teamProduct Owner

Sub PO

iOS team Product Backlog

Server team Product Backlog

スクラムマスター交代

Lead Engineerが1st Sprintのスクラムマスターになり、スクラムウェイを伝達していく。

Page 48: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

AndroidエンジニアをScrumチーム化

Android Engineer

Scrum MasterServer Scrum team

Android Scrum team

iOS Scrum teamScrum Master

PO teamProduct Owner

Sub PO

iOS team Product Backlog

Server team Product Backlog

Scrum Master

Android team Product Backlog

スクラムマスター交代

スクラムマスター交代

Page 49: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

Scrumチーム間の連携のためScrum of Scrums

Scrum MasterServer Scrum team

Android Scrum team

iOS Scrum teamScrum Master

PO teamProduct Owner

Sub PO

iOS team Product Backlog

Server team Product Backlog

Android team Product Backlog

Scrum Master

Scrum of

Scrums

スクラムマスター交代

スクラムマスター交代

スクラムマスター交代

Page 50: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

バグトリアージ• バグに対する対応の考え方を変えた。

• 災害医療での1次切り分け。クリティカルかどうかだけの切り分けを毎日15分くらいで実施。参加者は各スクラムチームから1名ずつの計3名。

• 切り分けロジックに従い、バグの優先付けをし、各自スプリント内のタイムボックスで対応する。クリティカルはPO相談の上、即時対応。

• バグ管理はYouTrackを利用。※理由は宗教的にJetBrains製品が好きだから。

Page 51: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

リリースカレンダー• リリースの考え方を変えた。

• リリースのタイミングは自動的にやってくる。例:第2週水曜、第4週水曜。

• そのやってきたタイミングで何をいれるか。

• しかしアライアンス等の影響でリリース日を別途固定する必要もある。ー>まずは期限優先で作り、技術的負債を次のスプリントで解消できるように交渉することをルール化した。

http://doda.jp/engineer/it/guide/001/19b.html参考:「技術的負債」の返済ルールを作る 株式会社ドワンゴ清水氏

Page 52: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

その結果• PO目線

• 働き方のリズムが出来る

• エンジニアの状況がみえる

• 自分のオーダーの規模感が知れる

• エンジニア目線

• タスクがどんどん詰め込まれることが無くなった

• なんでも最優先。がなくなった

• スカンクワークではなく技術的負債対策に臨める

Page 53: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

学び

• スクラムを入れたから解決するのではなくて、見える化が進むので結果的にアクションを打てるタイミングがはやくなり、問題を小さい段階で早期解決出来る。

• サービスの成長にコミットした瞬間、そのゴールに向かうことが大切になるため、本に書いてある通りのことを全部やろうというプラクティス厨にはならなくなる。

• 価値観も大きく変わる。限られたリソースをどう有効に使うか。これが全てになる。その目線がそろった状態から、各種プラクティスの導入を行うことが大事。

Page 54: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

現在では• スクラムマスターは持ち回りの当番制

• 全員がスクラムマスターを出来るようになっているため、各自が自走出来る状態になっている。

• 結果的に、スクラムマスター専業の稼働は減る。

• 自己組織化が進む。

• 振り返りから、プルリク駆動開発の実施やSlack+hubotによるChatOpsも実施。プランニングポーカー等各種プラクティスも後から導入。

Page 55: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove
Page 56: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove
Page 57: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

ひとときの平穏

Page 58: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

しかし・・・

Page 59: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

元々の課題だった 成長スピードの鈍化が 改善されない・・・

Page 60: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

そもそも・・・ 今やっているタスクは本当に成長に寄与するものなのか

Page 61: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

ここで残り1100分なら良いペース

Page 62: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

第一部 ヒットからカオスへ突然の大ヒット。

全ての連鎖の始まりがここに。 !

第二部 師との出会い恩師との出会い。

そして我々は本当のスクラムを知る。 !

第三部 俺たちはリーンだ!様々な師達に教えを受け、 リーンスタートアップを会得

そして、自分達のプロセスに昇華

Page 63: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

新たな問題

• プロダクトバックログに起票されるタスクが本当にやるべきことなのか。やるべき理由はあるのか。

•もっと効率よく出来ないのか • そのタスク(機能)をリリースしたあとの効果はタスク(機能)毎にわかるのか。結果から学びを得ているのか。

Page 64: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

リーンスタートアップとか 顧客開発って考え方があるらしい

Page 65: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

めっちゃ本読む• スタートアップマニュアル

• アントレプレナーの教科書

• リーンスタートアップ

• 顧客開発モデルのトリセツ

• RUNNING LEAN

• LEAN UX

• LEAN Analytics

• リーン開発の現場

Page 66: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

可能な限り1次ソースの師達に教えをこう

http://mtl.recruit.co.jp

Page 67: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

500Startupsメンター James氏

(LeanStartup)

Page 68: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

Pivotal Labs Janice氏 (Lean UX)

Page 69: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

Hooked著者 Nir氏 (UX)

Page 70: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

Lean Analytics著者 Alistair氏

(Lean Analytics)

Page 71: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

IDEO @SFオフィス デザインシンキング ワークショップ

(デザインシンキング)

Page 72: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

全ての意思決定において 無駄の無い判断をしていること ・思い込みを排除し全てを仮説と捉える ・コストに対する学びを最大化する ・失敗による損失を最小化する  ≠ 成功を保証するプロセス !

そのために、効率的(例:小さく/短く/安く)に仮説を検証して学びを得る(ことが多い)

新たな価値観

Page 73: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

例)写真加工アプリにスタンプ購入機能を作ろう!!やりたいことの実装工数は3人月くらいかかりそうです。 !

あなたがこのプロダクトのオーナーならどうしますか? !

①スタンプ購入機能を3人月かけて実装する  (一切購入されないリスクそのまま) ②スタンプ購入するボタン(ダミー)を用意して、全体のユーザーの10%に表示して確認し、本当に購入ボタンが押された回数を測定してから開発着手の判断をする。工数は2人日。 (本当に購入されるのかのみを検証)

②のほうが無駄の無い判断してるぽい

つまりはこういうこと。

Page 74: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

顧客開発モデルに則って現状の理解をする。 ビジネス仮説を全てLeanCanvasに書き出す。 既に実証済みのことと、そうでないこを明らかにする

顧客セグメントを明らかにする 市場タイプを選ぶ 顧客との関係 キーパートナー 売上/プライシング 顧客理解 トラフィック/競合分析 顧客の行動測定 アドバイザリーボードメンバーの選定開始    :    :

顧客開発でやるべきこと Lean Canvas

Page 75: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

顧客発見 顧客実証 顧客開拓 組織構築

Problem Solution Fit

Product Market Fit

Pivot

Scaling

Scrum

実証済み 実証済み実証済み 実証済み

実証済み

実証済み 実証済み実証済み

実証済み 実証済み

実証済み実証済み

実証済み 実証済み

今自分達がスタートアップの どのフェーズに いるかも認識する

Page 76: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

顧客発見 顧客実証 顧客開拓 組織構築

Problem Solution Fit

Product Market Fit

Pivot

Scaling

Scrum

実証済み 実証済み実証済み 実証済み

実証済み

実証済み 実証済み実証済み

実証済み 実証済み

実証済み実証済み

実証済み 実証済み

Page 77: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

  Scrum

顧客発見 顧客実証 顧客開拓 組織構築

Problem Solution Fit

Product Market Fit

Pivot

ユーザーの深い課題/ニーズを把握し 解決策を提示しそれが刺さっている

ビジネスモデルの成立することが 実証できている

(Engine of Growthが装着できている) 例)CAC < LTV

Scaling

例)Retentionしている MAU右上がり

Page 78: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

  Scrum

顧客発見 顧客実証 顧客開拓 組織構築

Problem Solution Fit

Product Market Fit

Pivot

ユーザーの深い課題/ニーズを把握し 解決策を提示しそれが刺さっている

ビジネスモデルの成立することが 実証できている

(Engine of Growthが装着できている) 例)CAC < LTV

Scaling

例)Retentionしている MAU右上がり

←いまココ(※当時)

Page 79: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

まだ実証出来ていない仮説に対して リスクの高い順に優先順位をつけて実証していく

実証済

実証済

実証済

実証済

Page 80: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

じゃあ、どうやって 仮説を検証するの???

!

MVPってのがあってな

Page 81: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

MVPとはMinumum Viable Product(検証可能な最小限の製品)。 Productと言ってるけど製品じゃなくてよい。 目的である仮説を検証できればよいので、 それができるものならなんでもMVPと言ってよい(と思う)

Build->Measure->Learn

MVP

ビジネスアイデアを仮説として捉えて 検証するためのプロセス。 仮説検証のためのMVPをBuildして それを元にMeasureし、 その結果得られたデータからLearnする。

Page 82: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

MVPで検証するMVPで検証する

MVPで検証するMVPで検証する

MVPで検証する

MVPで検証するMVPで検証する

MVPで検証する

MVPで検証する

MVPで検証する

つまり、こういうこと

Page 83: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

顧客発見 顧客実証 顧客開拓 組織構築

Problem Solution Fit

Product Market Fit

Pivot

Scaling

Scrum

実証済み 実証済み実証済み 実証済み

実証済み

実証済み 実証済み実証済み

実証済み 実証済み

実証済み実証済み

実証済み 実証済み

Page 84: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

構築→計測→学び開発(スクラム)と同じようにビジネス側もリズムを作る

Scrumで改善

これから改善したいところ

Page 85: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

スクラムの各タスク(機能追加)の効果(結果)を正しく計測する

• 元々MAUやDAU、AARRRについてはウォッチをしていたが、ファネル分析やコホート分析は見ていなかった。全てのサマリでみていたため、直接何が数値に寄与したのかはわかり難い状況だった。

• 検証ポイントまでのUIの問題をファネル分析で発見

• A/Bテスト(スプリットテスト)&コホート分析

Page 86: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

https://www.leanplum.com

A/BテストプラットフォームとしてLeanplumを採用

Page 87: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

計測例•仮説 •CameranのSNSアカウント登録率が悪い。現在他人の投稿はログインユーザーにしか見えない。アカウント非所持者にも見えるようにすることでSNSのUXを事前体験・学習させるとアカウント登録率があがるのはないか。

•MVP •ログイン不要で他人の投稿を閲覧出来る機能を工数あまりかけずに、ユーザ数%対象に実装・計測。

•学びたいこと •SNSアカウント登録率の上昇。及び、既存機能への悪影響度。

Page 88: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove
Page 89: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

実装した機能毎にコホートxA/Bテストを行い、 様々なトレードオフを意識して判断する。

Page 90: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

http://www.localytics.jp

全体の指標モニタリングのために Localytics採用(GAの代わり)

Page 91: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

リリース後はコホートで対象バージョンの リテンション等を計測。この画面は7日間継続率。

※サンプルデータです!

Page 92: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

構築→計測→学び

Scrumで改善

これから改善したいところ

ファネル分析・コホート分析の 計測装置導入で改善

より効果的な学びを得るには?

Page 93: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

Janice氏による LeanUXワークショップ

Page 94: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

リーンスタートアップとは科学的アプローチというけれど、 その場合、実験の計画の思考プロセスは逆。

こうじゃなく 実際の思考プロセスはこう考えて計画する

Page 95: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

①仮説

②何を学ぶのか

③必要なデータは?

④どうやって計測する?

⑤必要なものは?

⑥どう構築するか?

思考プロセス

Page 96: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

①仮説

②何を学ぶのか

③必要なデータは?

④どうやって計測する?

⑤必要なものは?

⑥どう構築するか? (MVP案1)A/Bテスト (MVP案2)ティザーページ (MVP案3)ユーザインタビュー

思考プロセス

Page 97: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

⑥どう構築するか? (MVP案1)A/Bテスト (MVP案2)ティザーページ (MVP案3)ユーザインタビューもっとも効果的に学びが得られるMVPはどれか選択する ・費用対効果 ・期間 ・工数 ・この検証方法により回避できる将来のリスク ・この検証方法により逆に発生する将来のリスク

思考プロセス

Page 98: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

⑫仮説を調整する

⑪学ぶ

⑩データを元に検証

⑨計測する

⑧完成したMVP

⑦構築する (MVP)A/Bテスト

実証プロセス

Page 99: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

http://www.slideshare.net/aerodynamic/mvp-canvas

この一連の思考プロセス・実証プロセスを髙橋さんとフォーマット化!

Page 100: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

http://www.slideshare.net/aerodynamic/mvp-canvas

仮説何を学ぶのか

仮説実証に 必要なデータ 条件

MVP構築に 必要なコスト

仮説実証に 必要な時間

回避/発生する 将来のリスク

結果と、得た学び

MVPのタイプ ・紙プロト ・インタビュー ・A/Bテスト ・動くデモ etc

何を作るのか どうやってそのMVPで実証するのか

Page 101: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

スクラムとかLeanCanvasとか MVPCanvasとか色々でてきたから

最後に整理

Page 102: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

Lean Canvas <ビジネス仮説>

MVP Canvas <仮説検証MVPの設計>

Product Backlog <MVP構築タスク>

Out of Building!!!

MVPがインタビューの場合

MVPがエンジニア稼働必要な場合

改善タスク ・改善目的A/Bテスト ・計測装置導入 メンテナンスタスク ・技術的負債解消 ・OSバージョンアップ対応 ・バグ対応 アライアンスタスク

直接仮説検証には 関係ないけど サービス維持に 必要なタスク

Page 103: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

Lean Canvas <ビジネス仮説>

MVP Canvas <仮説検証MVPの設計>

Product Backlog <MVP構築タスク>

顧客 発見

顧客 実証

顧客 開拓

組織 構築

Problem Solution Fit

Product Market Fit

Pivot

Page 104: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

学んだこと• 全てのプロセスへのインプットは仮説であり、仮説を立てる力がすべて

• 仮説の質があがれば、どんどんゴールに近づく。

• 仮説の質をあげるには、その業界・ドメインに誰よりも詳しくなること。顧客開発をすること。24時間サービスのことを考えること。常に課題意識を持つこと。そういう生き方をすること。当たり前だけど再確認。

• リーンスタートアップはあくまで仮説がある前提で、それを科学的+アートに実証する方法。だから、リーンスタートアップをやったからといって成功するわけではないよ!あくまで、失敗による損失を小さくする方法。バーンアウトしていく資金の中、無駄を省き切り詰めてリスクを取り除いていく方法。

• 今も昔も変わらず、これやるだけで成功するなんて方法はない。

Page 105: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

学んだこと

Lean Engineer 価値:仮説検証サイクルの速度を上げること コミット:サービスの成長 生産性:仮説検証できた回数/時間

Not Lean Engineer 価値:開発をやりきること コミット:開発の完遂 生産性:Step/時間

エンジニアの働き方が変わる

Page 106: 社内スタートアップによる組織の成長に伴い発生する痛みとその解決策について(Rebuild) #devlove

ご清聴ありがとうございました!