見出し画像

やはりお前らのジンジニア/エンジニアは間違っている?(前編)

いや間違ってるのお前だから!!! と思いながら読んでいただければと思います。自社のエンジニア採用において、自分が考えていたエンジニア像と現場の求めるエンジニア像の一部に違いがあるなと感じたことがこの問題を考えるきっかけでした。

先日「ジンジニア」コミュニティの1人として参加させてもらった 転職透明化ラジオ の収録にて 21:40 くらいのところで軽く触れたものの、この話についてはまだ自身の中でも十分深めていなかったこともあってお話できませんでした。今日はその件について書いてみます。

この収録でお話したポイントの中で、私も求職者の方とたくさんお会いすることもありエンジニアにもいろいろいると感じています。どういうタイプの人が自社にマッチして、どういう人は別のところの方が活躍できそうだという点。またはエンジニアになりたいと思っているけどその理由ではならないほうがいいのではないか、という点で感じていたことがありました。

ラジオでもお話したことの他にも

・コードを書きたい。ものが動くようになる瞬間が好き
・大きな、複雑な、多くの人が使うシステムを扱って人の役に立ちたい
・お客様のご要望を形にすることで感謝されたい
・稼げるらしい

などなどの「今後のキャリア像」があるかなと思っています。特に私の所属する企業ではこの「お客様のご要望を〜」というタイプの方が実はマッチしないと感じることがあります。自身の経験にもありますが、この「お客様」というイメージが、「顧客企業の担当者(せいぜいその先の社内にいるそのシステムを使うエンドユーザ)」に閉じている場合です。このタイプのお客様からは、十分に話を聞いて、その話からさらにこちらで提案をしてより良くしていく、というプロセスは楽しく、結果的に感謝されることはエンジニアの業務の中でとても大きなやりがいになるのは間違いないでしょう。

一方で自社サービスを提供している会社の場合、もちろんユーザーインタビューや、ご要望などとして寄せられるコメントはあります。ただし、それらを解決していくことが必ずしも良いサービスを作ることにつながっていきません。声を上げてこないユーザは満足して使っているかもしれないのです。それを一部の声を採用してしまい、今まで声をあげてこなかったユーザが離れていってしまうこともあるかもしれません。

ここで一つポイントになりそうだなと思っているのが「エンジニアの分類」です。(タイトルで軽めに煽っておきながらこれが正しいというつもりはありません)

SoR, SoE, SoIの領域とよく言われます。

仮の分類

これにやや近しい概念として「ソフトウェアエンジニア」と「システムエンジニア」の違い説を考えています。(なお、私が新卒で入社した会社はこの二職種は別の名称として存在していましたがこれから書く内容とは異なります。当時のソフトウェアは「パッケージ」的な意味合いでした)

この2つの違いを私はこう捉えてみることにしました。(不備、言い足らないことはたくさんありますが...)

システム: 予め十分に計画立案し、そこに投入した予算を資産として計上する。減価償却の対象となる。工場のラインを作るように設備投資が必要になり、ウォーターフォール寄りの手法の開発が適している。誰かが出来上がりの正解を決めていて、予算がある。作るまでがまずは勝負で、減価償却を考えると「保守が切れる」。作り終えてからの変更はそこまで想定しなくて良い。他でかかっていた費用をシステム化することで削減していくことが目的であることが多い。

ソフトウェア:一度作っても壊される、変更されていくことを前提に作っていく。作って世に早く出し、フィードバックをもとに改善していくことが重視される。ゆえに品質が低い状態で出し、あとから直すという判断がなされることもある。CI/CDなど「継続的」なことが求められる領域。
※ フィードバックを何からどう得るかにはいろいろなパターンがありそう。

両者とも「問題解決」のアプローチを行う職種であるとは思いますが、そのプロセスと、成果物を出す先が違うような気がするのです。
※資産計上するのはソフトウェアだよね!みたいなツッコミどころ満載なのでなんか別の名前ないかなあと思っているところ。

先に述べた、「お客様のご要望を〜」というタイプの方 が合わないことがある、というのはこの「ご要望はきちんとヒアリングすれば良い+一度作ったら一旦ゴール+直接的に感謝される」ということに慣れていると「世に出したところ、まさにそこからが始まり」という感覚に慣れず、プロジェクト3ヶ月頑張った!さあ次に切り替えていこう、保守は別の人達の仕事なので!私は新しいものを作って動かすことが楽しいのだから!というモチベーションが保てなくなってしまうのではないかな、と思っているのでした。

終わりに

とかく、上記の仮の分類はイケてません。例えば受託でソフトウェア開発をされている方々は上記でいうソフトウェアエンジニアにならないという話になってしまうと捉えられてしまうでしょう...。

というわけで誰かこの分類軸で新しい名前がほしいなあと思っている今日このごろです。ぜひコメント等で盛り上がっていただきたいです。

なお、スクールで学んでWebアプリケーションの基本的なことができるようになったエンジニアと、コンピュータサイエンスを学んで来たエンジニア、AIなど先端IT人材と言われる人たち。これからのエンジニアもどちらが「上級」とかではなく「違う役割の人」として別の名前が必要になってくるのではないかとも思っていますし、そのための学習アプローチも異なるのではないかと思っています。

やはりお前らのジンジニア/エンジニアは間違っている?(2) ではエンジニアについてもこのような違いがあるなと思っている中、少しずつ聞こえるようになってきた「ジンジニア」というネーミングについて掘り下げてみたいと思います。

サポートしてくださるような稀有な方にはサポートしてくださった金額分を奢り返したいと思いますw