冬眠期間

クマの冬眠期間中にみんなでワイワイする(したい)ブログ

【Tech】【雑記】エンジニアとサラリーマンの間で・・・

先日とある記事でエンジニアに関する記事が投稿されていました。

筆者もなんちゃってエンジニアとして暇潰しのため読んでみましたが、共感半分・否定半分というところでした。また個人的にその記事を執筆した方の記事投稿後の一貫性の無さにもちょいと思うところがあったので、自分なりのエンジニア・サラリーマン像をまとめてみます。

その前にとある記事とはこちらになります。

とある記事の筆者なりの解釈

  1. エンジニアとは須らく成長を志すべきで、常に最新技術を取り入れていくべき
  2. 顧客と会社が契約した金額の満額ではなく給料分働くべきだ
  3. エンジニアとは職人を同じで一部のスキも残さない素晴らしいものを提供すべきだ
  4. チーム内では常に切磋琢磨し褒めることろは褒め、謝罪すべきときは謝罪をするそんなチームにすべきだ

といった感じです。ここから更に執筆した方のコメントの解釈です。

  1. 人間は夢や希望を持たないと生きられない生物種
  2. エンジニアの多くは夢を抱いてこの業界に足を踏み入れたはず
  3. 日本のエンジニアの大半(95%)は職人気質ではない。だから全員では無いにしろ他国のITエンジニアたちと同じくらいの割合に追い付きたい
  4. エンジニア業界は常に他国との国際競争のなかにある
  5. (例え話として)学生が寿司チェーンで作っただけでは職人とは言えない。プライドをもってちゃんと握ってるのが職人だ
  6. エンジニアのみなは常に最新技術を取り入れたいと思っている
  7. 一般的な会社の経営者はITに対する理解がない。自社の経営者はITに対する理解がある。だから勤務時間の3割は自己研鑽に当てて良いとされている
  8. 創造的なコードは保守性も高い。誰でも理解できる
  9. 最初にとある記事に対する意見という名目で書いているのに、誰かに書けと言われて書いた
  10. 話が噛み合わないのは自分のせいじゃなくコメントした側の責任
  11. 書いた内容は理想でもなんでもなく、すぐに実現可能な内容だと思ってる
  12. コメントにつくLGTM(いいね的なやつ)の数で良し悪しを決める

長くなりましたがこんな解釈をしました。列挙してるだけなので解釈とは言えませんが・・・。

端的に言うと、とても言葉が悪い言い回しになってしまいますが、

この方はとても高い理想をもっていて、エンジニアの将来のことを考えていますが、現実を直視できないもしくは、現実を知らないのに、非現実的な理想論を述べて、現実をぶつけてくるユーザから逃げてるだけの所謂ファンタジスト

という感じでしょうか。あくまで筆者の解釈なので悪しからず。

 

どのあたりが非現実的なのか

まず大前提として、最新技術とはなんぞやというところですかね。

IT業界は日進月歩の世界なので、常に最新が更新されて行ってる状態です。

そんなことを言うと最新技術なんて一生ないじゃないか!と反論されそうなのであえて深くは言いませんが、まぁ例えばJavaで言ったら常にLatest版を使用する。使用するフレームワークも常に最新のものを。

こんなところでしょうか。で、Latest版入れたんだから新機能ガンガン使おうぜ。というのが著者の言いたいことなんだと思います。ここからは憶測ですが著者の方はフロントエンジニアっぽいので、バックエンド業務の多い筆者からは言いづらいですが、多分Reactとかvue.jsとかガンガン使おうやっていう感じなんだと思います。たぶん・・・。

フロントエンドも勉強しないとですね・・・。

話しを戻しますが、Javaを例に出したのでこれで話を進めます。いま時点だとJava14が最新のバージョンになると思いますが、これをクライアントに提案するのは限りなく難しいです。何故かというと、こういう記事見るとわかりますがサポートの範疇が変わったりしています。それに伴ってランニングコストにも多大な影響を与えます。顧客としては最新技術であるかは二の次三の次もしくは優先度が最低かもしれません。最悪、ある程度の性能を有していれば問題ないとも言うかもしれません。

顧客にJava14の使用を採用してもらえない時点で、最新技術の投入は儚く散るわけです・・・。

というわけで極端な例かもしれませんが筆者的には常に最新技術を扱うのは非現実的と思うわけです。で、最新技術ではないものの勉強もまた必要になってきます。そうなると著者が言っていた常に最新技術を学ぶというのは不可能なんじゃなかろうかと言うのが意見です。

 

ほかの非現実的な部分

先に言ったのは環境的な要因で最新のものが取り入れられないお話でしたが、次は人的な要因でも。

筆者はたかだか8年くらいしかこの業界に居ないので、ひよっこがわかったようなフリしてと思う方もいるでしょうが聞いてください。

前の会社にいるときは自社でBPと一緒に。いまは自分がBPとしてクライアント先に。と、ひよっこながら結構いろんな環境でいろんなエンジニアを見てきたつもりです。

・常に自己研鑽をするために学習をする

・すべてを投げ売ってでも学習していく

・会社のために学習をする

・高い給料をもらうため、評価を気にして学習する

・最低限の仕事をするから、学習する

・その場でググれば解決できるから、学習しない

etc...

とエンジニアという狭いくくりにしても千差万別は言いすぎですが、いろんなスタンスの人がいます。一番上と2番目が著者の方がが目指しているエンジニア像に近いですかね。

ここで疑問なのがまず何をもって学習したら、最新技術を学んだと言えるのかです。

さっきの例にも出したJava14の新機能を全部網羅したら最新技術を学んだと言えるのでしょうか?Reactとかvue.jsが使えれば最新なんでしょうか?

そもそも全員が常に自己研鑽するという状況がすでに破綻してますよね。仕事のため自分のため家族のため・・・。人それぞれ働く理由がありますし、エンジニアと言う業界も自分のため、金を稼ぐ手段として・・・。いろんな思惑が入ってる中、全員に自己研鑽を要求するのはまず不可能でしょう。たしかにそうなるのは理想ですが、その理想を叶えるためにはかなりの選民意識をもたないとダメでしょう。

その時点で宗教臭くて筆者だったら絶対にそこの業界には行きたくないですけど。

 

じゃあ正解はなんなのか

答えは無いと思います。なぜなら最新だけ学べば通用する業界ではないからです。例えば、金融システムなんかは未だにCOBOLで動いてたりします。他の言語と違いCOBOLはベンダーごとに仕様が異なるのでもうリリースしてないのもあればMF社のCOBOLのように2014年にリリースをしてたりします。

で、それを運用してたり機能追加するという業務があります。著者がそのことについて突っ込まれるとDevOpsってご存知ですかと返していました。それを見ていてそもそも話が噛み合ってないなーと思いました。それは開発の手法であって手段ではないです。

COBOL技術者は最新を取り込む必要は無いです。むしろ出された要求に対してバグのない仕組みを作るのが仕事です。そこに著者が言う最新の技術学習は含まれているのか?含まれていないと筆者は思います。

むしろ余計なものですらあるでしょう。

とはいえいつCOBOLから移行するかわからないですし、AWS環境でCOBOLが動作できるようになったみたいなので、そのあたりの知識収集は必要かもしれませんけど、それを最新技術というべきかは微妙なところでしょう。

というわけで無理やり結論を付けると、なにも最新を取り込むだけがエンジニアではないということでしょうか。

むしろ最新だけ取り込んでも使う機会がなければ無駄ですし。

批判は大いに受け付けますが、こうあるべき・こうでなくてはならないという決めつけこそが一番の進化の妨げであると考えます。常に腕を磨き続ける。それは大変結構であると思うと同時に、腕を磨かなくてもできることも最良であるのではないかと思います。途中に寿司の例が出ましたが、たとえ機械で作ったとしてもそれは寿司であるのには変わらないです。で、そこに知識や技術は介在することなく寿司が出来ます。これも一つの進化だと考えます。我々の業界もゆくゆくはAIに淘汰される業界と言われています。例えば人ではなく機械学習をしたAIが組んだシステムはシステムではないと言えるのでしょうか?動けばなんであれそれは一つのシステムです。そこに最新の知識が必要かと問われれば必要ないでしょう。やり方一つで必要なものも変わってくるので、それを引き合いに出すこと自体がナンセンスだと言うのが筆者なりの答えです。

要は自分の業種ごとにちょっとだけ先を見据えて、リラックスするのが肩肘張らなくて良いだと思います笑

 

どうしても納得の行かなかったこと

ここからはかなり暴論ですし、自分の凝り固まった考えかつ、揚げ足取りな内容なのであまり参考にしないでください。

会社を引き合いに出すな

この著者、本文の冒頭で「会社は関係ない、自分の意見です」と書いています。が、コメント欄で、「この記事は自社の人間も見ているので、そのコメントを楽しみにしてください」と反論しています。

矛盾してね?

いや会社の人間見ててコメントをしてくれることを期待してる自体、会社巻き込んでるよね?しかも自分のプロフィールに所属してる会社載せてるよね?

筆者はかなり穿った見方をする意地汚い正確なので、正直この著者が所属してる会社の底が知れたなと思いました。正直成長しつづけるべきという考え方はある程度共感できますが、それ意外は何言ってるんだこいつ状態だったので、そんなことを不特定多数の人間が見れる場所に公開しちゃうような人間を雇ってる企業というだけで敬遠するに値します。仮に人材派遣なんぞやってる会社だったら絶対に依頼しないレベルです。

こういうマイナスの意見が出得る場所で、会社の看板を見せるのは悪手としか思えないですし、古い考えかもしれませんが、自分の所属を明かすような人間は信用できません。他にどこで情報を漏らすかわかりませんし。

というわけで、できるだけ不特定多数の方が見られる場所ではできるだけ個人情報は隠しましょう。

 

サラリーマンなら会社の利益を考えろ

まずエンジニアとはなにか。これは著者と発想が似ていて、職人みたいなものだと思っています。何か一つのことを突き詰めるという意味では研究職と似た感じでもありますよね。ですが違うとすれば突き詰めたもので利益を出さなければならないことです。エンジニアと言いながら会社に属していればどんな職種であれサラリーマンなのです。

そしてサラリーマンとは、会社の指示を遂行して対価として給料を得ることです。

つまりエンジニアは自分の技術力を会社に提供して、その対価を給料として頂いているわけですね。

著者は文中に、

日本のエンジニアの生産性が低いというのもよく言われることです。ですが、これは当然のことです。 客が100万/月を支払ったとき、実際にエンジニアの手元に入る額は30万/月だったとします。 このエンジニアは、100万/月の仕事をすれば十分でしょうか?30万/月の仕事をすれば十分でしょうか? 私は30万/月の仕事をすれば十分だと考えます。 それが報酬の定義だからです。 しかし、GDPなどの指標的には、客が100万/月を支払っているのにエンジニアが30万/月の生産性しか発揮しなければ「生産性が異常に低い」と評価される事は避けられません。 では、残りの70万/月の付加価値を創る仕事は誰がすべきなんでしょうか? このことを、業界は真剣に考えるべきです。
書くまでもないと思いましたが、コストには人間のコスト以外にも様々なコストがあります。それらのコストは当然100万の内訳に含まれるという事は承知の上で読んでください。

というような、内容を書いていました。正直この内容をみて思ったのは、独立したら良いのにということです。

顧客と会社が100万で契約をして、会社は対価として著者に30万の給料を支払っています。しかし著者のかたは自分は100万のうち30万しか受け取ってないから30万円分仕事をすれば十分と言っています。言うまでもないですが会社に技術力を提供することの対価が給料30万円という契約にサインをしたのは他でもない著者なのです。

会社というのは存続するために利益を出さなければなりません。文中に70万円の付加価値を作るのは誰がすべきかと問うていますが、そもそも付加価値でもなんでもなく会社の利益です。もしそれに不満が有るのであれ経営者に言えばいいですし、自分の納得の行く金額でなければ自分で会社を興すのもありでしょう。独立すれば100万で契約すれば100万円そっくりもらえるわけですし。

きれいごとを言いますが、対外的には会社が期待するのは100万円の働き。社員はそのうち決められた給料をもらい、それに答えるべきというのが会社のシステムだと思います。

その代わり、仕事は会社がもってきてくれる、年金の半分を払ってくれる、なにか問題起こしたときに盾になってくれるなどがサラリーマンの利点であると考えます。

もし仮に会社が100万の仕事をもってきて、その金額まるっと社員に払ったら会社は存続できませんし、大きくもなりません。それが会社に属すという前提が著者には無いのかと思います。

その反面エンジニアとして最善を尽くす、つまり最新技術で何かを作り上げたいという感情も理解できます。しかしそれにはどうしてもコストの問題がつきまとってきます。例えばGAFAのような研究開発に資金を投じれるくらい余剰な利益があれば良いのでしょうが、日本の企業はそこまで体力のある会社は多くありません。できる限り低コストでというのが大半を占めると思います。なにか最新のものを取り込むということはコストも掛かりますし、それに伴いリスクも多くあります。最新のものということは採用しているところも少ないので問題が顕在化しないこともあります。そのリスクは出来得る限り追いたくないのは心情ですし、提案する側にも責任がつきまといます。

冷たいような言い方ですが、常に新しいものをという考え方をするのであれば、先程も言ったGAFAレベルの会社に属すか、個人で責任を追うという前提で独立することが最善だと思います。

話がそれましたが、会社に属す以上は、自分のやりたいこと<会社の利益であるべきと考えます。

 

結論

どちらかに振り切れろ!

です。エンジニアとして生きていくなら、会社に属すのではなく独立すべきですし、

サラリーマンとして生きるな自己は捨てて会社に奉公するというのが筆者の考えです。

といいつつ、筆者は自分を捨てるのはまっぴらですし、かといって独立するような度胸もなければ技術もないので、妥協案としてできる限り会社にやりたいことをお願いしつつ、会社の意向に沿った動きをするということです。まぁ大体のサラリーマンはこのやり方をしているのであえて言うことではないですけど笑

 

最後に

ごちゃごちゃ言いましたがみんなそれぞれ考え方が有るんだから、自分がいいと思った方法で生きていけば良いんじゃないという感じです。

割と気になったことですが、元記事書いた人って新人ですよね・・・。筆者が言えたものでは無いですが、あまりに内容が稚拙と言うか幼稚ですし、コメント内容も場当たり的すぎて突っ込みどころが多すぎますし。もしこれが30越えた社会人だとしたら、ちょっとな・・・という気持ちになります。

 

最後までお読みいただきありがとうございました!