HOME >> 考えていること >> モデル駆動型アジャイル開発
考えていること
モデル駆動型アジャイル開発
それは最初にすべての要求(仕様)が固まらないことを前提とした開発手法。

情報システムの施工には、短期間で開発を繰り返すアジャイル開発が適していると考えます。またモデリングとアジャイル開発は、相性が良く、相互に補完しあう性質があると考えます。 アジャイル開発とは一言でいうと短期間のイテレーティブな(タイムボックスによる繰り返し型)の開発手法です。別の言い方をすると、情報システムの施工時に、「(業務)要求」を「(ソフトウエア)仕様」に変換しますが、その要求や仕様が最初に確定しないことを前提とした開発手法でもあります。一方、実装に先立って“すべての”要求と仕様を定義できると考えたのが,いわゆるウォーターフォール型開発です。
アジャイル開発の重要なコンセプトは次のとおりです。

変化を受け入れる

現在の(ちょっと前の過去ではない)施主の要求に応える。それが価値を提供する。

短期のサイクル/頻繁な納品

固定した短い期間で、実装可能な要求を取り上げ、頻繁にリリースし、使ってもらう。このことで最も優先度の高い機能のみを実装することとなり、結果的に選択と集中がなされる。リリースされた機能を使用した施主は、その評価を返し,また次の要求を的確なものに調整できる。

リファクタリング

しかしイテレーションによって変化が発生し、改造が必要となれば、ソフトウェアを見直して手を入れることをいとわない。重複をなくす、簡潔にする、柔軟性を向上させるなどの場合にも行う。ただし,それを安全に行うのがリファクタリングという技術。

テスト駆動型開発

ソースコードを書く前に、テストコードとテストデータを書く。
その後も常にテストを実行し、正しく動き品質の高いソフトウェアであるようにする。

動作する製品

包括的なドキュメントよりも、動作する製品(ソフトウェア)を提供する。

施主との協調

契約交渉よりも、施主との協調を優先。施主側のチームと開発側のチームはパートナー関係を結ぶ。変化の激しい、あるいはすべての仕様が最初に固められない(それがほとんどと考えますが)ような開発においては、一致協力していく関係となるべき。

個人と対話

プロセスやツールよりも、個人と対話を優先。

これらの特長にプラスして、情報システムサイクルで述べた、モデルの構築がアジャイル開発には重要な要素と考えます。

イテレーションでのさまざまな変化に対しては、あらかじめ設計者が作ったモデルに立ち返り、それにおいて新たな変化への対応をどのように受け入れるかを検討し、実装するべきです。この過程でモデルや要求に修正をすることもいといません。こうすることで、変化に対して一から考えなおすというリスクを回避することができ、より短期間に品質の高いソフトウェアを提供できるからです。この意味で、私たちは、これをモデル駆動型アジャイル開発と呼びます。

このように、モデルは情報システム全体を見渡せる共通海図・青写真のようなものと言え、情報システムの発展にとってきわめて重要なものです。

トップへ
isken
株式会社情報システム総研
〒107-0061
東京都港区北青山2-12-15
G-FRONT AOYAMA 5F
[地図]