システム開発では「上流工程」「下流工程」という言い方をする(明確な定義はないようなので、ここでは要件定義を上流工程とする)。筆者はこの上流・下流という言い方が好きではない。

 「上流階級」「下層階級」という言葉からの連想で、下流より上流の方が高級な仕事をしている印象を受ける。エンジニアの中には、上流工程を主に担う「コンサルタント」に憧れを抱き、転職して名刺にその肩書が付いただけで偉くなった気になってしまう人までいる。実際には、仕事の内容が違うだけのことで、エンジニアの仕事と比べて特段高級なことをしているわけではない。

 とはいえ、大手システム開発会社の上流志向は、顕著になってきている。会社ごとに事情はいろいろだが、実装工程がオフショアの形でグローバルな競争にさらされているため、海外勢が参入しにくい上流工程にシフトしたいという経営的な理由が大きい。

 この流れの中で、「下流工程の経験を積むことなく、上流工程専門の要員を育成できないか」という相談を受けることがある。筆者としては、工程間の不整合のリスクを高めるので賛成できないと答えている。

 実際、上流工程(要件定義)を、それ以降の工程の経験のないコンサルタントが担当したために、大変なことになった例をいくつも見てきた。コンサルタントが作成した要件定義書を信じてシステムの設計・実装に進んだが、抜け漏れが多く手戻りをはじめトラブルが続出したというケースである。

 こうしたコンサルタントの仕事は、エンジニアからは「やり逃げ」などと言われるが、彼らなりに全力で顧客満足を追求した成果物であり自信も誇りも持っている。そもそも設計・実装を経験していなければ、要件定義書に何を残せば十分か的確に判断できるはずがなく、責めるのも気の毒だ。

 こうした工程間の不整合を防止するためのヒントとして、筆者が製造業の会社にいたころ散々聞かされた「次工程はお客様」という言葉を紹介したい。この言葉は品質管理活動全盛期の製造現場で生まれたもので、製造業では広く使われている。自分が担当している工程の次工程を、お客様と思って対応せよ、という意味である。こう考えれば、提出する資料にも万全で不備がないことを念には念を入れて確認するだろうし、次工程の担当者からの問い合わせへの姿勢も変わるはずだ。

 自分の仕事に誇りを持つあまりに、自分の工程以外の仕事を低く見てしまう人もいる。例えば、設計を担う人の場合、「製造工程は、設計したものをただ作るだけ」といった具合に考えてしまう。それを戒めるのが「次工程はお客様」という言葉だ。

 品質向上は全工程を通じてなされるトータルな活動であり、各工程にはそれぞれの困難がある。「次工程はお客様」という言葉の底流にあるのは、自分の工程での結果を次工程の品質向上に役立てることで、顧客に届ける製品・サービスの最終品質を高めるという思想である。日本の製造業には、現場全員の力で品質のレベルを最大化しているという自負がある。こうしたボトムアップ型のアプローチがこれまでの日本の製造業の強さを支えてきた。

 それに対してシステム開発では、欧米風のトップダウン型に偏りすぎているような気がしてならない。システム開発プロジェクトの破綻や、いつまでも収束しない不具合などは、結局のところ、プロセス全体での品質維持ができていないことを意味している。

 経営上の要請で工程の分業化が進む中、日本のシステム開発を競争力のあるものにするために、「次工程はお客様」を業界共通の合言葉にすることはできないだろうか。要件定義工程を担う皆さんは設計・実装工程を、設計・実装工程を担う皆さんは保守・運用工程を、お客様だと思って、仕事を進められないかぜひ考えてみてほしい。

林 浩一(はやし こういち)
ピースミール・テクノロジー株式会社 代表取締役社長。ウルシステムズ ディレクターを兼務。富士ゼロックス、外資系データベースベンダーを経て現職。オブジェクト指向、XMLデータベース、SOA(Service Oriented Architecture)などに知見を持つITアーキテクトとして、企業への革新的IT導入に取り組む。現在、企業や公共機関のシステム発注側支援コンサルティングに注力