« XEADで設計書出力 | トップページ | フレームワークはオブジェクト指向を隠蔽する »

2008.12.30

「ユース・ファースト」なシステム開発

Openpackagemenu_2

 「販売管理システム」や「生産管理システム」といった基幹システムを開発する場合、基本設計よりプログラミングを先行させるアジャイル系のスタイルは向かない。「動くシステム」は「動くプログラムの集まり」ではある。しかし、「動くプログラム」を作って集めたものが「動くシステム」であるとは限らない。そのシステムは、各部屋の住み心地がいいわりに、完成した翌日に自重で崩壊するマンションのようなシロモノであり得る。一般に、一定以上複雑な工学的構築物向けに、組み立てながら基本設計をまとめるといったカジュアルな手法は通用しない。

 ただしこれは「レファレンス・システム」を用いない場合の話。ここでいう「レファレンス・システム」とは、オープンパッケージとして提供される「完成していて実際に動くシステム」のことである。オープンパッケージであるゆえに、データモデルや業務マニュアルといった基本設計情報も添付されている。そういうものが業種・業態毎に用意されているのであれば、システム開発の上流工程の様相は大きく変わる。

 まず、「要件定義」を限りなく省略できる。これはうれしい。なぜなら「要件定義」なんて、筆者の経験から言えば風を追うような行為だからだ。風が渡れば草原がなびいて、あたかも何かが存在しているように見えるが、つかまえてしまえば何も残らない。そんな気まぐれであてにならないものをつかまえる仕事なんて、1日かけることも、半年かけることも、3年かけることだってできる。ただしその成果は、かけた時間や様式の緻密さに関係なく薄っぺらなのだ。

 つづいて「基本設計」だが、完成したモデルがすでに手元にあるので、実質的に「基本設計のカスタマイズ作業」である。「レファレンス・システム」を実際に使ってもらって、DB設計やプログラムや業務マニュアルの修正方針を決める。ユーザが提出する個々のカスタマイズ要件毎のコストが明確にされるので、対コスト効果もわかりやすいし、見積精度も高いし、ユーザによる旧来のやり方へのこだわりも牽制できる。何よりも、動くシステムに触れることで、たいそうな要件定義作業を経ずにシステム要件が回顧的に明らかになる。

 「レファレンス・システム」は、建築業界における「モデルハウス」に相当する。システム開発にまつわる多くの混乱は、こういうものが欠落していたゆえに生じていたのではないか。「モデルハウス」なしで施主の要件を漏れなく聞き取ることの難しさを考えてみたらいい。業種・業態に合わせた「レファレンス・システム」を用いた開発スタイルは「モデリング・ファースト」でも「プログラミング・ファースト」でも「テスト・ファースト」でもなく、いわば「ユース・ファースト」である。これでフレームワークの出来が良ければ、ほんとうの意味でアジャイル手法を実践できる。

 このスタイルを普及させるためには、まずは「オープンパッケージ」の拡充が必要だ。筆者は「CONCEPTWARE/販売管理」のオープンパッケージ化をJavaで進めているのだが、2009年の早いタイミングで「第1回オープンパッケージ開発者コンファレンス(という名のただの飲み会)」を開こうと考えている。腕に覚えのある技術者はぜひ参加して、それぞれの得意な言語でオープンパッケージ開発を始めるきっかけにしてほしい。

|

« XEADで設計書出力 | トップページ | フレームワークはオブジェクト指向を隠蔽する »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 「ユース・ファースト」なシステム開発:

« XEADで設計書出力 | トップページ | フレームワークはオブジェクト指向を隠蔽する »