プロジェクトチーム構成編
第5章 プロジェクト構成の問題
5.1 オブジェクト指向によるプロジェクトの諸問題
コンポーネントを組み合わせながらシステムを構築することで、生産性の向上を図り、再利用性を高めるというのは、オブジェクト指向の理想であり、オブジェクト指向技術採用時の大きなメリットと言われている。
しかしながら、オブジェクト指向開発の評価として「再利用可能なコンポーネントは作成できなかった」、「従来よりも生産性は落ちたようだ」などといった愚痴をよく耳にする。また、「オブジェクト指向を使った成果を上司にどうやって示せばいいか?」、「成果を示しにくいからオブジェクト指向プロジェクトを継続できにくい」などという質問メールが筆者に届いている。
上記のようなオブジェクト指向技術のマネジメントに関する問題の多くは、様々な要因が複雑に混在し絡み合っていることが多い。
このような問題に対して、しっかりとした問題の把握をせずに、問題の本質を見失ったまま解決策を探ろうとしてしまうと、トップに誤った判断をさせるような情報を流しかねない。
このような問題を解決するには、正しい情報を基に、縺れた糸を解きほぐすようにじっくり原因を探っていくことが肝要である。
このような、オブジェクト指向のプロジェクトに関わる諸問題について、筆者は下記のように分析している。
-
プロジェクト構成要員の技術的な問題
オブジェクト指向技術を個人で習得することは、比較的スムーズにできる人が多い。しかし、習得した技術を人に伝える技術はなかなか身にけることができない。これが原因となり、開発チームの中で技術レベルに差が出てしまうこととなり、チームとして成果を挙げることができにくい。
-
プロジェクト構成要員の意識に関する問題
技術者達の以下のようなコンポーネント利用に関する考え方が再利用を阻害し、その結果再利用可能なコンポーネントの構築がなされない。
-
使うより作った方が早い
-
人の作ったものは安心できない
-
使い方がわからない(利用範囲など適切なドキュメントがない)から使わない
-
管理者が分からないから使わない
-
オブジェクト指向技術に関する評価・検証の問題
企業のトップはオブジェクト指向技術による効果に多くの期待をよせているに違いない。
よって、オブジェクト指向を推進するマネージャも、つい力が入りオブジェクト指向による効果を多大に唱えてしまうことになろう。
このプレッシャーから、効果を出すことだけに集中し、肝心の効果をどのように評価して判断を下すかということに対して無頓着になってしまうことが多い。
その結果、プロジェクト開始時に期待する効果そのものが本質的ではなかったり、効果を評価する際のメトリクスを誤っていたり、評価によって結論を導く過程で誤った判断を下してしまったりすることになる。
そのような例を以下に示そう。
-
初めから再利用性が高まり、生産性アップがなされることを前提にしていた
オブジェクト指向技術を採用した初期の段階では、開発要員の技術習得に時間がかかり、生産力がダウンするのは周知の事実であるにもかかわらず、それ以上の期待を持った場合。
-
再利用可能なコンポーネントを開発するための初期コストの把握が徹底されていなかった
オブジェクト指向技術を採用した初期の段階では、再利用コンポーネントを開発するコストが上乗せされるものである。既に市販のクラスライブラリが存在していたとしても、社内開発に必要となるコードの中で再利用可能な部分のコンポーネントを試みることがオブジェクト指向による開発では重要なものとなる。このようにして、開発されたコンポーネントによって生産性の向上がもたらされるのは、次の開発からということになるが、そのような初期コストの把握が疎かにされていた。
-
生産性の判断材料となるメトリクスに誤りがあった
ソフトウェアに対する要求が非常に複雑化、多様化し、さらに日々変化している状況において、過去と同じ生産性のメトリクス(評価の基となる基準値)を使って評価している場合。
また、そのような状況において、「過去と比較するためのメトリクスは果たして意味をなすものか?」といった議論がまったくなされずに評価だけを行ってしまった場合。
これらは、「根拠なきメトリクスで評価してしまう」ということに他ならない。
-
ビジネス戦略の問題
ビジネス戦略の問題とは、ソフトウェア企業として「オブジェクト指向技術を採用する理由」を、企業におけるビジネス戦略としてどのように捕らえているか?ということである。
このような戦略に目先の効果だけを掲げてしまうと、先ほど解説した「根拠なきメトリクスで評価してしまう」という落とし穴にはまってしまう。
オブジェクト指向は、5年後、10年後の企業のあり方を前提とした長期的なビジネスプロセスのリエンジニアリングが必要とされる。
このように、オブジェクト指向を使うときの効果を組織改革の一環として、長期的な視野により戦略を立てることが望まれるのである。
しかしながら、企業のトップにこのような認識はどの程度さされているのだろうか?
たとえば、オブジェクト指向技術は、一種のツール環境や優れたプログラム言語と思ってはいないだろうか。
もしその程度の理解であるならば、長期的視野でオブジェクト指向プロジェクトを育成することは望めないだろう。
いくつかの失敗例や成功例に踊らされてしまい、技術者育成面やスキルを伝授するためのインフラ構築がなされない。よって、本質的な効果を導き出すことなどできようはずもない。
-
オブジェクト指向技術の問題
オブジェクト指向言語や環境はいまだに発展段階にあり、テクノロジーとしても未熟な面がある。
言語やソフトウェア環境の度重なるバージョンアップは、再利用可能なフレームワークやコンポーネントを構築するための土台を揺るがしてしまう。
このように言語環境が不安定で未熟な段階では、なかなか継続的に使用できる再利用コンポーネントを構築することができない。
そればかりか、バージョンアップの度に新たな技術を習得するための時間が必要となってしまう。
5.2 問題を解決するには
上記問題に対する対策はそれぞれ違ったアプローチが必要となる。
まず、問題の1と2はプロジェクト構成要員の技術的な問題と意識的な問題である。
本章を含む「プロジェクトチーム構成編」は、このような問題に対してソリューションを提供するものである。
プロジェクトチーム構成編に書かれていることは、Dropによるチーム構成やプロジェクト育成ということに留まらず、オブジェクト指向技術を使ってソフトウェア開発を行う際の技術者として持つべき姿勢を問うものである。本編を参考にして、徐々に自己を修練し、チームを育てていくことで、他人と協調しながら開発を進めていくことができるようになるだろう。また、本編を学ぶことは、技術者個人の再利用に対する意識的な改革を後押しする事につながる。
問題の3と4は、オブジェクト指向技術の評価とマネジメント戦略に関する問題である。このような問題は、方法論の手法と切り離して対策を立てなければならない。これについては、本編の第8章Dropによる組織改革を参考にしてほしい。第8章では、オブジェクト指向技術をビジネス・プロセスの一環として、どのようなビジョンを持ち、どのように進めるべきか、という知識を得ることができる。
残る問題5については、Drop方法論の対象外となる。オブジェクト指向言語や環境が発展する際に、ある程度、再利用コンポーネント構築のためのインフラに影響を及ぼしてしまうことはやむを得ないことである。
しかしながら、問題5に対して、開発環境が整うまで再利用コンポーネントを作る必要はないといった判断を下すことは誤りである。再利用コンポーネントは環境が発展する際に書き換えが必要となるという点では、再利用コンポーネントに投資した初期コストが廃れてしまうかもしれない。しかし、実際には、開発者の再利用に対する知識の構築がなされ、知識の再利用が可能となり、急激な開発環境の変化にも追従できる普遍の再利用技術を身につけられるのである。
この知識の再利用こそオブジェクト指向技術を使ったチームコンピューテイングの本質的な効果と見なすべきであり、世の中の急激な変化の中で企業力を伸ばしていける原動力になるのである。
とはいえ、開発環境言語や環境を選定する際には、できるかぎり基底となるクラスライブラリが安定しているものを選択すべきであろう。言語発展の際に開発環境に影響しないテクノロジーを採用することが望ましいことはいうまでもない。