第20話 エンジニアは育つのか育てるのか

2010/01/12 17:15:00

 あらためて書きますが、わたしのエンジニア歴は20年です。20年前といえば、バブルの末期だったと記憶しています。世の中が好景気だったので、学歴が低いわたしでも就職で苦労した記憶はありません。今の若い人から見たらうらやましいというか信じられないと思います。

 エンジニアとしても「ハードウェア設計」から始まり、プロジェクト規模も大規模(都市銀行)から1人でデバイスドライバ作ったり、PG、SE、 PMどれも経験しましたし、正社員、派遣、フリー、経営者(起業)すべて経験しました。プロジェクト自体の失敗はあまりないですが、起業は多分失敗しました(それでも懲りずにまたやりたいと思っています)。

 いろいろな立場でいろいろな規模のプロジェクトを経験してきたのですが、ここ最近は昔と違い、エンジニアの気質が変わってきたと感じます。これは若いエンジニアだけはなく、それなりに経験のあるベテラン領域のエンジニアも同様です。

 ターニングポイントはおそらく「インターネットの普及」だと思います。ブロードバンドが安価になり、職場でも家庭でもインターネットに接続できるようになりました。これから先エンジニアになる若い人は、物心ついた時からすでにインターネットは当たり前だった、という時代も、遠からじくることは確実です。前のコラムでも少し触れましたが、エンジニアは非常に便利なツールを手に入れた代償に大切な「何か」を失ってしまいつつあると、現場を見てて感じます。

 今回はその「何か」を考えながら、あらためて先輩エンジニアはこれから何を若いエンジニアにしていくことが必要なのかを書こうと思います。

■お腹いっぱい

 わたしが初めて買ったパソコンはシャープの「X1」でした。スペック的には(憶えている範囲なので違っていたらゴメンなさい)CPUはZ80Aの4MHz、メインメモリは64KB、VRAMはI/O空間にマッピングされていたのでメモリとは別に48KB、漢字は別売りの「漢字ROM」がないと表示されず、フロッピーどころか記憶メディアはカセットテープという今では考えられないスペックです。当時はOSなんて知らなくて付属のBASIC(ハドソン製のHu-BASIC)で遊んでました。容量単位なんかは間違いか? と思えるほど少ないです。

 ゲームソフトはそこそこありましたが、当時高校生のわたしに買えるはずもなく(それにゲームならファミコンの方が、という感じでした)、例えばワープロとかそういうソフトもなかったので(そのうち出てきましたが)「ベーマガ」(あえて略称で。分かるに人はなつかしいと思います)という雑誌に載っているプログラムリストを自分で打ち込んでは改造しながらプログラムを学んで行きました。

 そのうち、BASICでグラフィックツール(お絵かきソフト)を作ったのですが、どうしても満足できなくてそこで初めて「マシン語」を使いました。つまり、紙にアセンブラをコーディングし、命令変換表を使って自分でマシン語に変換し(ハンドアセンブル)それをBASICのpoke命令を使って指定アドレスに1バイトずつ丁寧に格納するプログラムを作ります。当然、コーディングミスやタイプミスなんてのはあるのですが、デバッガなんてものもなく「実行」→「暴走」→「チェック」の繰り返しで、非常に気の長い作業を延々やってました。自分の欲しいソフトはすべて自分で作るしかなかったので、その過程でハードウェアの非常に低レベルな所から掘り起こすクセがつきました。そうしないと、なかなか希望するものが作れなかったのです。

 今はネットや雑誌などから作る気なら、開発環境も言語も容易に手に入ります。それ以前にたいていのソフトは誰か作っていることが多いので、探すだけで手に入ることも多いと思います。つまり、昔は欲しいソフトがあれば作るしかなく、満足するにはいろいろ調べて細かいことまで知らないとソフト開発もできなかったのですが、今はそんな必要もなく便利な開発環境やツール、フレームワークが大量に存在します。技術的にもソフトウェア的にも昔は飢えた状態でしたが、今は「お腹いっぱい」の状態なので、今のエンジニアはそれらを便利に使うことを考えれば良くなってます。

■インターネットの功罪

 今と昔の状態を比較して「だから今のエンジニアはダメなんだ」と短絡的にいう気はありません。確かに、昔は資料もツールもないので何でも自分で調べて自分で作るしかありませんでしたが、逆に今はハードもソフトも複雑に絡んで動作しているため、昔と同じようにやるのは基本的に無理といえます。

 仕事に至っては、いろいろなツールやライブラリ、フレームワークをいろいろ検討して、一番効率的にプロジェクトが完了する方法を予算と期間を考慮して実行するのが普通だと思います。職業エンジニアの場合、会社や顧客はスキルを要求するのではなく、会社は短期間にプロジェクトを完了させられることを、顧客は期間内に希望通りのシステムをトラブルなくできあがることを要求します。裏を返せば、スキルではなく、ごまかすことさえできれば成立してしまいます。フレームワークやライブラリを使うと手を入れるところが少なくなるので、それこそ小手先のスキルで仕事的には成り立ってしまう可能性はあります(良い悪いは別として)。

 そうはいっても、インターネットが普及する前までは今のように誰でも簡単に……でもなく、メーカーのツールやライブラリも高価だったので会社で購入し、それをそれなりに研究して使うことも多かったと思います。資料などを社内で蓄積していき、先輩が後輩を指導しながらエンジニアを育てていく環境があったように思います。

 インターネットは、確かに情報ツールとしてもまたコミュニケーションツールとしても革新的なものをもたらしました。しかし、その裏では本来対面で話すべきことすらメールで済ましてしまったり、先輩も後輩もググることの方を優先してしまい、後輩が先輩に聞いたり、先輩が後輩を指導したりといった職場やグループ内でエンジニア的なコミュニケーションがなくなりつつあります。そのため、コードの意味も分からず「動くから」「使えそうだから」といった何となくフィーリングでスキルと経験を積み重ねています。これは若いエンジニアだけではなくベテランのエンジニアにもいえることです。

 便利なツールが、エンジニアとしての「つながり」を断ち始めているとも取れます。ITエンジニアは元々コミュニケーションが苦手な人も多く、それも拍車をかけていると言えます。わたしの職場でもそうですが、下手すれば1日中職場内で会話しないこともあります。これは昔はなかったと思います。

■エンジニアはすでに育たない

 極論で申し訳ないですが、これからはエンジニアはなかなか自分から育つということは難しいと思っています。

 ソフトウェア開発の軸が「作り出す」から「上手に組み合わせて使う」にシフトしている現状では、最初に述べたとおり基礎技術はすでにお腹いっぱいです。そのうえで行うので、自分からわざわざ下のレイヤー(ハード、OS、ライブラリ、フレームワーク)のことを調べて学ぶ必要もないからです。わたしが知っている若いエンジニアにはビックエンディアンやリトルエンディアンがすでに死語になっている人もいます。確かに日常ではあまり使わず、バウンダリの位置がおかしくてエラーになることもまずないでしょう。逆にWebアプリでは「デザイン」のスキル(というかセンス)が要求されるでしょう。

 まわりの状況が満たされている。そして、技術の移り変わりが早いため、じっくり取り組んでやるよりは新しいことを常に試行錯誤することを求められるので、スキルの考え方が少し昔とは違います。また一口にソフトウェアといっても、昔とは比べものにならないぐらい範囲が広いため、すべての技術を習得するのもすでに不可能といえます。そういう中で新人エンジニアが自分から必要な技術をあれこれ学習して育つのは難しいと考えます。

 そういう意味では、先輩が後輩エンジニアを育てる「環境」を意識して作ってやらないとそれができない職場やグループはいつか機能不全に陥る可能性をはらんでいると思います。派遣エンジニアなら、後ろ盾を失えばそれで職業としてエンジニアをあきらめざるを得なくなってしまいます。前は「プログラマ35歳定年説」なんてありましたが、今は職場を見るとエンジニアの平均年齢は確実に上がっており、下からの底上げが必要な会社もあるんじゃないでしょうか。

■結果がすべてとは限らない

 世の中、だんだんと結果「のみ」が求められて来ています。仕事においては昔からそうなのですが、最近は早期に出すことを要求されています。政権交代が起こって約4カ月ですが、テレビのワイドショーなどでタレント司会者が分かったような顔で「国債発行して借金増やすの?」「こども手当はどうなの?」「ムダ遣い、天下りはどうなの?」と矢継ぎ早に攻め立ててあたかも庶民の代表、正義の味方みたいな振る舞いをし、野党は「政治とカネの問題を追及する」といっています。たかが4カ月で今まで戦後積み重ねてきたシステムが変えられるはずも借金を減らせるはずもなく、マスコミもウケだけを狙って政権のミスを誇張していきます。

 われわれ国民も、国債発行や増税はイヤだけど、景気は良くして欲しいと各々自分の都合のよいことだけを主張しています。そんな世の中だからどこにも余裕がなく、閉塞感だけがまん延しています。これでは誰も前向きに頑張ることなどできなくなってしまいます。

 IT業界では、せめて若手に対しては結果だけではなく過程も大切にしてあげないと、本当に「横着」なエンジニアがたくさん出てきます。

 若いエンジニアに経験を積ませてスキルの研さんを促すのは大切です。未熟なエンジニアに結果だけを求め、できなかったら責めるような業界では未来は明るくなるはずもありません。

 特にこれからは本格的に平成生まれ、ゆとり教育世代が社会に出てきます。考え方も状況も昔とはまるで違うのでそれを踏まえて若いエンジニアの質が上がるようなもっと「育てる」環境作りが必要だと思います。

 ググって、自分が理解していないコードをコピペすることはかまいませんが、そこで終わってしまうようなエンジニアではなく、それが良いのか悪いのかを試行錯誤しながら正しく理解できるようなエンジニアを育てることが業界全体を明るくするのではないのでしょうか。プログラムを作るエンジニアではなく、「プログラムを考えるエンジニア」を目指して欲しいと常々考えています。

 会社としては、とにかく仕事をこなして収入を確保しないと屋台骨が揺らいでしまうため、今は育てるどころか新入社員も採用できない状況にありますから、今の若いエンジニアやエンジニア志望の人には気の毒な部分があります。厳しいですが、若いエンジニアにはめげずに頑張って欲しいと思うのが先輩としての願いです。

エンジニアライフ 最新の投稿コラム

@IT自分戦略研究所 新着記事

エンジニアライフ スポンサー

コラムニスト プロフィール

にゃん太郎
中堅ソフトハウスの地方支社に勤務するエンジニア歴20年のおっさんです。長年やってきたいろいろな経験やこれからのソフトウェア業界についていろいろ語りたいと思います。

- PR -

@IT Special 注目企業
iPhoneアプリは外注?いやオレらが作る!
社内エンジニアに“檄文” 開発秘話公開

New!
【転職体験談】mixiに転職したエンジニア
8年間のSIer生活で得たスキルとは何か?

New!
→ インデックス

@IT Special ラーニング 
◆クライアント企業から求められる人材
⇒IT技術と経営戦略を併せ持つ「戦略家」

New!
◆気になる社会人大学院。興味はあるけど仕
事と両立可能?実際に通った6人に聞いた
→ インデックス