勘と経験と読経

略すとKKD。ソフトウェア開発やITプロジェクトマネジメントに関するあれこれ。

「アジャイルソフトウェア要求」を読んだけれど

書籍「アジャイルソフトウェア要求」の読書メモ。いわゆるエンタープライズアジャイルに関する方法論の一つであるSAFe(Scaled Agile Framework)の解説書。ソフトウェア要求の本ではあるが、事業戦略からデリバリーまでの全ての範囲を含んでいるというのが肝であり、興味深い点である。

事業会社向け

エンタープライズアジャイルというキーワードだと、本書と別にDAD(Disciplined Agile Delivery)もある。こちらも今読んでいるところなのだけれど、本書と比較すると、SAFeは事業会社向けの方法論であり、DADはSIer向けの方法論というように思えてくる。

事業会社の視点で見れば、興味があるのは「要求」をどう「デリバリーするか」という点に尽きる。だから「アジャイルソフトウェア要求」ではとにかく要求をどのように管理し、要求のままデリバリーするかについて論じているように読めた。

要求をできるだけ原型のママで管理する

ウォーターフォール型の開発プロセスだと要求は工程の途中から仕様化されていく。要求と仕様のトレーサビリティの管理が肝で、これをあの手この手でマネジメントしていく必要がある。要件が変更されればそれに紐つく仕様が変更されるわけでかなり複雑なことになる。

アジャイル型の開発プロセスでは、できる限り要求はそのまま管理する。そうすると変更も元要求に対して適用すればよいわけでシンプルである。

とはいえ、大規模なソフトウェアでは要求も膨大になり管理が難しい。SAFeでは次のような構造で管理するようにしていて、これは極めて現実的だと感じた。
http://www.scaledagileframework.com/jp/wp-content/uploads/2013/01/AgileSoftwareRequirementModelFig1.png

  • テストの類もすべて要求に直接紐つく。
  • また非機能要求もぜんぶ要求の一種として管理する。

このメタモデルは、つまみ食いの価値があると思っている。

どう組み込むか

とはいえ、SAFeを組み込むというのはなかなかに難しそうだ。なにぶん扱う範囲が事業戦略からデリバリーまでである。これを実際のビジネスに導入する方法がちょっとイメージしにくい。

  • トップダウンでの導入はまず無理そうな印象。まずはプロジェクト単位から初めて、プログラム単位、事業単位と拡大していくのが筋のような気がする。
  • トップダウンボトムアップの両面から攻めるという方法もあるかもしれない。フィーチャーあたりの中間層は従来通りの年度予算モデルで管理していくイメージ。これも安易かな?

参考

残念ながら参加できなかったのだけど、SAFeとDADの両方をいっぺんに扱った勉強会があり、そのレポートが公開されている。

本記事も参考にした。やはりDADとSAFeはスコープが違うという点を確認。