川村渇真の「知性の泉」

重要な技術の要点を最初に理解する


最初は各技術の役割を理解することが大切

 システム開発に必要な技術は、プロジェクト管理やニーズ分析に始まり、プログラミングやテストはもちろん、運用設計、仕様書の書き方、レビュー方法なども含まれる。これらの中には、狭い意味の技術には収まらないものもある。しかし、狭い意味の技術と同等か、それ以上に重要なものが多い。また、技術として体系化できるものばかりだ。
 それぞれの技術には、それを用いる理由がある。目新しいからとか、面白そうだからといって使っているわけではない。利用することで、手順が面倒になる場合も多い。しかし、難しいシステム開発を成功させるために必要だから、面倒だと感じても利用されるのだ。
 各技術の特徴や役割を知ることは、複雑なシステム開発の全体像を理解する手助けとなる。技術ごとにどんな目的で何をするのかが分かれば、開発の各段階で考慮すべき点を知ることにつながる。それによって、システム開発に対する考え方も変わるだろう。つまり、各技術の概要を知ることは、システム開発の能力を向上させるための第一歩である。
 これだけの技術を一度に身に付けるのは不可能だ。興味のあるものや、自分の仕事に関係が深いものから、順番にマスターするしかない。その際にも、必要な技術の全体像だけは、先に理解しておいたほうがよい。習得中の技術が、全体から見てどのようなに位置付けられるのか知れば、他の技術との関連を考えながら勉強できる。ある技術を用いて作成した成果は、次の工程で別な技術によって使われるからだ。各技術の連携によって、開発という作業全体が、システムと呼べるレベルに達する。

システム開発以外も含めて、長く役立つ技術が多い

 どのような技術でも、役立つ範囲というものがある。活用できる分野の広さと、利用できる期間の長さの2点だ。一般に適用範囲が広いほど、その技術は長く使える。また、技術が対象とする分野の変化が遅いほど、同じ技術を長く使い続けられる。
 例として、プログラミング技術を取りあげてみよう。その中には、純粋なアルゴリズムの作り方から、特定のプログラミング言語で用いるテクニックまで含まれる。このうち、アルゴリズムの部分は、プログラミング言語が変わっても役立つ。逆に、特定の言語に依存したテクニックは、使用する言語が変わると使えない。開発ツールの使い方も同様で、そのツールに固有のテクニックはツールが切り替わると価値を失うが、デバッグ方法やソースコード管理術などはツールが変わっても活用できる。
 システム開発に必要な他の技術はどうだろうか。たとえば、プロジェクト管理。チームによる開発で、ある程度以上の期間が必要なら、どんな分野の開発にでも役立つ。さらには、開発以外の仕事にも利用できる。開発手法が変わろうが、企業や参加メンバーが変わろうが、どこででも役立つ技術だ。レビューの方法も同様で、他の分野の開発から、開発以外の目的でも役立つ。誰かが企画や設計した内容を、適切に評価するための技術だからだ。ニーズ分析もそうだ。テスト方法は、開発に限られるものの、他の分野でも利用できる。
 このように、システム開発に必要な技術は、活用範囲が広いことに気付く。そのことは、利用できる期間が長いことも意味する。最たるものがプロジェクト管理。半永久的に使える可能性は高いので、多くの人にとっては永久と同じだ。システム開発以外の仕事でも役立つのだから、習得して損はない技術である。

(1997年10月28日)


下の飾り