Slide 1

Slide 1 text

Copyright coconala Inc. All Rights Reserved. 開発生産性運用上の課題と 上流工程まで視野に入れた改善の取り組み 2024.3.25 Masatoshi Murakami ココナラにおける開発生産性について

Slide 2

Slide 2 text

Copyright coconala Inc. All Rights Reserved. 自己紹介 2 村上 正敏 (むーさん) 株式会社ココナラ 執行役員 VP of Engineering バックエンドエンジニアとして、Web系ス タートアップやフリーランスを複数経験し た後、2019年にココナラに参画 現在は、約75名のエンジニア組織を管轄 し、技術面〜組織面まで開発全般の方針策 定や課題解決を担当 趣味はロードバイクとバイク

Slide 3

Slide 3 text

Copyright coconala Inc. All Rights Reserved. 事業紹介 3

Slide 4

Slide 4 text

Copyright coconala Inc. All Rights Reserved. ココナラ(スキルマーケット)での取り扱いカテゴリ 4 ユーザーストーリーも YouTubeで御覧ください

Slide 5

Slide 5 text

Copyright coconala Inc. All Rights Reserved. ユーザー起点で、最大最速の価値を届ける 5 ユーザーを招いてのリアル/オンラインイベントを数多く実施。 直接会ってプロダクトへの要望や感謝の声をいただきつつ、日々プロダクト改善を推進。 ユーザーイベント 年間実施数 19 回

Slide 6

Slide 6 text

Copyright coconala Inc. All Rights Reserved. 開発組織と開発体制について 6

Slide 7

Slide 7 text

Copyright coconala Inc. All Rights Reserved. エンジニア組織の概要 7 エンジニア数 75名程度 EM数(評価者) 8名

Slide 8

Slide 8 text

Copyright coconala Inc. All Rights Reserved. プロダクト開発体制 8 PdM部署 デザイナー部署 エンジニア部署 事業A 事業B マトリクス型組織(主は職能軸) プロジェクトチーム

Slide 9

Slide 9 text

Copyright coconala Inc. All Rights Reserved. フロー効率?リソース効率? 9 フロー効率 (リードタイムの短さ) リソース効率 (稼働率の高さ) High Low Low High リソース効率を高めつつ、フローの無駄を改善中

Slide 10

Slide 10 text

Copyright coconala Inc. All Rights Reserved. リリースの頻度 10 リリースの分類 リリースの頻度 障害、軽微な修正等 即日 問い合わせ対応 or 機能小改善 (1人でこなせるレベル) 数日 単一機能に関する機能追加 数週間 複数機能にまたがる機能追加 数ヶ月 即日レベルのものから数ヶ月レベルのものまで多様

Slide 11

Slide 11 text

Copyright coconala Inc. All Rights Reserved. リリースの粒度 11 リリースを小さくしたいが状況によっては限界がある 機能が未完結になってしまうケース (整合性が崩れる) 非機能要件が後回しされてしまうケース (最悪本番で事故る) サービス 出品画面 サービス 詳細画面 サービス 検索画面 例)出品時の入力項目を追加したい ・・・ ● 複数画面(機能)に影響がある状況 ● 一部画面だけを対応すると、機能が中途 半端でUI/UX的によくない ● ユーザーも混乱するため、細かく分けて 段階的リリースするのは難しい 影響 影響 ● セキュリティ面 ○ 予期せぬ情報漏洩等が発生しないか ● パフォーマンス面 ○ 負荷が増加し、全体的にレスポンス タイムが悪化しないか ● インフラコスト面 ○ 想定以上のコストが消化されないか ● 他にも以下などの考慮が漏れがち ○ SEO影響面 ○ 業務生産性面 ○ KPI集計・分析面 ○ 会計影響面   等

Slide 12

Slide 12 text

Copyright coconala Inc. All Rights Reserved. 開発生産性との紐付き(課題感) 12

Slide 13

Slide 13 text

Copyright coconala Inc. All Rights Reserved. そもそもなぜ開発生産性が重要か 13 開発生産性を高めれば、同人数でも多くの価値を提供できる(RoI高) 生産性が高い 開発組織 生産性が低い 開発組織 リリース リリース リリース リリース リリース リリース リリース リリース リリース リリース $ $ $ $ $ 価値の大きさ 提供頻度 開発生産性の高さ ※リリースすると価値につながる前提において

Slide 14

Slide 14 text

Copyright coconala Inc. All Rights Reserved. 開発生産性をどのように計測するのがいいか 14 巷の開発生産性指標/ツールを使って可視化している Four Keys SPACE 従業員満足度と幸福 パフォーマンス アクティビティ コミュニケーションと コラボレーション 効率性とフロー デプロイ頻度 リードタイム MTTR 変更障害率 例) Four KeysはFindy Team+ で可視化 参考画像 例) Grafanaでさまざまな アクティビティを可視化

Slide 15

Slide 15 text

Copyright coconala Inc. All Rights Reserved. 15 参考にはなるが、どこか体感値とずれる・・・・ 🤔

Slide 16

Slide 16 text

Copyright coconala Inc. All Rights Reserved. 現状の開発生産性指標の課題感 16 Githubが情報源のため、そこにない情報は可視化できない Githubの情報しか 考慮できない ソースコードやチケットなどはOK。 でもドキュメント作成やMTGなどは??? 情報源 ダッシュボード化

Slide 17

Slide 17 text

Copyright coconala Inc. All Rights Reserved. 開発生産性はエンジニアだけが意識するものなのか? 17 巷の開発生産性スコープ 体感値の開発生産性のスコープ (開発着手してからユーザーに機能提供するまでのリードタイム) 開発生産性に企画・設計工程が含まれていないと認識がずれる 企画 設計 実装 QA/リリース        大きい規模になるほど企画・設計工程の工数が無視できなくなる        実際、企画・設計工程起因によるリリース遅延の影響が大きかった 体感値との差分 ポイント

Slide 18

Slide 18 text

Copyright coconala Inc. All Rights Reserved. 具体事例(上流工程起因の開発生産性低下の一例) 18 例)仕様FIXしきらず、開発後半で仕様変更による実装手戻りが発生 企画 設計 実装 QA/リリース 企画 設計 実装 QA/リリース 手戻り 手戻り 変更発生 ・・・ 理想 現実 例)動作するものを見たら イメージと違ってた    根本原因は上流工程だが、下流工程だけ見てると実装遅延と誤解することがある ポイント

Slide 19

Slide 19 text

Copyright coconala Inc. All Rights Reserved. 19 開発生産性向上 = 実装時間の短縮 ・・・だけではないよねという気付き 😇

Slide 20

Slide 20 text

Copyright coconala Inc. All Rights Reserved. 組織長目線での開発生産性 20

Slide 21

Slide 21 text

Copyright coconala Inc. All Rights Reserved. 開発全工程をモニタリング 21 可視化したい開発生産性のスコープ (開発着手してからユーザーに機能提供するまでのリードタイム) 実装・QAだけでなく、企画・設計まで含めて可視化する必要がある 企画 設計 実装 QA/リリース 経営サイドと接続する際もこのスコープで会話すると認識がずれにくい        人件費は開発全工程でかかるため、開発のRoIを最大化したい経営層と視点が一致する ポイント

Slide 22

Slide 22 text

Copyright coconala Inc. All Rights Reserved. 開発生産性可視化の運用イメージ(現在進行系で運用を構築中) 22 計画と実績を計測し、開発プロセスの問題点を浮き彫りにしていく 企画 設計 実装 QA/リリース 企画(計画) ◯人日 企画(実績)◯人日 設計(計画) ◯人日 実装(計画) ◯人日 実装(実績) ◯人日 QA/リリース(計画) QA/リリース(実績) 設計(実績) ◯人日 計画とずれた部分 →タスクレベルで記録し、その差分については原因分析(事後)もセットで実施 例)他業務により着手が遅れた 例)調整の段取りが悪くリードタイムが長引いた 例)仕様考慮漏れが多く追加検討が増えた 例)企画の追加分設計のやり直しが発生した 例)非機能要件の考慮が不足していて追加検討した 例)設計変更の影響を受けて実装を作り直した 例)QA中に不具合がでてバグを修正した 例)設計が固まっておらず テストケース作成着手が遅れた 例)QA時不具合のや り直しが多かった

Slide 23

Slide 23 text

Copyright coconala Inc. All Rights Reserved. 開発生産性運用のイメージ 23 正直地味で大変。ただ全工程同じ方法で可視化できるのがメリット 各工程タスクレベルで計画・実績を記録する 計画と実績の差分を原因別に分類し分析に活かす 計画と実績の差分 について事後分析

Slide 24

Slide 24 text

Copyright coconala Inc. All Rights Reserved. 生産性向上の取り組みが実際に組織にどのようなインパクトを与えているか 24 やり始めたばかりなので定量的な効果はこれから ● 上流工程のどのプロセスがボトルネックなのか可視化できるようになる ● エンジニア以外の人たちが開発生産性をモニタリングし改善するようになる 定性的に見え始めている効果 ● タスクベースのFACTがあるため、関係者間での認識のずれが起きにくい ● 記録が都度蓄積されており、この情報自体がプロジェクト運用ノウハウになる

Slide 25

Slide 25 text

Copyright coconala Inc. All Rights Reserved. 開発生産性向上を通じた今後の期待 25

Slide 26

Slide 26 text

Copyright coconala Inc. All Rights Reserved. Grafana等で ダッシュボード化 開発版バリューストリームマッピング(VSM)*の可視化と定量化 26 * バリューストリームマッピング:リーンソフトウェア開発の22の思考ツール 待ち時間の可視化によるリードタイム長期化箇所の特定と対策検討 企画 設計 実装 QA/リリース プロセスタイム (作業時間) リードタイム (提供時間) 5h 4h 8h 3h 10h 6h 10h 19h 11h 7h 8h 13h 15h 26h 10h 18h 20h 14h 18h 23h 25h 20h 32h 25h 18h 5h 5h 17h 21h 10h 13h 29h       原因と照らし合わせて「リードタイム短縮」に向けた対策を検討        対策例:順番見直し、作業自動化、システム面の見直し、組織面の見直し等 ポイント 原因 原因 原因 原因 改善 改善 改善 改善 差分は待ち時間 だったりする

Slide 27

Slide 27 text

Copyright coconala Inc. All Rights Reserved. ダッシュボード化により、各自が改善を推進 頑張って手動で可視化し、改善をマネジメント 開発生産性運用の仕組み化による権限移譲とマネジメント負荷の軽減 27 PM 開発メンバー PM 開発メンバー 可視化運用を仕組み化し、各自が定量的に改善に取り組めるように Before After

Slide 28

Slide 28 text

Copyright coconala Inc. All Rights Reserved. 28 開発プロセス自体をブラッシュアップして 効率的な開発生産性の可視化ができるように 😀

Slide 29

Slide 29 text

Copyright coconala Inc. All Rights Reserved. 29 ココナラでは絶賛エンジニア募集中です まずはカジュアル面談からでもOK 詳しくはエンジニア採用ページをご確認ください https://coconala.co.jp/recruit/engineer/ さいごに

Slide 30

Slide 30 text

Copyright coconala Inc. All Rights Reserved. 30