デブスト2020で話した定量的なレトロスペクティブの話。
開発基盤の開発チームが、自分達で作った基盤でデータを基にカイゼンをする話#devboost #Session42020/12/12青山 弦太
View Slide
2Copyright © 2020 BTC Corporation All Rights Reserved.INDEX1. はじめに2.What is BTC Codebase3.チームの悩み4.データを基にしたふりかえり5.まとめ
3Copyright © 2020 BTC Corporation All Rights Reserved.はじめに
4Copyright © 2020 BTC Corporation All Rights Reserved.Profile• 株式会社ビッグツリーテクノロジー&コンサルティング– DX事業部 2016年新卒入社• 運用保守のプロジェクトにてプロセス自動化、自動テスト、運用メトリクスの可視化、分析を基に、システムの安定稼働を中心に取り組み、その知見を活かして社内開発/データ分析基盤 BTC Codebaseの開発を推進しています。• Java/Python/TDD/SET(Software Engineer in Test)/テスト/自動化• Perfume/アイドル/泳ぐ/Codebase青山 弦太
5Copyright © 2020 BTC Corporation All Rights Reserved.今日話すこと/話さないこと• 話すこと– BTC Codebaseの簡単な紹介– データを使ったふりかえり、カイゼンの事例– ふりかえり、カイゼンを通して得た気づき• 話さないこと– BTC Codebaseの細かい紹介– すごいデータ分析– すごい技術
6Copyright © 2020 BTC Corporation All Rights Reserved.What is BTC Codebase?
7Copyright © 2020 BTC Corporation All Rights Reserved.What is BTC Codebase?プロジェクト運営をデータに基づいて行うように変革したい。そのような想いから、弊社では開発/データ分析基盤のBTC Codebaseを開発しています。
8Copyright © 2020 BTC Corporation All Rights Reserved.BTC Codebase isBTC Codebaseには大きく2つの機能があります。• 自動構築機能• 自動収集/分析機能活動成果物Datalake自動化された開発プロセスユーザBTC Codebase担当KKD(勘・経験・度胸)を基に進める。プロジェクトを跨いだ高度な分析の提供。ランタイム従来のプロジェクト運営 BTC Codebaseを用いたプロジェクト運営プロジェクトの状況や活動を一目で定量的に把握。ファクトベースで進める。
9Copyright © 2020 BTC Corporation All Rights Reserved.チームの悩み
10Copyright © 2020 BTC Corporation All Rights Reserved.質問ですさて、みなさん質問です。
11Copyright © 2020 BTC Corporation All Rights Reserved.質問ですQ.こんな マージリクエスト どう思いますか?
12Copyright © 2020 BTC Corporation All Rights Reserved.質問ですQ.こんな コミット どう思いますか?
13Copyright © 2020 BTC Corporation All Rights Reserved.質問です@t_wadaコードには Howテストコードには Whatコミットログには Whyコードコメントには Why notを書こうという話をしたhttps://twitter.com/t_wada/status/904916106153828352Q.こんな コミット どう思いますか?
14Copyright © 2020 BTC Corporation All Rights Reserved.質問ですL3 工数(人日)DB設計 50非機能要件定義 20データ移行 30…Q.こんな スケジュール どう思いますか?
15Copyright © 2020 BTC Corporation All Rights Reserved.質問ですQ.全部きちんとできてますか…?
16Copyright © 2020 BTC Corporation All Rights Reserved.質問ですQ.やりたいけどやれていないこと、たくさんありませんか?やれること
17Copyright © 2020 BTC Corporation All Rights Reserved.体制若手が中心で、社内基盤開発という取り組みの自由度の高い案件です。• 6人体制(日本3名、オフショアのベトナム3名)• 内5人は30歳以下• 基本はリモートワーク• データ収集の導線開発やAI活用、自動化など…リーダ(青山)メンバーメンバーベトナム日本メンバーメンバーコミュニケータ(※)※コミュニケータ:日本語とベトナム語の両方を理解し、お互いのコミュニケーションの架け橋を行う。もちろん、会話に中にはITに関する言葉も頻出するため、ITの知識も併せ持つ。
18Copyright © 2020 BTC Corporation All Rights Reserved.あふれるやりたいこと✓ TDD/ペアモブ作業/スクラム/DevSecOpsしたい。✓ 手作業なんて悪、全部自動化しなきゃ。✓ 新しいサービスをどんどん使いたい。✓ etc…あれもこれも全部やりたい!
19Copyright © 2020 BTC Corporation All Rights Reserved.あふれるやりたいことあれ、、、全然できてないし余計に大変になってる気がする、、、。✓ TDD/ペアモブ作業/スクラム/DevSecOpsしたい。✓ 手作業なんて悪、全部自動化しなきゃ。✓ 新しいサービスをどんどん使いたい。✓ etc…
20Copyright © 2020 BTC Corporation All Rights Reserved.考えてみた
21Copyright © 2020 BTC Corporation All Rights Reserved.考えてみた手段が目的になっているのでは?• なんでこの取り組みをしていたんだっけ?• そもそもそれは導入する必要があったんだっけ?• 困りごとがないのにプラクティスが先行していない?• 私たちに本当に足りないなものは何なんだろう。
22Copyright © 2020 BTC Corporation All Rights Reserved.✓ Keep✓ Problem✓ Tryふりかえってみた• Keep• Problem• Try
23Copyright © 2020 BTC Corporation All Rights Reserved.✓ Keep✓ Problem✓ Tryふりかえってみたけど難しかったいまいち自信の持てないふりかえり…。• Keep• やり方を変えてみたけどKeepすべきなのか分からない。• Problem• 多分Problemなのかもしれない…どうなんだろう…。• Try• 上手くいかないけど何が原因?• 何をTryすればいいの?• Tryしてみたけど本当によくなったの…?
24Copyright © 2020 BTC Corporation All Rights Reserved.✓ Keep✓ Problem✓ Tryふりかえってみたけど難しかったいまいち自信の持てないふりかえり…。• Keep• やり方を変えてみたけどKeepすべきなのか分からない。• Problem• 多分Problemなのかもしれない…どうなんだろう…。• Try• 「私たちはデータ分析基盤の開発者なのだから、データを基にふりかえろう。」
25Copyright © 2020 BTC Corporation All Rights Reserved.データを基にしたふりかえり
26Copyright © 2020 BTC Corporation All Rights Reserved.データを基にしたふりかえり日毎の会議を可視化。赤がアドホックな会議数。青がスケジュール済み会議数。アドホックな打ち合わせの数が減少し、作業時間が増加!消化ポイントが増えた!Tryを実践!(分析)アドホックな打ち合わせが1日の多くの時間を占めていることを発見。いずれも、課題や想定外の事象に関する相談や確認だった。課題や想定外が多いので、金曜に行っているプランニングを密に行うのはどうか?(Try)金曜に行っているプランニングを長くし、より深ぼって検討をする。(Problem)思っていたよりも作業できる時間が少ない…。
27Copyright © 2020 BTC Corporation All Rights Reserved.発見 仮説取組評価Codebaseを使いデータ、事実を基にふりかえることで「問題の発見」「仮説の導出」「取組の妥当性」「効果の評価」を「自信を持って」行うことができた!データを基にしたふりかえりチームの活動、成果物データ
28Copyright © 2020 BTC Corporation All Rights Reserved.チームカイゼン(その他の事例)発見:特定のドメインに関するチケットは、コメントの数が多いことを発見。仮説:認識合わせが不十分のため、課題や認識齟齬が頻発しているのでは?取組:週に1回作戦会議をしタスク「土台」「意味」「背景」の検査をするフローを追加。評価:往復が減り、スムーズに作業が進むように変革!発見:繰り返されるタスクや定型的なタスクについて、個々人で対応速度に差があることを発見。仮説:暗黙知で作業が早くなっている部分があるのでは?取組:暗黙知を共有すべく、ペア、モブ作業を多く実施するように。評価:ショートカットや効率の良い暗黙知が自然と共有されるようになり、消化ポイントが増加!発見:レビューの指摘数が作業分類で固まっていることを発見。同じことを毎回指摘されることが多い。仮説:セルフレビュー用のチェックリストを設けて日々アップデートすれば、より早く良い質のものが作れるのでは?取組:チェックリストの作成とその更新フローを作成して、セルフレビューするように。評価:レビューでの毎回の指摘が減り、レビュー工数の削減、消化ポイントが増加!
29Copyright © 2020 BTC Corporation All Rights Reserved.ユーザBTC Codebase isBTC Codebaseには大きく2つの機能があります。• 開発する環境を自動生成、あらゆる開発プロセスを自動化させる機能• 開発プロセスの活動、成果物、ランタイム…あらゆる情報を開発者に意識させずに収集、分析する機能活動成果物Datalake自動化された開発プロセスBTC Codebase担当KKD(勘・経験・度胸)を基に進める。プロジェクトを跨いだ高度な分析の提供。ランタイム従来のプロジェクト運営 BTC Codebaseを用いたプロジェクト運営プロジェクトの状況や活動を一目で定量的に把握。ファクトベースで進める。
30Copyright © 2020 BTC Corporation All Rights Reserved.データを基にしたふりかえり曜日毎のMRの動きを可視化。赤がMR作成数。ピンクがMRマージ数。リリース直後の再リリースの回数が減少!Tryを実践!月 火 水 木 金MRの数月 火 水 木 金MRの数(分析)ソースfixする直前にマージリクエストが集中。レビュアーが確認がきちんととれていないんじゃないか。作業が終わったブランチを、後の方まで抱えることが多いことが判明。(Try)MRを均すため、作業が終わったMRをリリースの直前まで抱えるのではなく、適宜レビューに回す。(Problem)リリースの後に問題が発覚し、再リリースすることが多い!
31Copyright © 2020 BTC Corporation All Rights Reserved.社内カイゼン(その他の事例)課題:レビュー待ち時間が長く、ボトルネックになることが多い。発見:プッシュ/マージリクエストを送る時間が夜の18時以降(帰る直前)に偏っていること発見。仮説:帰る直前にまとめてではなく、適宜送るようにすればレビューが固まらずにボトルネックが解消されるのでは?取組:帰る直前にまとめてではなく、適宜送るように変更。評価:ボトルネックが解消し、チケット完了までの時間が安定!課題:イテレーション終了時に予定されていたタスクの多くが完了されていないことが続いた。発見:レビューが予定されたタイミングで終わらないことが多く、長大なマージリクエストが送られていたことを発見。仮説:MRのサイズが小さくなれば適切なタイミングで適切なレビューができるのでは?取組:マージリクエストの数を倍にするように変更。評価:イテレーション終了時に予定通りにデリバリされる他に、消化ポイントも数倍に!※このプロジェクトでは、課題ありきで細かい分析をデータを用いて行っていきました。
32Copyright © 2020 BTC Corporation All Rights Reserved.まとめ
33Copyright © 2020 BTC Corporation All Rights Reserved.今日話すこと/話さないこと• 話すこと– BTC Codebaseの簡単な紹介– データを使ったふりかえり、カイゼンの事例– ふりかえり、カイゼンを通して得た気づき• 話さないこと– BTC Codebaseの細かい紹介– すごいデータ分析– すごい技術
34Copyright © 2020 BTC Corporation All Rights Reserved.まとめ• データは皆に自信をくれる• データによって革新的な発見をすることもあるが、それはそう多くはない。• 「そんなこと、データを取る前から知ってたよ。」と言われても、仮説を自信に変えてくれるだけで、大きな価値がある。
35Copyright © 2020 BTC Corporation All Rights Reserved.まとめ• データは皆に自信をくれる• データによって革新的な発見をすることもあるが、それはそう多くはない。• 「そんなこと、データを取る前から知ってたよ。」と言われても、仮説を自信に変えてくれるだけで、大きな価値がある。• 計測無くしてカイゼン無し• データは、カイゼンすべき点、カイゼンの効果を目に見える形で教えてくれる。• データを基に行うことで、不安になりながらではなく、自信をもってカイゼンすることが出来る。
36Copyright © 2020 BTC Corporation All Rights Reserved.まとめ• データは皆に自信をくれる• データによって革新的な発見をすることもあるが、それはそう多くはない。• 「そんなこと、データを取る前から知ってたよ。」と言われても、仮説を自信に変えてくれるだけで、大きな価値がある。• 計測無くしてカイゼン無し• データは、カイゼンすべき点、カイゼンの効果を目に見える形で教えてくれる。• データを基に行うことで、不安になりながらではなく、自信をもってカイゼンすることが出来る。• カイゼンは一歩づつ• 一足飛びに全部カイゼンをするのは大変。• 一歩づつ徐々にカイゼンをすることで、積み上げると大きなカイゼンになっていた。(ベイビーステップ)
37Copyright © 2020 BTC Corporation All Rights Reserved.ご清聴ありがとうございました