「ITプロジェクトに於ける知識継承」では、一般的な開発モデル(Waterfall型)を使って知識継承について述べました。前工程から後工程に向けたミッション・タイプの知識継承について述べています。しかし、実際にはそれだけでなく、コミュニティ・タイプの知識継承があることを補足しておくべきでした。経済学者フリードリッヒ・ハイエクが言っているように、重要な情報は「当事者」が分散的にもっています。ハイエクは経済システムを動かしているのは包括的な知識とか統計的に集計された大きな知識ではなく社会の様々な場面に従事している個々人がそれぞれに不完全なままに矛盾するものとして分散的にもっている知識であると述べています(「ボランタリー経済の誕生:実業の日本社」より引用)。このことは経済に限らず、ソフトウェア開発においても当てはまることです。
Waterfall型ソフトウェア開発では、前工程でまとめ上げた要求仕様や構成仕様を、詳細設計以降を担当する技術者へ、一方向に知識継承することを要求しています。現実のソフトウェア開発では、知識継承はそれほど単純ではありません。顧客の要求を熟知し、また、後工程を担当する技術者がもつプログラミング言語の制約条件や開発ツールの特性知識も必要となります。ソフトウェアの構造を設計するために、一人の技術者がすべてを知り尽くしていることは稀です。誰が何を知っているかさえ分らないこともあります。そこで必要となるのは目的を達成するために、顧客、営業、コンサルタント、SE、プログラマ、品質管理、etc.の異なる領域のメンバが集まって知識を出し合う“場”です。コミュニティと呼ぶのが相応しいでしょう。コミュニティに参加するメンバはすべて同格であることが必要です。コミュニティの進行役は茶の湯のにじり口効果(亭主も客同士もここを通れば身分、階級の差がない対等な関係)を狙った運営を図り、各メンバが何にもとらわれない発想を促します。
「ITプロジェクトに於ける知識継承」で述べた知識継承は役割を決めて行われるのでミッション・タイプと呼びます。それに対して、異能の人材が集まって、目的達成のために知識を出し合う知識継承をコミュニティ・タイプと呼ぶことにします。
ソフトウェア開発はミッション・タイプの知識継承とコミュニティ・タイプの知識継承とを組み合わせて実行することが肝要です。■