IS107095827_TP_V-2

SE(システムエンジニア)の業界は、慢性的な人手不足が続いています。そのため最近では、新卒でシステム開発会社に入社し、いきなり一年目からシステム構築の現場に送り込まれるSEが多くなっています。

しかし、SEのキャリアパスや能力開発を念頭に置くならば、社会人経験が少ないまま現場に入るよりもソフトウェア開発の職場で仕事をしてソフト開発の経験を積む方が良いと考えます。

ここでは、SEにはソフトウェア開発を経験させるべきであると考える理由についてお話ししていきます。ここで述べる内容を理解することで、SEの実務能力の磨き方や若手SEの正しい育成方法について学ぶことができます。

ソフト開発経験のないSEが増えている

一昔前のIT業界では、エンジニアの育成方法がある程度決まっていました。それは、ソフト開発を数年間経験してからSEになってシステム構築の現場に入るというものでした。一度SEになったら、その後はスペシャリストやプロジェクトマネージャーの道に進むとか、再度ソフト開発に戻って開発技術を極めるというものでした。

しかし近年は、システム構築がますます複雑化し短納期の要求が増えました。そのため、慢性的なSEの人手不足が続きました。その結果システム開発会社に入社した若手が、一年目から「OJT」(On the Job Training、現場の仕事を通じてトレーニングすること)によりシステム構築の現場で仕事をする人が増えました。

そのようなSEは、社会人になってからソフト開発や社会人経験が不十分なまま現場の仕事にさらされることになります。OJTは、現場をよく知らない若手がシステム構築の現場を手っ取り早く知ることができるというメリットがあります。実際に、若手SEが早くから現場を知ることでのびのびと仕事ができて自信につながることもあります。

ところが、このように早くから現場に入ってしまいソフト開発を経験していないSEは、現場で数年の経験を経たあとで成長が止まってしまうことが多いのです。

ソフト開発者とのコミュニケーションが難しくなる

SEは、システム設計のためにお客さまと機能仕様の打合せを行ったり、ソフト開発の機能仕様書を作成したりします。機能仕様書は、ソフトの機能を詳細に記述した設計書です。そしてソフトの機能に焦点を当てた文書であるため、特にソフト開発の実務を知らなくても作ることができます。

したがって、開発経験のないSEでもユーザーが読んで理解できる機能仕様書を作成できます。しかし、その機能仕様書をソフト開発者(プログラマー)が読んだとき、正確に意図が伝わるかどうかは別の問題です。プログラマーが機能仕様書を読んで正しくソフトの機能を理解できない場合、システム開発は大変危険なものになります

プログラマーが機能仕様書を渡され、その内容において記述があいまいだったりよくわからない箇所があったとします。そのような場合、たいていプログラマーは自分なりの解釈を加えてプログラムを作ります。よほど気の利いたプログラマーでもない限り、機能仕様書の意図を仕様設計者に問い合わせるようなことはしません。

なぜなら、そのようなことをすれば人間同士のやり取りが発生して時間がかかるからです。短納期で時間のないプロジェクトであれば、なおさらそうなります。プログラム開発は、機能仕様書の内容と食い違った動作がなければ基本的にソフト開発者の判断で行うことになるのです。

SEとプログラマーのコミュニケーションは機能仕様書で行わなければなりません。しかしソフト開発経験のないSEは、プログラマーが誤解なく理解できるような仕様書をなかなか作れないのです。プログラマーが誤解なく理解できる仕様書を作る能力は、SEの重要な実務能力の一つです。

すなわち、SEの実務能力はソフトウェア開発能力にある程度比例すると考えられるのです。

ソフト開発能力を持つSEは、仕事が早い

SEが開発を経験すべきと考える理由は、他にもあります。それは、お客さまからシステムへの機能要望を受けた場合の対応の早さです。SEがソフト開発を知っていれば、お客さまからの要望に対応するのにどのくらいのソフト開発量が必要かさっと見積もることができます。

開発経験がないSEは、このようなときにいちいち開発担当者に問い合わせをしなければならなくなります。その場合は当然時間がかかりますし、ソフト開発者が間接的に聞くためお客さまの意図を間違って解釈するリスクも増えます。すなわち、開発経験を持つSEは仕事が早く進められるのです。

このように、現場の人手不足に伴いSEがソフト開発を経験せずにいきなり現場に送り込まれるケースが増えています。しかしソフト開発を知らずにSEとしての経験を積んでしまうと、やがて複雑なシステム設計を行うことになったときにプログラマーとのコミュニケーションが困難になります。

そのため、SEの正しい育成を考えるならば若手SEにはソフト開発を経験させるべきであると言えます。