【書評】アジャイルサムライ――達人開発者への道

よく耳にするアジャイルな開発とは何か、というのを理解したかったので、アジャイルサムライを読んだ。

shop.ohmsha.co.jp

どんな本か

アジャイルな(agile)開発とは、直訳すると「敏捷な」「すばしっこい」「活発な」開発であり、特にソフトウェア開発の文脈では迅速かつ適応的にソフトウェア開発を行う軽量な開発手法群の総称である。

いくつかのよく知られた実践方法が人口に膾炙しがちだが、その本質は以下のアジャイルマニフェストにある。
アジャイルソフトウェア開発宣言
アジャイル宣言の背後にある原則

本書は、上記アジャイルマニフェストに則ったアジャイルな開発がどういう問題意識のもとに生じたのかや、アジャイルな開発の全体像及びプラクティスについて、ざっくり語ったものである。文体が非常にフランクでとっつきやすく、アジャイルな開発の入門書として読みやすい。

学んだこと

  • アジャイルな開発では動くソフトウェアこそが進捗の最も重要な尺度である、と考える。
  • 開発はイテレーティブに進む。各イテレーションで分析、設計、実装、テストが密に連携する。
  • アジャイルな開発には「顧客」が存在し、あらゆる要求の真実の源、優先順位づけ、何を作らないかを決める存在となる。そして顧客を直に巻き込めば巻き込むほど、プロダクトは良くなっていく。
  • チームで成果責任を果たす。役割分担をきっちり区別しない。
  • QCDを固定し、スコープを変動させる。プロジェクトの進捗に合わせ何を作らないかを決めていく必要がある。
  • 決して簡単ではない。万人がこのような働き方を好むわけではない。

感想

アジャイルな開発を実践するにあたって近年ではDon't "Do" Agile. Be Agile.というフレーズがよく聞かれる。

www.slideshare.net

アジャイルな」という言葉の広まりとともに、エクストリームプログラミングの手法も周知されていった。しかし重要なのは背景となる原理原則あるいは思いである。結局のところプロジェクトは常に生ものであり、ひとつとして同じプロジェクトがない以上、自分で考える必要があるだろう。もちろん、知識として数ある手法を覚えておくことは必要だ。

以下、完全に余談だが、この本の最初のページには以下のようなことが書かれている。

君がこの本を手に取ったことに祝福を。おめでとう。というのも、君にはすごく大事な2つのことが備わってるってことだからだ。

  1. 君は学ぶことが心から好きだ。
  2. 君はソフトウェアのことを大切に思っている。

このどちちらもが大切なんだ。君が学びたいという気持ちを抱かなければ、私との旅がこうして幕を開けようとすることもなかった。君がソフトウェアのことなんて気にしない人物だったら、私たちの世界は今よりも暮らしづらいものになっていただろう。

この本を購入した当時の自分は孤独だったが、この言葉には勇気をもらうことができてよかったと思う。