たいていのプロジェクトには1人か2人、プロジェクトの中心となるエース格が存在します。多くのメンバーは彼らを頼り、「困ったことがあれば◯◯さん」というような共通認識を持っています。彼らはどこのプロジェクトに配属されても、(たとえそれがプロジェクト立ち上げのメンバーでなくても)持ち前のスキルと知識でいつの間にかプロジェクトのエースになってしまいます。

では、どうすればエースになれるのでしょうか?エースにはならずとも、優秀なエンジニアになるためにはどうすればよいのでしょう?今回はそこについて考察してきます。

 

技術力のあるSEとは

技術力があるSEというのはどういう人のことでしょうか?

  • プログラミング能力に秀でている
  • 要件からシステムに落とし込むのが得意
  • アーキテクチャへの造詣が深い
  • システムのチューニングが上手い

いろいろな要素があるでしょうが、どれか1つでも秀でていれば優れたSEの要件は満たしています。ただ、プログラミング能力に関しては追求する必要はありません。

このような逸話があります。

任天堂の超有名タイトルに「マザー2」というゲームがあります。このゲームは開発に5年もの歳月を要しました。開発に入って4年目のこと、プロジェクトは迷走し頓挫の危機に。シナリオ、グラフィック、サウンドといった素材は揃っているのにプログラムだけが完成しなかったのです。

そこで現れたのが故岩田聡氏 元任天堂社長でした。当時、HAL研の社長を務めていた岩田氏はゲームデザインを手がけた糸井重里氏との会話でこのように話しています。

「これまで作ったものを流用して作れば完成まであと2年かかります。私が最初から作り直すのであれば半年で作ります。」

こうしてマザー2は無事半年で完成、大ヒット作品となりました。プログラミングの世界では1人の天才が状況を一変させてしまうことがあるのです。岩田氏はずっとプログラミングが大好きな人で、忙しい社長業をするかたわら、時間があるときには自宅でプログラムを組んで嬉しそうに部下に見せていたそうです。

また、Netscapeの創始者であるMark Andreessen氏はこういう話も残しています。

「5人の素晴らしいプログラマーは1000人の二流プログラマーを完全にしのぐ」

このような話を聞くのは残酷かもしれませんが、現実に天才と呼ばれる人間は存在します。しかし、優秀なSEは必ずしも天才プログラマーである必要はありません。優秀なSEは2種類考えられます。

1つは「特定分野に特化している」こと。もう1つは「特化はしていないが、幅広い分野で対応できる」ことです。ここでいう「特化」というのはたとえば、PHPのプログラミング「だけ」しかできない、DBはOracle「しか」いじれないような特化の仕方です。

どちらが良いのか?

私の考える「技術力のあるSE」は、特定分野に特化したSEではなく、幅広い分野で応用がきき、あらゆる状況に対応できるSEのことです。もちろん、特定分野に特化したSEも優秀なSEには変わりありません。

しかし、技術トレンドというのは移り変わるものです。1つの技術に固執してしまえば、時代の変化に追いつけずに取り残されてしまうでしょう。そのためにも、柔軟に変化できるだけの柔軟性を持ち合わせることが優秀なSEの大きな要素と考えます。

では、優秀なSEになるための心得を見ていきましょう。

 

その1:基礎をしっかり身につけろ

私もそうでしたが、業務に追われてしまうと基本を疎かにしがちです。表面的な技術にばかりとらわれてしまい、その場をどうにかすることばかり考えてしまうのです。私の上司は「基本が大事」と口を酸っぱくして言っていました

当時の私はその意図を理解することができませんでした。なによりも、仕事が忙しかったため、基本を大事にすることの大切さを考える暇がありませんでした(言い訳です)。「基本が大事」などという言葉はどこの世界でもいわれていることですし、それが実際にどれほど重要かを理解しているSEは多くないからです。

新しい技術を学ぼうとするときに、とても苦労するエンジニアと難なく技術転換できてしまうエンジニアがいます。上司曰く、「基本ができていれば、新しい技術が出ても問題ない。新しい技術は応用でしかないから。」ということでした。

基礎を固めるためにはどういう勉強をするべきかという話になると意外な答えが返ってきました。

基礎を固めるためにおすすめする資格

それは「基本情報技術者試験」です。いわゆるSEの登竜門的な試験ですが、意外なほど取得しているSEは少ないです。私のいた会社でも取得者は全体に10%程度、下手したらもっと少なかったかもしれません。なぜかというと、業務とほとんど直結しないからです。であれば、もっとわかりやすいオラクルマスターなどを取ったほうが泊もつく、というのが共通認識でした。

しかし、この業務に直結しない知識こそが「基礎」なのです。システムはアプリケーション、データベース、ネットワーク、ハードウエア、OS、セキュリティとさまざまな技術の集合ですが、基礎知識というのは特定製品に関係がありません。そのため、新しい技術が出てきても仕組みを理解できてしまうのです。

また基本情報技術者試験で問われるのは、SEが研鑽を重ね、これまで長い年月をかけて普遍的な知識として活用できると結論づけられた知識です。それだけ重要な情報が詰まった試験が基本情報技術者試験ということです。

これからSEとして長く活躍したいのであれば、勉強しておいて損はありません。

 

その2:年齢を言い訳にしない

ほとんどのSEが目の前のタスクに忙殺され、その場を凌ぐことだけに精一杯、そのような中で基本を固めろ、といわれてもなんのことやら理解することはできません。しかし、その場その場でどうにかできてきてもいつか限界を迎えてしまうのも事実です。

SEは35歳で限界といわれる

SE業界には「SE35歳限界説」というものがあります。どのような人間でも年を取ると新しい知識を身につけるのが大変になっていきます。若い人には吸収力ではかなわない、とボヤくSEも少なくありません。

IT業界では技術は劇的に移り変わります。その中で変化に対応できないSEは生き残ることができません。もちろん、金融業界のようにずっと同じ技術だけで食べていける業界(金融業界は支配的にCOBOLが使われている)もあるかもしれませんが、その業界もこの先どうなるかはわかりません。

35歳を超えてしまったときにSEは新しい技術を吸収することができなくなるのでしょうか?それは、人間としての衰えなのでしょうか?

SE=35歳定年説はウソ?

東洋経済ONLINEで気になる記事がありました。この記事では、加齢と記憶力の劣化はそこまで関連性がないと主張しています。

73歳の段階ですら、いわゆる動作性知能(目の前の要求に対応できるかという知能)は、平均で100を超えており、これは40〜50代の水準とさほど変わりません。

つまり、35歳になっていようが、50歳になっていようが記憶力に関していえば差はほとんどないわけです。ということは、結局は姿勢の問題なのではないかと私は思っています。子どもが新しいことをどんどん吸収していくように、大人だって同じことができるはずなのです。

子どもと大人の決定的な違いは何かというと、「楽しんでいるか」「新鮮味があるか」という点だと思います。35歳になればある程度の経験も積み、いろいろと見えてくる時期でしょう。しかし、それに満足してしまっている人と、新しい技術に日々ワクワクしながら向き合っている人とでは成長速度に差が出るのは自明の理ではないでしょうか。

 

その3:好奇心を持ち続けろ

任天堂の岩田聡氏がそうだったように、歳を取っても少年のように技術で遊ぶ好奇心を持つことが、時代に取り残されないSEの必須条件だといえるでしょう。そういう意味では良いエンジニアはみんな「好奇心が旺盛」であるということがいえると思います。

優秀なエンジニアはみんな実験好き

私の周りの優秀なエンジニアは気になる技術が出てくると、自宅ですぐに実験してきます。それで、業務中に「こんな技術があったんだけど使ってみない?」という形で提案するのです。そして、彼らはどんなに忙しくてもそういった遊び心を忘れません。結局、楽しいから業務外でプログラミングや技術検証をしても苦にならないのでしょう。

好奇心が旺盛で遊び心がある、大人だけど子どものような感性を忘れないことはエンジニアにとって非常に大切な素養です。私も新しい技術を使ってプログラミングをするときはとてもワクワクします。「おお、動いた!」「こうすればこうなる。ということは、こうすると・・・?」のようにどんどん暗い道路が明るく照らされていく感覚は、プログラミングをしている人であれば誰もが体験したことがあると思います。その感覚をずっと持ち続けることが大切なのです。

関連技術があればいじってみる

自分の興味に関連する技術があれば、積極的に試してみましょう。そこから得られた知見は、仕事のどこかで役立つときがあります。それだけでなく、ほかの技術に触れることによってトレンドを察知する材料になるかもしれません。SEは常に情報に敏感になっていないといけません。好奇心が旺盛であれば自然と最新情報に触れるアンテナを張ることができるでしょう。

また、こういうことを繰り返していると、環境構築するスキルがどんどん上がっていきます。自分で簡易的なサーバーを立ててみたり、仮想マシンでMac(OS X)にWindows、もしくはWindowsにMac(OS X)をインストールしてみたり、Cent OSやUbuntuを入れてLinuxのコマンドを覚えたりということが自然にできるようになっていきます。

こうしたスキルは実務レベルでも役に立つことが多いですので、どんどん遊ぶようにしましょう。

 

その4:「教育」されるな!「学習」しろ!

多くのエンジニアが持つ悩みの1つ、それが「業務時間外にも勉強しなきゃいけないの?」ということです。ただでさえ忙しいのに、オフの時間まで勉強しなくてはいけないのか、その気持ちはよくわかります。しかし、基本を身につけなければ移り変わる技術トレンドに追いつくことはできません。

企業によっては資格取得補助制度などで資格取得の受験費用や合格時には補助金の支給などを行っているところがあります。こういった制度は社員だけでなく、企業にとってもメリットがあるから補助金を出しているのですから、どんどん利用したいところです。

「学習」は「教育」よりもたくさんのことを学べます。それはなぜでしょうか。

教育と学習の違い

「教育」と「学習」という言葉は共に「学ぶ」という結果は同じですが、過程と方向性がまったく異なります。「教育」は他人が目的に合わせて知識を与える行為です。企業の新人研修などがまさに教育に位置づけられるでしょう。

「学習」自分が目的に合わせ知識を学び取る行為です。大学受験、資格試験といった目的を達成するために学習します。「教育」は複数の人間に対して行われるため、ある程度画一的な内容になってしまいます。ビジネスマナー研修、電話対応研修などがこれにあたります。対して、学習は自分の選んだ内容を学ぶことができるので学習内容に制限がありません

企業の目的とあなたの目的は一致しているか

企業の教育内容と自分の目的が完全に一致していればいいですが、そういったことは稀です。たとえば、あなたの会社の新人研修ではWebサービスの制作を学べるとします。しかし、あなたはスマホアプリの制作にも興味があり、やってみたい。こういう場合はミスマッチが起こってしまいます。このギャップを埋めるためには自分で学習するしかないわけですが、あなたにそこまでのモチベーションがなければ、休日を返上してまでスマホアプリ開発を学ぼうとは思わないでしょう。

終身雇用だった時代なら企業から教育されているだけでも食べるには困りません。その会社が求める内容だけを身につけていれば最低ラインはクリアできるわけですから。しかし、転職が当たり前になった現代では、1つの企業で働き続けられるかはわかりません。たとえ、大企業に務めていようと倒産しないと誰が保証してくれるのでしょうか。

以下の画像は大手転職サイト「リクナビNEXT」の調査で、「年代別の転職回数」を表したものです。これによれば、20代では24%が「転職経験あり」ですが、30代になれば53%、つまり2人に1人以上は30代で転職しています。40代になればさらに増えて62%が少なくとも1度は転職を経験しているのです。

参照:リクナビNEXT

とくに、IT業界は年間でたくさんの企業が生まれては倒産していく世界です。アプリ制作会社は一発当たれば大きいですが、その後鳴かず飛ばず倒産するケースも少なくありません。中小企業は時代の流れに乗っている内は良いですが、いつ経営が傾くかもわかりません。大手であれば安心かといえば、そうでもありません。

ワールドコムというアメリカの大手通信事業会社はITバブル崩壊後に粉飾決算を行い、多額の負債を抱えて経営破綻しました。負債総額は4兆7,000億円です。いつどのような形でも企業は潰れてしまう可能性があるということです。

大手であることに安心していた人が、明日から職を探すハメになることはありえるのです。もし、SEとして働きたいと考えているのであれば、常に主体的に学ぶ姿勢を持ち続けなければいけません。

自分の市場価値を上げるのは「学習」

あなたが転職をしなくてはいけなくなったとき、自分の市場価値はいくらなのでしょうか?それを決めるのはそれまであなたが積み上げてきた経験、実績とあなたが持つポテンシャルです。経験と実績は日々の業務をこなせばついてきます。しかし、それは周りの人間も同じことです。

はっきり言って、市場価値で差がつくのはどれだけ「学習」をしてポテンシャルを高められたかです。転職するまで必要ないものを頑張る気にならないですか?あなたが学習をすれば、対応できる業務範囲も広がりますし、それは経験と実績という形で自分に跳ね返ってきます

今回はあえて「学習」という言葉を使っていますが、「学習」という言葉は学生時代から使われているため自然と拒絶反応が出てしまう人もいるでしょう。では、別の言い方にしましょう。「学習」は能力開発コーチングの世界では「自己投資」と呼びます。

世の中で最大のリターンを生む投資先は「自分」

世の中には資産運用として「投資」という手段があります。株式投資、不動産投資、先物投資などさまざまな方法がありますが、どれも確実な投資先というものは存在しません。しかも、投資の世界では5%の利回りが出れば成功とされています。

その点、自己投資は投資した金額の何十倍、何百倍のリターンを得ることができます。たとえば、会計士の資格勉強のために専門学校に通ったとしましょう。200万円の学費が発生しましたが、見事に資格試験に合格、見事会計士となりました。そのおかげで年収が1,000万円となったのであればリターンは会計士を続ける限り大きくなっていきます。

新しい技術を学ぶために3,000円の技術書を購入した場合も同様です。技術書をマスターし、新しいプロジェクトのメンバーに抜擢され、給料がアップしたとなればリターンは何百倍にもなるでしょう。

もちろん、すべての自己投資が良い結果につながるわけではありませんが、この世に存在するどの投資よりも「勝てる確率は高い」のが自己投資なのです。新しい技術を学ぶことは「勉強」ではありません。自分をより高めるための「投資」なのです。

 

その5:自分の理想のSE像を見つけろ!

自分がどのようなSEになりたいのかという目標を持っておくことはとても重要です。ゴールがはっきりしていないのに走り続けられる人はいません。マラソンランナーは42.195kmという長い距離を走れるのは、ゴールとそこに行き着くまでの道順が決まっているからです。これが「ゴールは場所も道順も未定」というルールだったら走れる人はいないでしょう。

どこに向かって、どこまで走れば良いのかわかっているからこそ、人は頑張れるのです。理想のSE像(目標)を決めるということはマラソンのゴールを設定するのと同じことになります。なんとなく、気の向くままに努力をしてもそれで成功するのはごく一部の人だけでしょう。

極端な話、ネットワークのスペシャリトを目指す人がスマホアプリの勉強をするのは相当な遠回りになります。あれこれ適当に出していれば最短ルートでゴールに辿り着くのは困難なのです。そのために理想のSE像を設定することが重要なのです。

どの分野で一流になるのかを決める

理想のSE像のイメージが湧かないのであれば、まずはどの分野で一流になるのかを決めましょう。アプリケーションだけでもWindowsアプリ、Androidアプリ、iOSアプリなどさまざまなアプリが存在します。そのほか、ネットワーク、データベース、インフラなどの分野もありますね。どの分野を選んでも基本的には問題ありません。まずは、自分の決めた分野で一流になるために学習(自己投資)してください。

注意してほしいのは、SEの仕事をしていると、なし崩し的にその分野の専門家みたいになってしまうことがよくあります。たとえば、プロジェクトメンバーのなかでLinuxサーバーの一番知識があるのが自分だけだった。データベースのチューニング経験があったのが自分だけだった。みたいなケースです。こういう場合は「いまはサーバーもやっているが、自分の専門分野は◯◯です。」ということをプロジェクトメンバーにアピールしておいたほうが良いでしょう。

でないと、いつの間にか理想とは違う方向に進んでいってしまうことになります

先輩社員で理想に近い人を見つける

自分の理想像が決まったら、その理想像に一番近い人を見つけましょう。先輩社員でもよいですし、目標とする分野のセミナーや勉強会に参加するのもよいでしょう。尊敬できる人を見つけたら、その人がこれまでどのような技術を身につけ、どのような勉強をしてきたのかを聞いてください。

理論上は自分も同じことをやればその人のレベルに到達できるはずです。また、こういった「できる人」は問題解決能力が非常に高いという特徴があります。問題があったときにどのように分析してアプローチしているのかを見るだけでも大きな学びとなるでしょう。

ちなみに、特定技術分野のコミュニティに入るのは非常におすすめです。コミュニティに集まってくるのはいわゆる「技術オタク」です。これは悪い意味ではなく、技術で遊ぶのが趣味な人が集まっている、子どもの好奇心と遊び心を持った大人たちです。そこで得られる情報や考え方、人脈はあなたのキャリアの可能性を一気に広げてくれるでしょう。

しかも、こういったメンバーは横のつながりが強いので、「類友」効果でどんどん人脈が広がっていきます。私の知り合いはそういったコミュニティで知り合ったコネで、ある大手企業とつながって簡単に転職してしまった人もいます。

企業内の先輩ももちろん、目標にして良い存在ですが、結局似たような環境にいる人なので情報や知識が似通ってしまう可能性が高いです。そういう意味でも他のフィールドで活躍している人たちと交流するのは有意義になります。

誰からも頼られるSEになろう!

ここまで、SEとして成長するための心得をご紹介してきました。もう一度確認すると

  • 基礎をしっかり身につけろ
  • 年齢を言い訳にしない
  • 好奇心を持ち続けろ
  • 「教育」されるな!「学習」しろ!
  • 自分の理想のSE像を見つけろ!

ということでした。まず、幅広い技術に対応するためには、基礎が重要です。基礎を身につけるためには基本情報技術者試験を受けましょう。また、加齢によって記憶力が落ちるということはありません。要は技術で遊ぶ好奇心があるかどうかです。さらに、人から教えられるのではなく、自分で学ぶ姿勢を大切にしてください。自分の理想像を設定し、目標となる人を見つけてください。可能であれば、自分の興味のある分野のコミュニティを見つけて参加してください。

これらを実践すれば、あなたは他の同期よりも相当早く一流の技術者になれるはずです。この記事を読み終えたらすぐにできることから着手しましょう。それが大いなる第一歩となります。