本研究所では、アジャイル開発を素材に、より良いシステム開発のあり方を求めていく。開発手法そのものを見直すことは、より良いシステムを作るだけではなく、開発を担当するチームが成長し、個人の満足度も高まると考えられるからだ。今回は、私が取り組んでいたアジャイル開発では必ず存在したモデルの役割について考えてみましょう。

 私が社会人になってから経験したアジャイル開発には、必ずモデルがありました。みなさんもご存じのように、モデルは設計の重要な要素であり、情報システムの良し悪しに直結します。ですが、モデルの役割は設計にだけあるのではありません。モデルを利用することが開発者の助けにもなると思います。

モデルを使った開発は、開発者にやさしい

 私が経験したモデルを用いた開発の概要を紹介します(図1)。

図1●モデルを用いたアジャイル開発の概要
[画像のクリックで拡大表示]

 まずは開発を始める前に、モデルの設計者からモデルの概要説明がありました。実はそのときの説明では、私はモデルを3割も理解できませんでした。モデルを用いた開発経験が浅いこともあり、モデルだけ見ても、その使い方や意図を汲み取れなかったのです。「本当にこのモデルで開発できるのか?」「このモデルがシステムにとって本当に適切なのか?」など、当初は色々と不安でした。

 しかし、アジャイル開発の中では、モデルに対する不安は1カ月程度で解消されたのです。開発の初期では、モデルの妥当性を大まかに確認することを重視し、基本的なユースケースを開発しました。詳細な機能は開発せず、開発者にとって基本的なシナリオを一通り開発することで、モデルやシステムへの理解が進みます。その後の機能開発も、モデルの検証ポイントやモデルの意味を理解できたため、スムーズに進められました。

 モデルには、開発者を助ける役割があります。モデルの使い勝手の良さを紹介しましょう。その一つが、A4サイズの紙で話し合いができることです。私が経験したモデルは、A4サイズの紙1枚に収まっていたのです。

A4用紙1枚でも情報量は豊富

 何も理解していない状態では、このA4の紙は何の情報のない、ただのクラスが描かれた図に過ぎません。ところが開発が進むにつれ、モデルが表していた本来の意味が理解でき、情報量が多いA4の紙になってきたのです。

 開発者の間では、実装について相談することがあります。そのときも、多くの設計資料がなくても、そのモデルがあればだいたいの話し合いができます。モデルを共通言語としてコミュニケーションすることは、チーム内で意思の疎通を図りやすくもなります。

 モデルは、アジャイルに対する不安を小さくすることもできます。開発の当初は、システムの分野や開発環境など初めて経験することが多く不安を感じていました。しかし、私が使用したモデルには、アナリシスパターンなどが利用されていました。それらは過去に十分検討されたパターンであり、実装方法やモデルの効果などのノウハウが培われています。

 そのノウハウをすぐに吸収することは容易ではありませんでしたが、少しずつパターンを活かせるようになったのです。一度理解すると、パターンを利用した部分がまとまって見えるようになるためモデルの理解がしやすくなりました。さらにパターンから得た知識は、この開発に限らずその後の開発にも役立っています。