Rubyを用いた開発手法「動く仕様書」とは?~日立ソリューションズ・野崎氏
RubyWorld Conference 2011講演レポート
日立ソリューションズの野崎康行氏 |
島根県松江市で9月5日から6日に開催されたプログラミング言語「Ruby」に関するイベント「RubyWorld Conference 2011」の2日目。Rubyを実際に採用しエンターテイメントシステムを構築した、日立ソリューションズの野崎康行氏による講演「エンターテイメントシステムの開発を通じて実感したRubyの実力」が行われた。
同氏はまず、「動かないシステムの最多の原因は『仕様があいまい』」(日経コンピュータ2011年7月7日号を引用)とした。「お客さまの要件が明確にならないと開発に着手できず、行程遅延を招いてしまう」という。そのため、顧客のあいまいな要件を具体化する作業が重要だとしている。
そこで同氏は、「動く仕様書」と名付けた開発手法を採用した。具体的には、Rubyで初期段階のシステムを構築し、顧客に提示して具体的な改善点をヒアリングし、フィードバックさせていく方法だ。「Rubyは動くものがすぐに作れ、お客さまの要望をすぐに反映させられる」と評価している。
プロジェクト開始時の課題。未確定なシステム要件を導き出すことが重要だ | 動く仕様書による開発の進め方。機能単位に分割し、1週間ごとにレビューを実施する |
左が顧客に最初に提示した画面。そこからレビューや修正を繰り返し、右側の最終的な画面ができあがった |
動く仕様書の注意事項。初期の段階で、本番の環境やデザインを作り上げることが重要 |
この手法で、「島根県立しまね海洋館アクアス」と「奥出雲多根自然博物館」の中で楽しめる学習やナビゲーションコンテンツシステムを構築した。
アクアスにはすでにトラックボールを採用した展示システムが設置されていたが、老朽化していた。また、水槽内の魚の入れ替えによるデータ更新の簡素化、学習効果が高いシステムを求めていたため、システムの刷新を決めたという。そこで、館内に設置したタッチパネル式の端末に加えて、来場者が持参するニンテンドーDSを端末にしたシステムを構築した。
しかしプロジェクト開始当初は、来場者に「図鑑機能」「クイズ機能」を提供し、これらのコンテンツの維持や保守が簡単であることという要件しかなかった。そこで動く仕様書を採用したところ「お客さまの要望を導き出しながら開発が進められた」としている。例えば「リンクをボタンにしてほしい、フロアマップを追加してほしいなどの要望が導き出せた」という。具体的には、最初に提示した動く仕様書から、合計52件の仕様変更の要望が導き出せた。
この動く仕様書によるヒアリングは、機能ごとに1週間ごとに実施。顧客に実際にシステムに触れてもらい、改善点をヒアリング。修正したのち、再度、ヒアリングを行うということを繰り返す。
動く仕様書による開発を行った結果、アクアスや奥出雲多根自然博物館からは、要望通りのシステムができておおむね満足、開発の初期段階でシステムの全体像が把握できたため安心できたなどと評価された。
この動く仕様書の手法では注意する点がいくつかあるという。まずは初期の段階で、すでに本番に近い環境を用意し、動作の検証だけではなくデザインやレイアウトを運用段階のクオリティとすることだ。また「お客さまにとってこだわりのある部分は修正要望が発生しやすい」という。そのため、重要な部分から仕様を固め、仕様の駆け込み変更ができないように期限を決めることも重要だとする。
野崎氏は最後に「Rubyは、動く仕様書の手法を採用するには適している。お客さまとフィットし生産性が高い」とRubyを評価した。