2008/11/04

仕事の切り分け

 ソフトウェアを開発するときの仕事の切り分けについて考えてみる.我々はいわゆるサービス提供者として位置づけられているので,基本的にはサービスの仕様を決定することが主たる仕事となる.サービスをどう実現するかは,それをうけて開発する業者に任される.しかしながら,時間的制約から,われわれ自らがサービスを構成するシステムをいくつかに切り分けて複数の業者に同時間的に発注を行うことがある.これにかかる大きな制約は,国の税金を使った事業である場合の金額規模に応じた事務処理の量に起因する.金額が大きくなれば受注者の公平性を担保するために,より発注手続きに時間をかける.システム開発そのものが大規模・短納期を要求するならば,いっそのこといくつかに仕事を分割してしまえばそれで容易に大規模と短納期を実現できると思うかもしれない.ところが,ソフトウェアシステムは,分割すればするほどシステムインテグレートにかかる労力を増大させてしまう.
 ことの複雑さは,仕事によって切り分けられたサブシステム同士をどのようにつなぐか,つなぐとしたらどの業者がサブシステム間インタフェースの接続方法に対して責任を持つのかということのネゴシエーションを要求する.我々の経験では,ネゴシエーションは,仕事の押し付け合いとなるのがどうも基本的な展開らしい.融通をきかせるというのは,ビジネス上個々の業者間ではありえなく,むしろ仕事を分割した発注者しかそのインセンティブを働かすことができないのかもしれない.
 発注者サイドとして,分割した仕事のインテグレーションをどのように実現するのか,その役割分担方法は2つある.ひとつは発注者自らがインテグレーションに必要な設計に手をかける方法,もうひとつはもっともシステムインテグレートを高次のレベルで実現する仕事を担う業者が行う方法である.いずれにしても発注者がネゴシエーションの主導権を発揮しなければならない.

0 件のコメント: