虎の穴開発室ブログ

虎の穴ラボ株式会社所属のエンジニアが書く技術ブログです

MENU

「アジャイルプラクティスガイドブック」を読んだ感想 #虎の穴ラボ Advent Calendar 2023

  • 本記事は虎の穴ラボ Advent Calendar 2023の9日目の記事です。(予約投稿)
  • 昨日はiwadyさんの「polarsとStreamlitでWebのデモアプリ開発を効率化しよう!」でした。
  • 次回は後藤さんの「Tween24.jsでアニメーションを実装してみたので解説」です。

読んだ理由

こんにちは。虎の穴ラボのよしだです。
私が開発に携わっているFantiaの開発メンバーは、5月に入社した私を含めてここ一年で数名の開発者が増えており、開発チーム自体も1つから徐々に分割され始めています。
システム開発ではよく、「人が増えても速くならない」*1ということが言われていますが、保守開発においても漠然とではありますがそう感じる場面がありました。
Fantia開発ではスクラムなどの決まったアジャイルのプラクティスは採用していないものの、今年発売されたアジャイルプラクティスガイドブックではどのような方法が紹介されているのかが知りたくなり、読んでみました。

基本情報

タイトル アジャイルプラクティスガイドブック チームで成果を出すための開発技術の実践知
著作者名 常松 祐一
監修者名 川口 恭伸
監修者名 松元 健
ページ数 328ページ
ISBN 9784798176826
発売日 2023/07/20

https://www.shoeisha.co.jp/book/detail/9784798176826

書籍の目次

目次

第1章 アジャイルな開発を支えるプラクティス
1.1 プラクティスの実践
1.2 高速に石橋を叩いて渡る
1.3 広く知られたアジャイル開発手法とプラクティス
1.4 プラクティス理解に役立つ考え方

第2章 「実装」で活用できるプラクティス
2.1 実装方針
2.2 ブランチ戦略
2.3 コミット
2.4 コードレビュー
2.5 協働作業
2.6 テスト
2.7 長期的な開発/運用ができるソースコード

第3章 「CI/CD」で活用できるプラクティス
3.1 継続的インテグレーション
3.2 継続的デリバリー
3.3 継続的テスト

第4章 「運用」で活用できるプラクティス
4.1 デプロイ/リリース
4.2 モニタリング
4.3 ドキュメント

第5章 「認識合わせ」で活用できるプラクティス
5.1 関係者との認識合わせ
5.2 開発内での認識合わせ
5.3 計画の継続的な見直し

第6章 「チーム連携」で活用できるプラクティス
6.1 チームの基本単位
6.2 属人化の解消
6.3 パフォーマンスの測定
6.4 円滑なコミュニケーションのアイデア
6.5 意識を揃えるワークショップ

全体的な感想

昨今の開発に関するプラクティスが良い塩梅で詰め込まれており、全体を俯瞰するのにピッタリな本だと感じました。
その分、1つ1つの詳しいやり方までは踏み込んでいないものもありますが、全体像としてチームに共有した上でディスカッションできそうです。
また気になったプラクティスは、章末に記載されているリファレンスを参照して更に深掘りすることができます。

副題は「チームで成果を出すための開発技術の実践知」であり、技術プラクティスの中でも個人での学習や個人開発では習得しにくい、チーム開発における協働の方法を体系的に学べる点は、他の書籍ではあまり見られない特徴だと思います。

はじめに&1章

プラクティスが詰め込まれた本を読むと、無理矢理に自身のチーム・組織に当てはめようとしてしまい、導入自体が目的化してしまうことがあります。(いわゆる中身の伴わないカーゴカルト的になってしまったプラクティス)
それに対して、本書の1章の前半ではどういった目的・背景でプラクティスが利用されているのかを説明しています。
特に書籍の最初の1.1と1.2では、以下のような内容が書かれています。

  • 素早く実験し経験から学んで継続的に改善を繰り返すアジャイル開発において、レフトウィングである「チーム環境の改善(プロセスやチーム運営に関するプラクティス)」とライトウィングである「技術/ツール(技術プラクティス)」の両方に取り組んでいくことが必要。*2

  • 動いているシステムを壊さずに、高速に、着実に、製品をインクリメントしていく(本書では高速に石橋を叩いて渡るというタイトル)

技術とチーム運営や組織のどちらも大事で、バランスよく目的を考えながら学習し、取り入れていくのが重要というのが序盤で語られているのはとても良かったです。

全体を通して読み進めやすかったのですが、以下の点も本書が理解しやすいポイントになっています。

  • チーム開発での課題や困りごとがストーリーで説明されている。
  • 各プラクティスが「出典のあるもの」「慣習的に知られているもの」「筆者の経験に基づいて提案されているもの」のラベルが付けられている。
  • 10人の著名な実践者のコラムがあり、体験ベースでプラクティスの大事さを伝えている。(また、本書自体も20人近くのアジャイル開発実践者の方のレビューを受けているそうです)

YouTubeには著者・監修者の方のトークもありましたので、どういった思いを込めて書いたのかが気になった方はご覧ください。

2~4章 技術的なプラクティス

本書のこの部分では、技術的なプラクティスに焦点を当てていますが、特定のプログラミング言語やツールに依存する内容ではなく、チームで開発を進める上でよく遭遇する問題について解説しています。
具体的には、ブランチ戦略やコードレビューの進め方、心得といった内容が主に取り上げられています。
また、「高速に石橋を叩いて渡る」ために、正常に動作している状態を保ちつつ小さなステップで進化させることを重視した実装やデリバリーのプラクティスも多く紹介されています。

運用の章ではメトリクス/ログ/トレースが取り上げられていたりと、今サービスが正常に動いていることを知り、開発と運用が一体となってサービスを改善するための方法が取り上げられています。

5~6章 プロセスやチーム運営に関するプラクティス

5章のタイトルは「「認識合わせ」で活用できるプラクティス」であり、ステークホルダーやチームメンバーとの認識合わせが欠かせないシステム開発ならではの章だと思います。
思い込みや認識のズレは、正直なところなかなか上手く対処できない問題なので、自分の考えていることや期待値を少しずつでも積極的に表に出していくことが重要そうです。

6章の中では、開発生産性の指標として用いられることが多くなってきたFour Keys Metricsに触れられているほか、リモートワークに関する言及もあり、最近の事情が反映されていると感じました。
パフォーマンスの測定やチームでの働き方は、目的を共有して実施しないとすぐに形骸化したり数字だけハックされるので、チームで何を見てどう進めていくかはプラクティス導入の前に議論が必要そうです。

終わりに

サービスや機能を世に早く出し、安定して稼働させ続けるためには、チームでの協力は欠かせません。
本書には様々なプラクティスがコンパクトに詰め込まれています。
自分たちのチームの課題と照らし合わせて何が足りていないのかを会話しながら、成果を出すためのプラクティスを探し出すのに本書を活用してみてはいかがでしょうか。

採用情報

虎の穴ラボでは一緒に働く仲間を募集中です!
この記事を読んで、興味を持っていただけた方はぜひ弊社の採用情報をご覧ください。
toranoana-lab.co.jp

*1:古くは半世紀近く前の人月の神話でブルックスの法則として、今年同タイトルの本も発売されました

*2:アジャイルの「ライトウィング」と「レフトウィング」