アジャイル開発の矛盾

Synergyワールドのカテゴリー「リーンならありだ」の記事で、アジャイル開発の矛盾について書きました。そこで述べたかったのは、本来俊敏であるべきアジャイル開発にもかかわらず、それを企業内でプロジェクトとして俊敏に立ち上げることが難しいという矛盾でした。

そこでも書きましたが、アジャイル開発の動機、目標は少しもおかしなものではなく、ビジネスを真剣に考えるものであれば、誰でも同意できるものであると思います。

一つの方向性

では、どうすれば良いのか。その答えは簡単に得られるものではありませんが、一つの方向性を表す言葉として「エンタープライズアジャイル(開発)」があります。エンタープライズとは企業のことですから、その意味は企業向けアジャイル開発と言ったところでしょうか。

もちろん普通のアジャイル開発も企業のためのものですが、特にエンタープライズとつけることで、ミッションクリティカルなシステムとか、大規模なシステムを想定したアジャイル開発という意味を持たせているわけです。

筆者自身もエンタープライズアジャイル勉強会という組織に参加させていただいて、その成果物のまとめである「エンタープライズアジャイルの可能性と実現への提言」でも協力させていただきました。そこにも書かれていることですが、これがエンタープライズアジャイル開発だと言える、一つのやり方はなく、いくつか複数の考え方やプロセスがそれぞれ書籍としてまとめられています。

しかし、これらの書籍の多くは大部なものであり、読みこなすこと、ましては組織のメンバー全員で咀嚼することは容易なこととは言えません。しかしながら、筆者が知る限り、これらはどれもかつてRUPRational Unified Process:ラショナルユニファイドプロセス)とか、UPUnified Process:ユニファイドプロセス)とか呼ばれた開発プロセスの派生形であるという印象を持ちます。

したがってそれらは、RUPUPの特徴を共通に持っているようです。共通な特徴とは例えば、プロセスの構成要素です。

プロセスの構成手順

(1)作業分野

(2)作業(アクティビティ)

(3)作業者の役割(ロール)

(4)成果物

また、開発の進め方として、反復型と呼ばれる、何回もの繰り返しを基本とすることも特徴であるといえます。

これらの考え方を図示すると下図のようになります(いずれも「ラショナル統一プロセス入門第2版、フィリップ・クルーシュテン著、藤井拓監訳、ピアソン・エデュケーション、2001年」などを参考に筆者が加筆して図表化)。

 

 

各反復がフェーズによって特徴づけられる

2つ目の図では、横軸を中心に眺めると、短い反復によって時間軸が構成されているため、それらはアジャイル開発における反復(イテレーションやスプリント)のように見えますが、その反復内容は、方向づけー>推敲―>構築―>移行、と言ったフェーズによって実施内容に特徴が持てるようになっています。また、さらに縦軸を中心にして眺めると、要求―>分析―>設計―>実装―>テスト、と言う、いわゆるウォータフォール型のプロセスモデルであるようにも見えます。

各反復がフェーズによって特徴づけられるという点は特に重要で、先述の「アジャイル開発の矛盾」でも述べた、ある程度の要件定義はきちんと済ませてからアジャイル開発を始めるべきではないか、とか、システムの骨格となるベース部分の設計はいつやるのか、と言ったベテランたちの疑問にも答えられるプロセスの構成になっています。ですから、ある程度の要件定義は、方向づけフェーズでやれば良いし、ベース部分の設計は、推敲フェーズで実施すれば良いのです。

(まとめ)エンタープライズアジャイル開発とは

要するに、エンタープライズアジャイル開発とは

1.ある程度、手順やドキュメントと言ったお作法も大切にし、

2.プロジェクトの特徴によってはウォータフォール型の良さもそこそこ取り入れることができる、

プロセスであると言えるのではないでしょうか。

いろいろなことをきちんと勉強する余裕はないが、エンタープライズ向けのアジャイル開発を行いたい場合は、上記の2点を着実に抑えて取り組むことで、失敗は少なくなると思います。