garbagetown

個人の日記です

チーム開発実践入門を頂きました

著者の池田さんより、レビューを担当させて頂いた書籍「チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド」 を頂きました。ありがとうございます。

チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド (WEB+DB PRESS plus)

チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド (WEB+DB PRESS plus)

チーム開発の現場

本書の第一章に書かれている通り、複数人でシステムを開発する場合に気を付けなければならない課題が山のように存在します。リソース管理、課題管理、報告・連絡・相談、リリース管理などなど、タスクの八割以上はこれら課題に関連するものと言ってもいいと感じるほどです。

また、ひとりで開発する場合でも、過去の自分は赤の他人なので、本書に書かれている内容はやはりとても重要なものということになります。

これら課題の特徴として、以下のような点が挙げられると思います。

  • 最終的な成果物、納品物には直接寄与しない(ことが多い)
  • 手を当てなくても(超短期的には)問題にならない(ように見える)
  • 手間が掛かる、面倒くさい

プログラムのソースコードは成果物そのものであり、ソースコードを書かなければシステムは動きません。そして、あなたがエンジニアであればソースコードを書くのは楽しい作業のはずです。

一方で、例えばリソース管理や課題管理に使用する台帳はどうでしょう。請負開発であれば納品物として求められることもありますが、サービス開発であれば売上に直接寄与するものではありませんし、これら台帳を管理せずとも、とりあえずシステムは動きます。また、これらの台帳はマイクロソフトエクセルで作成されていることが多く、拡張子を見るのも嫌だという方が多いのではないでしょうか。

このような特徴から、これら課題はついつい後回しにされ、数ヶ月後に確実に発生する大炎上の火種となります。

本書の意義

やらなければならないけれど面倒くさいということは、そこに商機があるということなので、これらを解決するツールが有償無償を問わず多数存在しますし、既に数多くの書籍が出版されています。

それでは本書の意義はどこにあるのでしょう。以下に 著者の池田さんのブログ から引用します。

むしろのこの『チーム開発実践入門』という本は、『GitHub実践入門』、『Jenkins実践入門』、『JUnit実践入門』といった書籍の間をつなぐミッシングリンクのような本です。

この本で概要をつかみ、さらに個別の書籍を買って理解を深めることで、バラバラの知識が一つにつながることと思います。

これまでの書籍は、個々のツールを深く掘り下げたリファレンス的な内容であり、なぜそれが必要なのか、いつそれが役に立つのかについては、読者が既に理解している前提に立ったものでした。

しかし、実際の現場には日々の課題に翻弄され、これらのツールの存在すら知らずに疲弊しているエンジニアやマネージャがまだまだ数多く存在します。本書はその名の通り、そのようなエンジニアやマネージャを対象とした「実践的なチーム開発の入門書」と位置付けることができると思います。

特に第二章は炎上案件に苦しんだ経験のある方であれば、読んでいて胃が痛くなるような現実味のあるケーススタディ形式で書かれており、この時期であれば新人教育などにも使い易い構成となっています。

最後に

昨今の景気回復気配と併せて、システム開発の現場も活気を取り戻しているように感じますが、それと比例するように炎上案件の数も回復してしまっているように感じます。

案件が炎上してから消火に当たっていては完全に後手であり、スピード感がますます重要視される昨今においては手痛い失態と考えなければなりません。

諸説あるようですが、老子の格言として「授人以魚不如授人以漁」というものが知られています。「人に魚を与えれば一日で食べてしまうが、釣りを教えれば一生食べていける」という意味だそうです。

案件が炎上してから慌ててリソースを追加するのは「魚を与える」対応であり、対処療法に過ぎません。必ずまた同じ過ちをくり返します。

本書はまさに「釣りを教える」書籍です。本書を読み、考えられる問題に先手を打つことで、限りあるリソースを有意義に活用するよう、チーム全体が強く意識していくべきだと思います。