本物のエンジニアではない「Not a real engineer」(2019)
(twitchard.github.io)- 短い散文詩は「You are not a real engineer」という宣言から始まり、面接の不採用通知と神話的な怪物のイメージを同じ文脈に重ねている
- 対象は人間の背丈、ライオンの頭、16枚の翼、数百の目、蛇の形をした腰帯を持つ超越的存在として描かれる
- 嵐雲のような息遣い、風の咆哮のような声、草を枯らす足取りが、対象の圧倒的な力をさらに強めていく
- 最後には「現時点ではこの職務をオファーしない」という採用拒否の文言と、「より技術的な人を探している」という理由が続く
- 破壊的な存在でさえより技術的な人ではないという理由で拒否されることで、「本物のエンジニア」という基準の不条理さが浮かび上がる
神話的存在へと拡張される描写
- 冒頭の文は「You are not a real engineer」で、対象に対して本物のエンジニアではないと直接宣言する
- その後、対象は人間の体躯とライオンの頭を持つ存在へと膨らみ、16枚の白い翼と、松明のような数百の目を備えた姿として描かれる
- 腰のベルトは蛇であり、息は嵐雲の集まり、声は風の咆哮に近い
- その足取りの前では草が枯れ、深い深淵のように黒い舌は、触れるすべてのものに終末をもたらす
採用拒否の文言が生む反転
- 結末は圧倒的な描写から、採用プロセスにおける丁寧な拒否文へと突然切り替わる
- 「現時点ではこの職務をオファーしない」という言葉の後に、「より技術的な人を探している」という理由が付く
- 先の神話的イメージと最後のありふれた採用拒否文が衝突することで、「本物のエンジニア」という言葉のもろさを露呈させる
1件のコメント
Hacker Newsのコメント
最近は、勤務時間の80%がCRUDアプリケーション構築に費やされるようなポジションに天才級のエンジニアを採ろうという考えはやめた
金の無駄であり人材プールの無駄でもあるし、候補者にとっても良くなく、会社にとっても長期的なリスクになる。そういう人たちは結局退屈して、頭を使うために過剰設計を始める可能性が高い
ほとんどのエンジニアには、データベースとAPIのレベルで作成・更新・削除・参照をきちんと書き、フロントエンドからAPIを呼び出し、適切なエラー処理とまともなデバッグのアプローチを備えていれば十分だ
ただ、「そこそこ」のプログラマーが「それなり」の結果しか出さないのも見てきたし、より優れたプログラマーが5倍長く働くことなく 5倍速く仕事をし、ほぼ自律的に動き、クローズしたチケットが本当に終わっているかQAが張り付いて確認する必要もなく、問題が起きたときにGitリポジトリを代わりにほどいてやる必要もなく創造的に解決するのも見てきた
注意散漫な天才脳までは要らないが、良い/優れたプログラマーは、技術的には平凡に見えるプロジェクトでも大きな違いを生む
最近Steve Howeにハマっているのだが、史上最高のギタリストの一人とされる彼が、ギタリストは演奏者になることに集中すべきだ、というようなことを言っていたのを見た。コーダーとエンジニアの違いもそれに似ている
自分より技術的に有能なプログラマーはたくさん見てきたが、彼らがより良いエンジニアだったわけではなかった。自分が起業家で、ある程度マーケティングの背景もあることが大きく影響している
多くの会社は、実際にエンジニアを形作るコーディング以外の能力を過小評価している。シェフの代わりに精肉職人を雇っておいて、なぜ料理がうまくないのか不思議がるようなものだ
技術系の学士号を取り、Ingersoll RandやBoeingのような会社でエンジニア #52354として働き、複雑だが限定された領域の専門家として30年後に引退するのも立派なキャリアだ。それも「エンジニア」の有効な定義であり、そういう人たちは退屈に見えるかもしれないが、個人的には満ち足りた人生を送っている可能性が高い
最近この問題をよく考えているが、経営陣は標準的なエンジニアをコスト中心で見がちで、本文のような人はエンジニアリングを超えて売上を直接生む他部門にまで価値が及ぶため、そうした批判から逃れやすい
自分も似たタイプのエンジニアだと思うが、その固定観念への軽蔑をもっと協調的な態度に変えようと努力してきた
現実の市場では、ハードウェアを扱うC++エンジニアよりSpring Javaコーダーのほうが高く評価される
両方を経験したことがある。求職過程における不可解な気まぐれや軽い侮辱を受けたこともあるし、口ではもっともらしいことを言うのに、どの言語でもFizzBuzzレベルの問題すらコーディングして見せられない経歴持ち候補者を面接して落としたこともある
「技術面接はひどい」と「求職市場には資格のない候補者が多い」は、どちらか一方を選ぶ話ではない。両方とも真実であり得るし、実際レモン市場のように互いに結びついていると思う
客観的にはより良い人がいても採用されることはあるし、理想的な候補者でも電話スクリーニングで即座に落ちることがある。結局のところ運に近く、そうではないと言う人たちは、生存者バイアスと手続き自体の欠陥を認めたくない気持ちが混ざっている
経験豊富な候補者がFizzBuzzレベルすら解けなかった、というような判断も、採用を悩ませる貨物崇拝的思考を反映していると思う。実際のソフトウェアエンジニアリングとは似ても似つかないコードゴルフや、アルゴリズム・データ構造クイズを何週間も練習して一次面接を通過するFANGエンジニアも知っている
こうした問題は技術評価というより、はしごを外す行為に近いとさえ思う。以前、デスクトップアプリを作るC++ポジションでplacement newを知らないという理由だけで自動的に落とされたことがあるし、バックエンド職に応募した知人はSpringサービスをゼロから作って統合テストをすべて通したのに、コントローラーにコメントがないという理由で落とされた。PRで一行コメントすれば直せるようなことを、大げさな技術課題のように扱って落とす面接官がいる
採用する側もミスをする。人をうまく採るのは本当に難しい
ときには、どうせ好きになれなかった人たちと働く職場からあなたを救ってくれることもある。なぜ採らなかったのかもっともらしい言い訳を作るのも、彼らはあまり上手ではなく、かなりの部分は運だ
たとえば「トランプ支持者ではなさそうだ」という印象を受けて、気楽に付き合えないと感じたのかもしれない。本当に彼らと気が合わないなら、そもそもそこで働きたい理由があるだろうか?
求職はいつも自分を憂うつにさせるし、特定の仕事に過剰な期待をかけないこと以外、答えはよくわからない。同時に、大したことがなさそうに見える機会もあまり簡単に無視すべきではない
今の職場の最初の上司はひどかったし、良い人もあまりいなかったが、その人たちは会社を去り、自分は昇進した。そんなことがどうして予測できるだろう。採用担当者もあなたを予測できないし、全体としてかなりランダムで不快なプロセスだ
自分が面接する側のときには優先順位がある。第一に、上司が「良い人を採るようにしろ」と短く助言してくれた。常に自分の思い通りでなければならず、自分は超高生産性の天才だから全権を持つべきだと信じている人より、親切で、お互いに助け合えて、うまくやっていける良い開発者と働きたい
第二に、候補者がソフトウェア、あるいは少なくとも何かに興味を持っているかを見る。ソフトウェアや技術、仕事に関する何かに少しでも情熱がないなら、履歴書に書かれていない必要なことをどうやって学べるだろうか。人は「完成品」として来るのではなく、学ぶものだと期待すべきだ
良い面接プロセスであっても、実際には仕事を非常にうまくこなしたはずの候補者を確実に何人か落としてしまうと思う
その人がその仕事に向いているかをきちんと理解するには、雇用主にとっても候補者にとっても面接プロセスにかかる時間が大きすぎる。雇用主の立場でもリソース配分として良くないし、候補者にとっても受け入れがたい
理想を言えば、候補者がオフィスに来て、一日かけて一人で小さなコーディングプロジェクトを完成させてみるのがよいのだろうが、現実には実用的ではない