オルタナティブ・ブログ > まあまあ元気になる話 >

IT業界での少し気分がアップする出来事、心持ち役立つこと、ややイイ話

エンジニアが目指すべきは、スペシャリストかゼネラリストか

»

CAREER HACKに掲載されている「キャリア論」が話題になっているようです。

エンジニアよ、ゼネラリストなんて目指すな!―VASILY 金山裕樹のキャリア論[2]

「ゼネラリストを目指すな!」というのは、ずいぶん刺激的なタイトルですね。でも、批判的なコメントやツイートがたくさん飛び交ってるようです。

特に、問題とされているのが次の箇所です。

コードがもうメチャメチャでも、動いて金が回れば正解なんですよ。「アイツの書くコードは汚いけど、アイツが入ったプロジェクトは絶対勝つよね」ってエンジニアは、絶対に呼ばれます。もう間違いない。少なくとも、僕は欲しいですし。

この「コードは汚くても動きゃいい」的な内容に対して、
「メンテが大変で、他のエンジニアが後々苦労する」
とか、
「兎に角、動くものを早く作れ、という感じで、プログラムやエンジニアを『使い捨て』と考えているのでは」
といった感じで、反対意見が集中しています。

確かに、ここだけ読むと、何とも極端な印象を受けますが、たぶん、「コードは汚くてよい」というのが趣旨じゃなくって、「手段と目的をはき違えるな」ってことを言いたいのだと思います。「きれいなコードを書くことは手段であって、目的ではない」と。
しかし、言い方が悪いのか、記事の言葉の切り取り方が悪いのか、本来の論点とは、ちょっとズレたところで盛り上がってしまっている気がします。

いくら、きれいなコードでも、動かなければ意味がありません。
メンテがしやすいように、コードはきれいに書く、というのは当然ですが、それは、メンテのコストを抑えること、つまりは儲ける(損しない)ことが目的です。
そういう意味では、「動いて金が回れば正解」というのは、間違っている訳ではないと思います。

あと、エンジニアの反感を買ったのではないかと思われるところがもう一箇所。

エンジニアであれば、何が得意って「技術」でしょ。つまり、チームやプロジェクトの成功という目的を達成するために“自分はどうやって貢献するか”と考えると、一番得意なことで貢献するべきじゃないですか。だったら、技術が得意なヤツなら、断然、技術を極めるべきです。エンジニアに営業なんてやらせません。下手ですし。もちろん何でもできるスーパーな人がいれば良いですけど、めったにいませんから、変にゼネラリストを目指すより、ぶっちぎりのスペシャリストであって欲しいです。そして、そのスキルを活かしてチームにどうやって貢献するかが、勝負になってくるんじゃないですかね。

これは、先の「きれいなコード」云々の話の後、「エンジニアも、ひとつ上の『経営』や『ビジネス』の視点を持つべきだと?」という質問に対して、そうではない、という主旨で書かれた文です。

この文から、タイトルが「エンジニアよ、ゼネラリストなんて目指すな!」になったのだと思いますが、これを読んだとき、わたしも、「この社長さんはエンジニアに対して、かなり偏見があるのでは?」と感じました。

わたしは、元々エンジニアであり、社長も経験していますが、「経営」や「ビジネス」の感覚があるかどうかは、エンジニアであるかどうかによらない、と思っています。そして、どんな職種でも、仕事をする上で、「経営」や「ビジネス」の感覚は、あった方がいいと、わたしは思います。

営業だって、たくさんのアポを自慢気に言う人がいますけど、これも「手段と目的をはき違えている」例ですよね。アポ自体は手段であって、目的ではありません。少ないアポでも、確実に受注できれば、それでいいのです。

また、エンジニアが営業下手とも限りません。
営業トークが得意かどうか、で言えば、確かに苦手なエンジニアは多いかもしれません。
わたしも、営業トークは苦手です。
でも、わたしは、社員2000人以上のSIerにいたときも、10名弱のベンチャーのときでも、営業に頼らずに、たくさんの仕事をいただいていました。これ、わたしの自慢話ではありません。特別な話ではなく、多くのエンジニアがわたしと同じような体験をしていると思います。
お客さんの声を直接たくさん聞けるのも、エンジニアだからです。

でも、この「エンジニアに経営やビジネスの視点は必要ない」「どうせ他に何も出来ないから技術だけやってればいい」とも取れる偏見っぽい箇所、ここも、この社長さんの本当に言いたいことは、ちょっと違うのかも知れません。
エンジニアなのだから、「技術」を磨くのは当然。それで勝負するのも、また当然なことです。
口は上手いが技術はいま一つ、では、お客さんに信用してもらえる訳がありません。
エンジニアに必要なのは、まずは「技術」です。
そういう意味での「技術が得意なら、技術を極めるべき」、「一番得意なことで貢献するべき」という意見であれば、基本的には賛成です。

ただ、それだけでいいとは、わたしには思えないのです。

先日、上記の「キャリア論」と真逆なタイトルの記事を見ました。

今後のITエンジニアに求められるのは専門特化より「マルチスキル」(ITPro 2012/11/27)

ITエンジニアを対象としたスキル調査を実施しているITスキル研究フォーラム(iSRF)が行ったセミナーの様子を伝える記事なのですが、その中で、IPAのITスキル標準センターの秋元センター長が、

ITスキル標準の観点で見ると、クラウド時代には「専門特化よりも『マルチスキル』の重要性が増す

と、お話されたそうです。

クラウド時代には、「幅広く分かってマルチスキルを発揮できる人」、「複数の職種にまたがるスキルをこなせる人」が必要とのこと。

近年、一人のエンジニアがカバーすべき範囲が拡がっているのは確かな気がします。一人分の予算(仕事量)しかないところに、スペシャリストを何人も揃えることは出来ませんし、仮に揃えられたとしても、「自分の守備範囲はここまで」というスペシャリストばかりでは、効率が悪く、意思疎通がちゃんと出来るのかさえ不安です。

エンジニアの業務は多様化してきていて、「専門特化だけでは厳しい」と、わたしも思います。

でも、「専門特化より『マルチスキル』」ということでも無いように思います。一つの専門分野にすら特化できない人が、どうやって、複数の分野をこなせるのでしょう。
エンジニアによらないと思いますが、「何でも出来ます」というのは、「何にも出来ません」と言っているのと変わりません。
情報処理技術者試験も変わる、とのことですが、「○○スペシャリスト」の試験が、雑学王みたいになってしまっては、もはや、それはエンジニアでは無いような気がします。前述の社長さんの「変にゼネラリストを目指すより、ぶっちぎりのスペシャリストであって欲しい」という言葉は、そういうことを危惧したものかも知れません。

エンジニアであれば、「金融システムなら彼」、「DBのことならアイツ」など、何か尖った部分が無いと、まず、認めてもらえません。要は、「売り」が必要、ということです。
ただし、それに拘ってしまい、それだけしかやらない、となると、前述の「きれいなコード」の話と同じです。手段と目的をはき違えてはいけません。

エンジニアとして、スペシャリストなのは、当たり前。
そして、それを活かし(武器にしつつ)、目的に応じて、ゼネラリストにならなくてはいけない、ということなのでは?

「スペシャリストよりゼネラリスト」ではなく、「スペシャリスト+ゼネラリスト」が求められているのだと思います。

Agile Modelingで有名なScott W. Ambler氏が、著書「オブジェクト開発の神髄(日経BP 2005/07/13)」の中で、技術者が身につけるべきスキルについて、「ゼネラリスト化したスペシャリスト」になるように、と書いています。

スペシャリストは、他人と効果的に協力するのが苦手であり、それは他人が対処しようとしている事柄を理解するための知識が欠けているためです

ゼネラリスト化したスペシャリストは、どう調和するかが見えているため、通常はチームメンバーが何の作業を行っているか理解し、正しく評価することができます。その結果、より密接な協力体制が築かれ、学習する機会も増えます

より円滑に成果を出し、さらに、自分をスペシャリストとして、磨き続けるためにも(学習し続けるためにも)、俯瞰的な視野を持つゼネラリスト化が必要、ということではないでしょうか。

Comment(0)