GoTheDistance

ござ先輩と言われています。(株) クオリティスタートという会社をやっています。

経済から見たSI(2)-SEという職業のあり方

id:gcdさんより頂いた問題提起について考えてみました。前回のエントリのような構造になってしまったのは、SEという職業のあり方に大きく関係があると思います。考えがまとまっておらず駄文になっているけど・・・。

結論から言うとITProで連載されている戸並氏の「中流」を目指すマインドの欠如にあるのではないか、と思います。

70年代のSEは正に業務の設計屋だった

ワクワクさせられた70年代の黎明期

この記事にこのような記述があります。

昔は,ITプロセスを含んだ業務システムを決めるのはSE自身ですから,徹底的に考えました。「業務の自動化により現場を楽にさせる」が当時の目標です。 SEのプライドもあったし,私の一存で業務システムが決定してしまうことへの責任や怖れもありました。最高の業務システムを設計し,構築するという高いモチベーションがありました。ですから私自身,入社5〜10年目の若手SE時代にユーザー部門の部長や担当役員とガンガンに議論していました。そのころの黎明期のSEは皆こんなもんでした。ユーザーもIT化なんて分かりませんから要件なんて言えません。ソリューションはまさにSEの範ちゅうでした。

でもって、コレ。

SEには,システム的視点で全体業務を見渡す俯瞰的な鳥の目と,インプリメントする詳細緻密な虫の目が必要です。しかし残念ながら,ほとんどのIT屋は鳥の目はコンサルに譲るようになり,構築専業になってしまいました。リスクの少ない人月ルールの構築ビジネスにシフトすることで,SEは難しいけど楽しく誇りのある「システム・エンジニアリング・ビジネス」から遠ざかってしまったのです。

「いつから」人月ルールの構築ビジネスになってしまったのだろうか。というか、いつから鳥の目をコンサルに譲るようになってしまったのだろうか。

よく言われている話だが、昔はハードも言語も限定されていたし、期間もある程度長かった。案件の中で人を育てるのが容易な時代であったと言われているし、技術的リスクが今よりも少なかった時代であったように思う。今ではオープン系技術が多様化し、Windowsの台頭によってITが社会インフラと化した。「システムを構築することそのもの」でビジネスが成り立った可能性もある。業務ありきではなく、ITありきで業界全体が動くことが可能だった。そんな感じがします。

余談ですが、リスクの少ないというのは委任でという意味なのかなぁ。本質的にシステム構築は不確実性の高さ故にハイリスクな商売だと思うのですが…。SIerは固定費の高い組織構造のため、その固定費を上回るまでが相当にハイリスクです。固定費が高いと言うことは、損益分岐点が高いってことです。

そのような環境下で、「システム的視点で全体業務を見渡す」仕事に従事するコトを常に頭に置くのは、相当な信念が必要になると思っています。現場で求められるのは、今そこにあるシステムを動かすスキルだからです。プロジェクト管理、固有技術への見解、リスク感覚・・・。この中に業務設計というスキルセットはありません。

エンジニアとして評価されたいのか

ビジネス的なインパクトなど意識しなくても、システム開発そのものが楽しいというSEは多くいると思います。ロジックを考えるのが面白い、アーキテクチャを考えるのが面白い、システムを作ることそのものが面白い…。私の周りにはそういった技術的に情熱を持っている人が多く、私自身も相当感化されました。

が、本当にそればかりでいいのだろうか。私は最近、ロジックを考えるだけでは満たされなくなってきました。

私の知人でSEを辞めた人は何人も知っていますが、一番多いのが「技術的見解が深まって色々なことを学んでも、嬉しくなかった。」という人が一番多いです。ノウハウの取得そのものが喜びや発見で無いなら、待っているのは衰退のみです。プログラマを目指すのに適した時代、適していない時代にも、こんなことが書いてあります。

それに比べ、現在のように少しでもプログラミングができれば給料までもらえてしまう、ある意味プログラマが必要以上に優遇されている世の中では、好きだからプログラミングをするのか、それとも単に食うために(仕方無しに)プログラミングするのか、曖昧になってしまうわけで、「プログラマを目指すのには適していない時代」なのだと思う。

「とりあえずプログラミングやってみるか」といった感じで、プログラミングで飯を食うことの垣根が相当に低くなってしまっていることが問題だと言うことです。私も賛成です。技術者ほど個々の実力や傾倒が問われる仕事は無いので、半端な気持ちでこの山を登ろうとしたら不幸になると思います。オープンソースのコミッタレベルまで行ける人は、「3度の飯よりプログラミングが好きな人」です。StrutsSeasar2のようなプロダクトを作ろうと思い立つその心。「とりあえず〜」のレベルの人では到底到達できない世界です。

技術を極めることに賭けられる心があるならば、それを愛でて生きていけばいい。素晴らしいSEになれると思います。技術力が高い人が*1現場にいれば、プロジェクトが大きくコケる要素が相当に低くなります。実際現場でも「しゃべれる人」よりも技術力の高い人を求める傾向が強いです。なぜか?ディフェンスを強化するためです。これについてはまた別のエントリで簡単に触れます。

コンサルになるのか、現場に生きるのか

SEを突き詰めればこうなるんじゃないでしょうか?

めっちゃ極端に言い換えると、上流の匠になるのか、下流の匠になるのかってこと。

私が今おかれている環境は、現場に生きるコトを求められる環境です。必要なのは、プロジェクト管理能力、固有技術への見解(専門分野の確立)、勘所を踏まえたリスク感覚の3つです。ココで生きていくには相当な覚悟とエンジニアとしての自負が必要だと最近思います。

それに対し、ビジネス・エンジニアリングを考えられるSEというパスもあります。その頃にはSEという肩書きからコンサルタントという肩書きになることが多いのかなぁ。私がこの業界に入る前から当たり前のように言われていることですが、SEの殆どは現場に生きることを求められるので、要件そのものを考えることは必須のスキルセットではなくなってしまったと思われます。

ビジネスに興味を持たないことが悪であると単純に考えてしまうのはよくありません。わからないことはわからないし、追いかけたくないことは追いかけなくてもよいのです。問題は自分がどっちに行くか、それともドロップアウトで別のキャリアを目指すのかハッキリしないことじゃないでしょうか。

環境を嘆いても何も変わりません。現実を目の前にして自分の拠り所になる哲学や思想が濃くないと、それに流されてしまいます。現実は否応無く自分を濁流に流そうとしますから・・・。

結局の所

全然結論はでなかったです。必要なのは覚悟と思想だよねってコトに帰結してしまいました。個人ベースで考えると、どーしてもそっちに言ってしまうなぁ…。

*1:システムに構造的な欠陥を見出せる能力が高いという意味で使っています

SQLを学習できるWebサービスを作りました。