Ruby要求仕様書

私も2年位前に一度、オフショアー開発でRubyを使った要求定義を実践したことがあるが、いくつかの理由で中止した。

その中で最も大きな理由は、Rubyは単なる表現手法の1つでしかなく、要求定義がきちんと出来ていなければ納品物の品質向上にはつながらなかったという点だ。また私がRubyおよび、要件定義に精通していなかったこともあった。筆者の牛尾氏も書いているが、Rubyおよびオブジェクト指向な考えがスキルとしてなければ、Rubyを使ったところでわかりやすいどころか、意図が全く通じない現象が起きてしまう。私の場合も動作可能にしようとすると、どうしてもコードがわかりにくくなったし、動作可能かどうかを問題にしないとより抽象的なコードになった記憶がある。動作可能でかつ美しいコードを書くには、OOな考え方とRubyイズムの両者が要求される。

最近、私はRuby (含むRails)よりもむしろRSpecの定義を渡す方がいいんじゃないかと考えている。つまりRSpecで受入試験仕様書を書く感じである。現在はExcelに受入試験をどんどん書き入れ、そのテストをオンサイトエンジニアに実施させている(組み込みのため実機の関係上、オンサイトでしかテスト出来ないケースがある)。もしBDDを我々の開発言語で容易に実現できれば、受入試験の自動化も夢ではなくなる。またRSpecだと追記がしやすい良さがある。思い立ったらどんどんコードを増やしていける。それをアジャイルに管理していけば、オフショアのアジャイル開発にもつながるのではないかと考えている。是非、近々実践してみたい。

だがしかし最初にも書いたように、これらは表現方法の違いだけで、多少の効率化や通じやすさに違いはあれど、発注側の要件定義のスキルに大きく依存するのではないだろうか。