エンジニアのサブルーチン

あまり注目されない組み込みのシステムエンジニアをやっています。エンジニア業界のこととか、勉強したこととかを不定期に更新していきます。

エンジニアになって

エンジニアになって3ヶ月立った。

 

研修は最も一般的なものでだいたい3ヶ月であり、その研修を終えると正式に社員として各部署に配属となる。

かくいう俺も無事3ヶ月の研修を終えて近々配属となるわけだが、配属される前に今一度エンジニアとは何か、あくまで個人的な見解なので、賛否はあるだろうし、間違っていることもあると思うが、それを恐れずにここに書こうと思う。

 

エンジニアとは何か

エンジニアとは簡単にいうと「ものを作る技術がある人」の事をいう。

 

より厳密にいうと、工学系のもの(例えばハードウェアやソフトウェア)を作る技術のある人なのだが、本質は同じなので問題はない。

しかし、付け加えると、ただものを作るだけならそれはエンジニアとは言わない。なぜならそれはただの趣味であり、DIYとか工作の類でしかないからだ。

エンジニアは、依頼を受け、それを依頼者の納得のいく形で作ってお金をもらって初めてエンジニアと名乗れる。

 

依頼者の納得のいく形を作ることは容易いことじゃない。

 

依頼者の思い描いているものがいかに正確に、詳細にエンジニアに伝わるかでも、できるものの質は変わる。

つまり、依頼者が曖昧なイメージのまま依頼を出すと悪いものができるし、逆にエンジニアが依頼者のイメージを忠実に引き出せないのも悪いものができるのである。

実はいいものを作るにはこの部分がかなり重要になってきて、この業界でいうところの上流工程に当たるのだが、この上流工程はプロジェクトの20%~30%ほどをしめる。

 

エンジニアはプログラムをひたすら書いているとよく誤解されがちなのだが、実際はプロジェクト全体の2割程度で、だいたいはもう上流工程で決まっているので、プログラムはそれに沿って書くだけなのである。

 

 

エンジニアが最も恐れるもの

想像はつくだろうが、エンジニアが最も恐れるのはバグである

2004年以降発生したタカタのエアバッグ問題を覚えているだろうか

automotive.ten-navi.com

 

世界シェア第3位のエアバッグメーカーだったタカタが自社製品であるエアバッグの不具合が多発、死者18名を出した。最終的に約8100万台のリコールが発生しそれが大打撃となり倒産した。

 

この出来事を見てわかる通り、どんな大企業でもたった1つのバグで倒産まで追い込まれる。全世界のIT企業、エンジニアはこれを常に恐れている。

その表れとして、プロジェクト全体でテスト工程がしめる割合は約30%もある。

このことから、いかにエンジニアがバグを恐れるのかなんとなくわかってもらえるだろう。エンジニアがバグを恐れるのは自分の書いたコードが人を殺すかもしれないからなのだ。

 

優秀なエンジニアとは

よく誤解されるのが、優秀なエンジニアはいろんなプログラミング言語を知っているとか高度なテクニックとかを知っている人のことをさしていると思われている。

そんなことは実際はそこらへんに落ちている石ころくらいどうでもいい。

 

真の意味で優秀なエンジニアとは、経験や知識もそうだが、いかに自分の担当箇所に責任を持っているか だと思う。自分の設計やコードに責任を持てない奴なんて適当に書いてるに違いないのだから、会社にとっては害悪でしかない。

世の中には便利だからか、昔からの癖だからか知らないが極めて危険性の高い記法を使う人だっている。

先ほど話したと思うが、エンジニアは1つのバグで人を殺しかねない。仮にそれに至らないバグだったとしても、バグの内容にもよるが、それの原因究明、修正に何百人といった人員が割かれて何千万と言ったお金がかかるのだ。迷惑この上ない。

 

しかもその危険な記法を使っているのが40代のベテランおっさんエンジニアというんだから殴りたくなる。正直今すぐエンジニアと名乗るのをやめてほしい。そしてこの先の人生で一度たりとも「昔エンジニアとして働いてた」と語るのも辞めてほしい。

 

本当の意味での優秀なエンジニアは、こう言ったバグを生み出す原因でしかない危険な記法を避けるだけでなく、自分の作ったものを誰がどう使っても問題のないように、そして誤解されないように作っている。

 

例として、一時期話題になったのだが、ニンテンドースイッチのソフトである

www.businessinsider.jp

子供が間違ってゲームカードを飲み込まないように苦味成分を塗っているのだ。

もし子供が間違って飲み込んだら?これも、最悪死に直結する大事件に発展してしまう。

これと似たような事がエンジニア業界でも発生しうるのだ。

 

こう言った事から、要は、誰から見てもわかりやすいコードをかき、どう使っても問題ないようにしっかりと対策を施す。優秀なエンジニアとして評価されるのは、こう言ったところから始まっていくと俺は思っている。そのためにも、なんどもいうが、自分の担当箇所に責任を持つことは大事なのである。

 

 

 

最後に

最近は給料が高いからとか、自分にあったスタイルの仕事が選べる。とかでエンジニアを目指し始める人が多いように見受ける。

実際に俺も新卒なら考えられないくらいもらっている。(これは社風にもよるかもしれないのだが...)

けれど、給料が高いのは技術職だからでなく、人のプライバシーや生命に関わる責任の大きい仕事だからでもあるのだ。

もしあなたがエンジニアを目指しているなら、いや、エンジニア業界に限らず、そう言った責任の重さを背負っていかなければならないという事を覚えておいてほしい。

 

俺も3ヶ月の研修でエンジニア業界について片足突っ込んだ程度のことしかしらないし、優秀なエンジニアどころか、まだエンジニアの最底辺に位置していると思っている。これからは常に責任を感じながらの仕事になるだろうし、正直辞めたいって思うときもこれからでてくるだろうが、一歩一歩それを乗り越えて日本を代表できるエンジニアになっていけたらと思っている。