Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DevLOVE X ソフトウェア開発に最短経路はあるか
Search
NAVITIME JAPAN
PRO
June 22, 2019
Business
0
30
DevLOVE X ソフトウェア開発に最短経路はあるか
2019/06/22-23に開催される「DevLOVE X〜 それぞれの10年、これからの10年 〜」にて発表する資料です。
NAVITIME JAPAN
PRO
June 22, 2019
Tweet
Share
More Decks by NAVITIME JAPAN
See All by NAVITIME JAPAN
つよつよリーダーが 抜けたらどうする? 〜ナビタイムのAgile⽀援組織の変遷〜
navitimejapan
PRO
22
14k
実践ジオフェンス 効率的に開発するために
navitimejapan
PRO
3
260
安全で使いやすいCarPlayアプリの 魅せ方:HIGと実例から学ぶ
navitimejapan
PRO
1
88
見えないユーザの声はログに埋もれている! ~ログから具体的なユーザの体験を数値化した事例紹介~
navitimejapan
PRO
6
2.3k
ユーザーのためなら 『デザイン』 以外にも手を伸ばせる
navitimejapan
PRO
2
1.3k
フツーのIT女子が、 Engineering Managerになるまで
navitimejapan
PRO
3
220
不確実性に打ち勝つOKR戦略/How to manage uncertainty with OKR strategy
navitimejapan
PRO
4
3.2k
アジャイルを小さいままで 組織に広める 二周目 / Agile Transformation in NAVITIME JAPAN iteration 2
navitimejapan
PRO
4
1.2k
変更障害率0%よりも「継続的な学習と実験」を価値とする 〜障害を「起こってはならないもの」としていた組織がDirtの実施に至るまで〜 / DevOps Transformation in NAVITIME JAPAN
navitimejapan
PRO
7
5.2k
Other Decks in Business
See All in Business
5 Things Every L&D Pro Should Steal From Marketing
trainlikeamarketer
0
420
株式会社Beer and Tech/HitoHana(ひとはな) 採用資料 2024.11
beerandtech_recruiter
1
500
ノーコード・ローコストで進めるDX
tokyo_metropolitan_gov_digital_hr
0
390
kubell COMPASS Ver 1.0.0
kubell_hr
0
3.5k
都庁初!!局DX推進計画策定
tokyo_metropolitan_gov_digital_hr
0
390
20241027.jjug_ccc_creditsaison.pdf
lalha
4
2.5k
パレットクラウド株式会社 採用ピッチ資料
palettecloud
0
5.5k
株式会社CINC 会社案内/Company introduction
cinchr
6
45k
もしドラッカーがアジャイルコーチになったら / If Drucker Were an Agile Coach
fkino
2
410
急成⻑スタートアップで働くことで得られるもの / 株式会社IVRy(社内LT会)
miyashino
0
1.2k
ARI会社説明
arisaiyou
0
4.2k
【metimo】「『似合う』を楽しもう。」
hinalin
0
560
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
88
5.7k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Building Adaptive Systems
keathley
38
2.3k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
Practical Orchestrator
shlominoach
186
10k
What's new in Ruby 2.0
geeforr
343
31k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Navigating Team Friction
lara
183
14k
Automating Front-end Workflow
addyosmani
1366
200k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Rails Girls Zürich Keynote
gr2m
94
13k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Transcript
©NAVITIME JAPAN ソフトウェア開発に最短経路はあるか 株式会社ナビタイムジャパン 開発部部長 兼 ACTS(研究開発)ルートグループ責任者 小田中 育生
©NAVITIME JAPAN 自己紹介 小田中 育生 株式会社ナビタイムジャパン 開発部 部長 ACTS(研究開発) ルートグループ責任者
• 2009年株式会社ナビタイムジャパン入社 • 経路探索 • 交通情報 • ミドルウェア • チャットボット • カイゼン
©NAVITIME JAPAN
©NAVITIME JAPAN 2019 06/22
©NAVITIME JAPAN 2019 06/22 2009 06/01 Back to 2009/06/01
©NAVITIME JAPAN 個人的な話 ナビタイムジャパン入社 経路探索の研究開発部門に配属 初めて開発したのは「プローブ交通情報システム」 小田中2009
©NAVITIME JAPAN ナビタイムジャパンの話 フィーチャーフォン 向けにサービスを展開 当時の資料
©NAVITIME JAPAN 2019 06/22 2009 06/01 RETURN to 2019/06/22
©NAVITIME JAPAN 個人的な話 ナビタイムジャパン勤続10周年 経路探索の研究開発部門にて責任者を担当 シェアサイクルルート(‘18/9) タクシー配車位置(’19/3) 小田中2019
©NAVITIME JAPAN ナビタイムジャパンの話 有料課金ユーザー数 約480万人 月間ユニークユーザー数 約5,100万人 スマホ向けに サービスを展開 BtoB含め
多様な事業展開 ※2018年9月時点
©NAVITIME JAPAN ソフトウェア開発における最短経路
©NAVITIME JAPAN ゴール スタート
©NAVITIME JAPAN ゴール スタート これが最短経路
©NAVITIME JAPAN ゴール スタート 機能Aの開発 レスポンス改善 テスト環境整備 リファクタ UI改善 ソフトウェア開発における選択肢の多様さも
グラフで表すことができる 品質上げて!
©NAVITIME JAPAN ゴール スタート 選択肢=バックログ。バックログに優先順位を つけることで最短経路が浮かび上がる 機能Aの開発 レスポンス改善 品質上げて! テスト環境整備
リファクタ UI改善
©NAVITIME JAPAN しかし
©NAVITIME JAPAN 2019 06/22 2009 06/01 この10年での 現場の変化
©NAVITIME JAPAN 2019/06/23 2009/06/01 チャネル スマートフォン フィーチャーフォン インフラ クラウド オンプレ
開発プロセス アジャイル ウォーターフォール 組織 フラット・マトリクス型 ピラミッド型 バージョン管理 Git VSS 単体テスト xUnit お手製 or 無し 情報共有 Slack, メール, Confluence メール, Pukiwiki 大きく変化している
©NAVITIME JAPAN 2019/06/23 2009/06/01 チャネル スマートフォン フィーチャーフォン インフラ クラウド オンプレ
開発プロセス アジャイル ウォーターフォール 組織 フラット・マトリクス型 ピラミッド型 バージョン管理 Git VSS 単体テスト xUnit お手製 or 無し 情報共有 Slack, メール, Confluence メール, Pukiwiki ゴール スタート 市場の変化で、 ゴール(ビジョン)への 道筋が変わる
©NAVITIME JAPAN 2019/06/23 2009/06/01 チャネル スマートフォン フィーチャーフォン インフラ クラウド オンプレ
開発プロセス アジャイル ウォーターフォール 組織 フラット・マトリクス型 ピラミッド型 バージョン管理 Git VSS 単体テスト xUnit お手製 or 無し 情報共有 Slack, メール, Confluence メール, Pukiwiki 例えばGitへの移行
©NAVITIME JAPAN ゴール スタート ゴール スタート Git移行 Git移行
©NAVITIME JAPAN ゴール スタート ゴール スタート Git移行 Git移行 全体の スピードが向上
©NAVITIME JAPAN 2019/06/23 2009/06/01 チャネル スマートフォン フィーチャーフォン インフラ クラウド オンプレ
開発プロセス アジャイル ウォーターフォール 組織 フラット・マトリクス型 ピラミッド型 バージョン管理 Git VSS 単体テスト xUnit お手製 or 無し 情報共有 Slack, メール, Confluence メール, Pukiwiki プロセスの進化が 開発速度を向上させる
©NAVITIME JAPAN ある時点では最短経路は「ある」。 だが、この最短経路は「変わる」。
©NAVITIME JAPAN VUCAと呼ばれるほどに 不確実で、変化の速い時代
©NAVITIME JAPAN 変化する時代に 開発チームはどうあるべきか
©NAVITIME JAPAN • 今この瞬間の最短経路を走るすばやさ • 変化を恐れない粘り強さ
©NAVITIME JAPAN す ば や い チ ー ム を
つ く る
©NAVITIME JAPAN 最終ゴール 最終的なゴールへの道のりは様々な選択肢がある
©NAVITIME JAPAN 最終ゴール 仮説を立て、実行し、結果をみて 次のゴール(仮説)を目指す
©NAVITIME JAPAN 最終ゴール 全ての仮説が最終ゴールに近づくわけではない
©NAVITIME JAPAN 最終ゴール 後戻りすることもある 実行不可能(工数、スキルなど) な仮説も存在する
©NAVITIME JAPAN 最終ゴール 仮説実行プロセス(完了) 仮説実行プロセス(進行中) 仮説実行プロセスのリードタイムを どれだけ短くできるかが鍵
©NAVITIME JAPAN 2001年サービス開始 プロダクトが年輪を重ねると リードタイムは増加しやすい
©NAVITIME JAPAN ステークホルダーの 増加 プロダクトの 複雑化 あふれる タスク
©NAVITIME JAPAN どうやって短くするか
©NAVITIME JAPAN ステークホルダーの 増加 プロダクトの 複雑化 あふれる タスク
©NAVITIME JAPAN リファクタリングによる複雑度低減
©NAVITIME JAPAN 2001年サービス開始 2009年入社 サービス開始から数年経ったタイミングで入社 リファクタリングに関わることが多々ありました
©NAVITIME JAPAN リリース物 reference target input リグレッションテスト 前バージョン Diff リグレッションでデグレを防ぎながら、
慎重にリファクタリングをすすめる
©NAVITIME JAPAN • リードタイム削減効果 • 複雑度 • コードカバレッジ リファクタリングの効果を可視化し 重要性を訴え続けてきました
©NAVITIME JAPAN ガイドラインをつくり 社内でリファクタリングを 推進していました
©NAVITIME JAPAN リファクタリングは効果的だが、 他にもカイゼンするべきことがありそうだ…
©NAVITIME JAPAN ステークホルダーの 増加 プロダクトの 複雑化 あふれる タスク
©NAVITIME JAPAN バリューストリームマップ
©NAVITIME JAPAN バリューストリームマップとは ソフトウェア開発サイクルのモノと情報の流れを可視化するマップ ユニットテスト確認 1 リリース担当 Lead Time 10
m Process Time 0 m Wait Time 10 m
©NAVITIME JAPAN 最終ゴール 仮説実行プロセス(完了) 仮説実行プロセス(進行中) 仮説実行プロセスのリードタイムを 可視化できる
©NAVITIME JAPAN 最終ゴール 仮説実行プロセス(完了) 仮説実行プロセス(進行中) 仮説実行プロセスを詳細化し ボトルネックを見つけることができる
©NAVITIME JAPAN やってみました
©NAVITIME JAPAN 「◦◦さんに相談」 わかりやすく属人化 Wait timeが3day テスト工程が煩雑 ミスが頻発
©NAVITIME JAPAN 発見したボトルネックに対し ツールによる対策と プロセス改善による対策を実施
©NAVITIME JAPAN ツールでの解決 ムダを省くための施策「ペインキラー」 経路品質評価 開発者検証 • 一部メンバに属人化 • 習得コスト高
• ミスしやすい fabricで一括実行 誰でもできるように • 手動作業が煩雑 • ミスしやすい Jenkinsで完全自動化 もうミスしない
©NAVITIME JAPAN プロセスでの解決 モブプロの実施
©NAVITIME JAPAN メンバーC メンバーD メンバーB メンバーA 機能A 機能B 機能C 検証
モブ導入前のチーム 開発の多くが メンバーAに依存 検証のすべてが メンバーDに依存
©NAVITIME JAPAN メンバーC メンバーD メンバーB メンバーA 機能A 機能B 機能C 検証
モブ導入前のチーム A B C A B C A B C A B C 検証 機能A 機能B 機能C 開発
©NAVITIME JAPAN メンバーC メンバーD メンバーB メンバーA 機能A 機能B 機能C 検証
モブ導入前のチーム A B C A B C A B C A B C 検証 機能A 機能B 機能C 開発 WT(待ち時間)が発生 メンバーA, Dの疲弊
©NAVITIME JAPAN メンバーC メンバーD メンバーB メンバーA 機能1 機能2 機能3 検証
モブ導入前のチーム メンバーC メンバーD メンバーB メンバーA 機能1 機能2 機能3 検証 モブ導入後のチーム
©NAVITIME JAPAN メンバーC メンバーD メンバーB メンバーA 機能1 機能2 機能3 検証
モブ導入後のチーム A B C A B C A B C A B C 検証 機能1 機能2 機能3 開発
©NAVITIME JAPAN メンバーC メンバーD メンバーB メンバーA 機能1 機能2 機能3 検証
モブ導入後のチーム A B C A B C A B C A B C 検証 機能1 機能2 機能3 開発 ボトルネックが消滅 WTが大幅に低減
©NAVITIME JAPAN VSM実施から半年後には リードタイムが1/3に!
©NAVITIME JAPAN どうカイゼンしていったか
©NAVITIME JAPAN スプリントプランニング スプリントふりかえり スプリントレビュー デイリー 水曜 水曜 デイリー デイリー
デイリー デイリー 週一のふりかえりを軸に スクラムを導入
©NAVITIME JAPAN たとえばモブプロの場合
©NAVITIME JAPAN スプリント スプリント スプリント スプリント スプリント スプリント がっつりモブ でやる
全部モブって のは止めよう モブいいね。 全部モブでも いいかも 全部モブは キツい モブの 時間調整辛い カレンダー つくった 朝会で 募りましょう うーん 途中退室OK! モブの参加者 集まらない… 参加したいが タスクが… どんなモブあ るか知りたい 朝会で やりましょう 日 雇 い 制 度 の 誕 生 も ぶ も ぶ カ レ ン ダ ー の 誕 生
©NAVITIME JAPAN リードタイムを短縮することで すばやいチームに一歩近づきました
©NAVITIME JAPAN 最終ゴール では、リードタイムが短ければ十分か?
©NAVITIME JAPAN プロダクトの 複雑化 あふれる タスク ステークホルダーの 増加
©NAVITIME JAPAN 最終ゴール すばやくても、ゴールから離れてしまうと 高速に要らないものを作ることになる
©NAVITIME JAPAN 目の前のゴールと真剣に向き合うあまり 長期的なゴールを見失う
©NAVITIME JAPAN ゴールから逆算することで 方向性を見失わないようにする
©NAVITIME JAPAN スプリントプランニング スプリントふりかえり スプリントレビュー デイリー 水曜 水曜 デイリー デイリー
デイリー デイリー プランニングと レビューの二段構えで ゴールからのズレを回避
©NAVITIME JAPAN ステークホルダーの 増加 プロダクトの 複雑化 あふれる タスク 重ねた年輪ゆえの課題と向き合い、すばやさを得る
©NAVITIME JAPAN バリューストリームマップ スクラム モブプログラミング
©NAVITIME JAPAN Q. 導入、大変じゃない?
©NAVITIME JAPAN A. 楽ではないです
©NAVITIME JAPAN プラクティス 導入の障壁 どうクリアした? バリューストリーム マッピング 時間がかかるので 躊躇される (2-4h)
1回目: 期初など 区切りのいいとき に実施 それ以降: 1回目の実績を伝えると だいたいゴーサインが出る スクラム 習得が困難 イベントに時間がかかる ふりかえりを軸にメンバーの声を ききながら徐々に導入 一ヶ月くらいかけてじっくり説明 モブプログラミング ほんとに効率的なの? という疑問 まずは一回やってみる
©NAVITIME JAPAN はじめてスクラムを導入したとき
©NAVITIME JAPAN スクラムやろう!
©NAVITIME JAPAN スクラムやろう! うちには あわなそう なんですかそれ? 興味はあるけど…
©NAVITIME JAPAN やったこと 1. スクラムとは何かの説明 2. なぜスクラムかの説明 3. インセプションデッキをみんなでつくる
©NAVITIME JAPAN はじめてやることには 「なぜやるのか」の丁寧な説明が必要
©NAVITIME JAPAN プラクティス 導入の障壁 どうクリアした? バリューストリーム マッピング 時間がかかるので 躊躇される (2-4h)
1回目: 期初など 区切りのいいとき に実施 それ以降: 1回目の実績を伝えると だいたいゴーサインが出る スクラム 習得が困難 イベントに時間がかかる ふりかえりを軸にメンバーの声を ききながら徐々に導入 一ヶ月くらいかけてじっくり説明 モブプログラミング ほんとに効率的なの? という疑問 まずは一回やってみる
©NAVITIME JAPAN スプリントプランニング スプリントふりかえり スプリントレビュー デイリー 水曜 水曜 デイリー デイリー
デイリー デイリー ふりかえりがルーチン化してると、 「まずはやってみる」 が可能になる
©NAVITIME JAPAN ね ば り づ よ い チ ー
ム を つ く る
©NAVITIME JAPAN 最終ゴール チームがすばやさを手に入れたら もう一安心?
©NAVITIME JAPAN 最終ゴール 行き止まりになったり
©NAVITIME JAPAN ゴールが動いたり 最終ゴール
©NAVITIME JAPAN 最終ゴール 違う方向むいちゃったり
©NAVITIME JAPAN 最終ゴール 弱ったり
©NAVITIME JAPAN 外的にも内的にも、変化は起こる 変化にめげず、変化に負けず 粘り強くゴールに向かうには?
©NAVITIME JAPAN 「5分でわかった気になるインセプションデッキ」@TAKAKING22 https://www.slideshare.net/TakaoOyobe/5-45195080
©NAVITIME JAPAN チーム全員で 作る • 共通のビジョンが持てる • お互いの価値観がわかる
©NAVITIME JAPAN 小田中のチームでの事例 実施前 新機能開発で 手一杯 経路を よくしたい 経路を よくしたい
経路を よくしたい きれいな コード 経路を よくしたい テスト しっかり 高速化 したい
©NAVITIME JAPAN 小田中のチームでの事例 実施前 新機能開発で 手一杯 経路を よくしたい 経路を よくしたい
経路を よくしたい きれいな コード 経路を よくしたい テスト しっかり 高速化 したい • 実は同じこと考えてる • お互いにそれを知らない
©NAVITIME JAPAN 小田中のチームでの事例 実施前 新機能開発で 手一杯 経路を よくしたい 経路を よくしたい
経路を よくしたい きれいな コード 経路を よくしたい テスト しっかり 高速化 したい 実施後 経路を よくしたい!
©NAVITIME JAPAN 同じ方向を向いた!
©NAVITIME JAPAN 共通認識を持ち、協働しやすくなった チームの優先順位についても 全員で話し合うことができた
©NAVITIME JAPAN 1 on 1
©NAVITIME JAPAN 全体を眺めているのでは わからないことがある ? 1対1だからこそ言える 1対1だからこそ聞ける !
©NAVITIME JAPAN 小田中2019 昨年から1on1を開始。 当初は… 枠を確保して、 1on1したい人が できるようにしよう
©NAVITIME JAPAN 小田中2019 理想 1on1 入れまーす 1on1 入れまーす 1on1 入れまーす
1on1 入れまーす
©NAVITIME JAPAN 小田中2019 現実 504 1on1 入れまーす 504 1on1 入れまーす
©NAVITIME JAPAN 特定のメンバーしか入れてこない 話を聞きたいメンバーに限って 入れてこない
©NAVITIME JAPAN 1on1は任意ではなく 必須で入れる
©NAVITIME JAPAN 定期的に話す 信頼関係の醸成 メンバー メインで話す メンバー目線で 課題収集 内側から カイゼンを探る
問いを与え メンバーが思案 1on1でやること
©NAVITIME JAPAN 時間はかかりますが 1on1によって 朝会などではわからない深い課題や 少し未来を見据えた話ができます
©NAVITIME JAPAN 最終ゴール 変化に負けない強いチームは、つくれる。
©NAVITIME JAPAN • 今この瞬間の最短経路を走るすばやさ • 変化を恐れない粘り強さ 2018年はこの「つよいチーム作り」が 成果に結実していった年でした
©NAVITIME JAPAN レスポンスタイム 昨年度と比べ 40%削減 2月は昨年度と比べ 50%減少 ユーザからの指摘
©NAVITIME JAPAN 設定時刻前後の おすすめルート シェアサイクルルート タクシー配車位置 レコメンド
©NAVITIME JAPAN • 今この瞬間の最短経路を走るすばやさ • 変化を恐れない粘り強さ また、チームのマインドも変化していきました
©NAVITIME JAPAN 最近どう?
©NAVITIME JAPAN 最近どう? 課題と向き合えるので ふりかえりは必須ですね! 失敗することも 成果と考えるように なりました 新しいことに チャレンジしたいです
すばやく粘り強い チームマインド 大変だけど やってやるぜ
©NAVITIME JAPAN 2019 06/22 2009 06/01 Back to 2009/06/01
©NAVITIME JAPAN 個人的な話 ナビタイムジャパン入社 経路探索の研究開発部門に配属 初めて開発したのは「プローブ交通情報システム」 小田中2009 ほぼ1人で 半年ほどかけて作った
©NAVITIME JAPAN 10年前は、1つの機能を1人で 今は、たくさんの機能やカイゼンをみんなで
©NAVITIME JAPAN 最終ゴール 最短経路は変わるから チームで見つける。チームで向かう。
©NAVITIME JAPAN
©NAVITIME JAPAN 2019 06/22 BACK to THE FUTURE 20XX XX/XX
©NAVITIME JAPAN これから、どうなる?
©NAVITIME JAPAN 高齢化社会 自動運転 MaaS
©NAVITIME JAPAN 高齢化社会 自動運転 MaaS これまで以上に予想がつかない未来
©NAVITIME JAPAN ビジョン チーム ビッグデータ アルゴリズム データとアルゴリズムがコンパスとなり チームで北極星を目指す
©NAVITIME JAPAN Decide Act Observe Orient 不確実性があるからこそ 愚直にカイゼンサイクルをまわす
©NAVITIME JAPAN もうひとつ、大切なこと
©NAVITIME JAPAN 高齢化社会 自動運転 MaaS
©NAVITIME JAPAN 小田中2009 小田中2019 小田中2050
©NAVITIME JAPAN 次世代へバトンを渡す日が来る
©NAVITIME JAPAN チームを作れる人を 作る
©NAVITIME JAPAN チームを作れる人 ↓ マネージャー
©NAVITIME JAPAN メンバーは開発に集中している。 構造上、局所最適に向かいやすい。
©NAVITIME JAPAN 使いたい技術はドメインにフィットするのか その作り込みは必要か 完璧に 作り込む! この技術に 触ってみたいな
©NAVITIME JAPAN 視点を引き上げる存在が必要
©NAVITIME JAPAN チームを束ね、潜在能力を引き出し、 ゴールへ共にむかう。それがマネージャー。
©NAVITIME JAPAN しかし、マネジメントには困難が伴う
©NAVITIME JAPAN
©NAVITIME JAPAN
©NAVITIME JAPAN 経験者と新任者とが 二人三脚で課題に向き合い 育てていく
©NAVITIME JAPAN Q. マネジメント、やってみたいですか?
©NAVITIME JAPAN 圧倒的 不人気
©NAVITIME JAPAN メンバーの力を最大限発揮し よりよい未来へコミットするマネジメント その面白さを伝えていくことが わたしのこれからのミッション
©NAVITIME JAPAN さいごに
©NAVITIME JAPAN 最終ゴール ソフトウェア開発に最短経路はあるか。
©NAVITIME JAPAN 最終ゴール 最短経路は変わる。ゴールも変わる。 けれど、ある時点での最短経路は存在する。
©NAVITIME JAPAN 共通のビジョンを持つチームは、強い。
©NAVITIME JAPAN 最短経路を求め続け これからもエンジニアリングを 楽しんでいきましょう!
©NAVITIME JAPAN Thanks!