SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2023 Summer セッションレポート(AD)

開発生産性を計測し、技術的負債の返済ができるチームへ──助太刀・開発プロセス改善の軌跡

【B-6】開発生産性を計測し、技術的負債返済ができる開発体制を作ったお話

  • このエントリーをはてなブックマークに追加

4keysの測定でわかった、アプリチームのタスク粒度の課題

 4keysのデプロイ頻度とリードタイムは、製品の製作開始からユーザーに提供するまでの指標である。障害率や復元率、未復元時間はリリース後の製品の安定性や品質を示す指標だ。短いリードタイムは、デプロイを早く、そして頻繁にできることを意味する。一方で、デプロイ頻度を増やすためには、小さなタスクを速やかに開発する必要がある。これらの指標は相関関係が存在する。

 月澤氏は「助太刀の場合、リードタイムが特に長かった」と振り返る。リードタイムを短縮すると、細かいプルリクエストを作成し小規模なリリースが可能となる。結果として、サービスのバグ発生や障害が一定の範囲に収まると考えた。

 しかし、改善前に実際の状態を知るため、特定のツールを使用して状況を把握した。3月の1カ月間を対象に分析したところ、コミットからマージまでの時間が非常に長かった。プルリクエストが提出されても、不要であると判断されるものや、放置されているものが多く存在した。本来、不要なタスクは削減し、ユーザーに価値を提供するタスクに時間を割くべきである。無駄なものや、放置されているものを確認し、改善の方向性を模索した。

2023年3月の計測結果。1つのプルリクエストに対して238時間かかっている
2023年3月の計測結果。1つのプルリクエストに対して238時間かかっている

 4keysを計測すると、バックエンドチームにおいては、ユニットテストを書く文化がしっかりと醸成されているため、リードタイムは短縮され、一貫したコードの書き方がなされている一方で、iOS/Androidのアプリチームはテストが不十分であることがわかった。アプリチームにはテストを整備するためのリアーキテクチャやリファクタリングが必要だった。

 アプリチームの現場の課題に、タスクの割り当てがあった。プルリクエストやタスクの粒度が大きいため、実装やレビューに時間がかかり、すべてのレビューができないため品質が低下するという状況だった。そのため、タスクの粒度を小さくする方針を採った。最も重要なのはレビューの単位や機能の最小単位の最適化である。その単位をチーム内での議論を通じて決定し、その粒度での取り組みを始めた。

 アプリチームのこれまでのアプローチでは、「バックエンドAPIの呼び出し部分」「フロントのロジック」そして「UIの表現」の3要素が1つの機能として扱われていた。改善後は3つのレイヤーごとにプロジェクトを切り分ける方法を採用した。チームはGitHubを利用しているが、プルリクエストにおいて変更箇所が一定のサイズを超えた場合に警告が出る機能や、特定の期間でマージされていないプルリクエストをSlackで通知する機能を導入した。毎週金曜日に振り返りの時間が設定され、未完了タスクの原因やタスク分割の反省などが行われている。

プルリクエストの粒度を小さくする考えや仕組みを導入
プルリクエストの粒度を小さくする考えや仕組みを導入

計測によって生じたエンジニアの心理的ハードルを対話で解消

 4keysの計測を行った際、エンジニアの心理的ハードルが現れた。これには、自分のプルリクエストの進行速度が他者より遅いことへの過度な意識や、自分たちが監視されていると感じることなどが挙げられる。実際、エンジニアはコミットの粒度やタイミングが異なり、すべてのアウトプットが同じ速度でないため、それが他者に比べて遅いと認識される可能性がある。この問題への対策として、チームのエンジニアメンバーに対して丁寧な説明を行った。

 出社する体制のため、対面でしっかりコミュニケーションしたのだ。月澤氏は「4Keysはあくまで指標であり、健康診断的に使うもの。助太刀の最終的な目的は建設業のユーザーに価値を返すことです。背景や目的を明確に説明し、チームメンバーが納得する形で取り組むことが大切」と語る。

 ストーリーポイントを小さくする取り組みにおいて、その粒度の違いによる課題が発生した。短時間で終了するタスクと長時間を要するタスクが同じストーリーポイントを持つことで、タスクの粒度にばらつきが生じたのだ。これを解決するために、チームはストーリーポイントの基準を定期的に見直し、振り返りの際に適切なタスクの調整を行っている。

 一方、リファクタリングやライブラリのアップデートなど、一括で変更が必要なタスクに関しては、4Keysの指標によって細分化することが困難であることがわかった。このような場合には、そのタスクを除外した。結果として、アプリチームではタスクの処理速度の向上といった成果が得られた。

2023年6月の計測結果。3月と比べてマージされるまでの時間が200時間以上削減された
2023年6月の計測結果。3月と比べてマージされるまでの時間が200時間以上削減された

 月澤氏は「このプロセスを通じて、アプリのコードやアーキテクチャについての再評価の必要性を感じるようになりました。特にコードのリファクタリングや設計の見直しを行うことで、現在の依存関係や課題をより明確に把握することができ、やって良かったと思いました」とコメントした。

次のページ
開発プロセスの効率化によって得られた時間を技術負債の解消に充てる

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Developers Summit 2023 Summer セッションレポート連載記事一覧

もっと読む

この記事の著者

森 英信(モリ ヒデノブ)

就職情報誌やMac雑誌の編集業務、モバイルコンテンツ制作会社勤務を経て、2005年に編集プロダクション業務やWebシステム開発事業を展開する会社・アンジーを創業。編集プロダクション業務においては、IT・HR関連の事例取材に加え、英語での海外スタートアップ取材などを手がける。独自開発のAI文字起こし・...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

丸毛 透(マルモ トオル)

インタビュー(人物)、ポートレート、商品撮影、料理写真をWeb雑誌中心に活動。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

提供:株式会社助太刀

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/18178 2023/10/23 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング