12 ポイント 投稿者 GN⁺ 2 시간 전 | 4件のコメント | WhatsAppで共有
  • 新人(N00b)エンジニアの価値は、完了した作業数ではなく、将来的に周囲の人の生産性まで高めるエンジニアへと成長する可能性によって決まる
  • シニアエンジニアは新人を、組織を変えるA / 安定した成果を出すB / 1年以内に去る可能性があるCに分類し、新人は自分が望むカテゴリーに当てはまるというシグナルを送る必要がある
  • Bになるには、コードが動作し / 進捗を共有し / 見積もりの3倍以内のような妥当な時間で終え / レビュアーや運用担当者に不要な仕事を作らないことが必要
  • Aは作業をたくさん終わらせる人ではなく、不要な作業を取り除き / 効果の大きい10%を見つけ / 設計を改善し / 小さな変更を連続して提出するなど、作業ごとにより多くを学ぶ人である
  • 優れた成果を示す活動は、単に作業を閉じるより時間がかかるが、無限に脇道へそれるのではなく、節約した時間を自分と同僚の役に立つ形で投資すべきである

現在の生産性ではなく、未来のエンジニアを採用している

  • シニアエンジニアが新人を見る基準は大きく3つのカテゴリーに分かれる
    • Aは周囲の人の生産性まで大きく引き上げる変化の担い手になる
    • Bは安定した成果を出しながら徐々に成長する
    • Cは1年後に組織に残っていない可能性がある
  • シニアたちは自分の業務をこなしながら、各新人がどのカテゴリーに属するかを判断しなければならない
    • Aには可能な限り多くの支援を提供する
    • Bには成熟したエンジニアになれるだけの支援をする
    • 組織に残れない人には可能な限り少ない労力しか使いたくない
  • 新人に与えられた作業は、マネージャーやテックリードが直接処理したほうが、より速く容易に終えられる
  • 目先の生産性だけが重要なら新人を採用する理由はなく、会社は新人が将来なるエンジニアを確保するためのオプション・プレミアムとして現在の給与を支払っている
  • 育成が成功すれば強力な次世代エンジニアが生まれるが、失敗すればシニアたちが10年後も同じエンジニアリング業務を続けることになる

作業件数だけでは新人を評価できない

  • 1四半期で40件の作業を完了した新人と20件を完了した新人のどちらが優れているかは、作業数だけでは判断できない
  • すべての作業の難易度が同じだとしても、A/B/Cを分けるのに必要な情報はなお不足している
  • 評価の目的は短期的なアウトプットを比較することではなく、新人がどのような種類のエンジニアへ成長しているかを確認することにある

BとCを分ける基本シグナル

  • 作業を最短時間で閉じることより、次の条件が重要である
    • 書いたコードが実際に動作する
    • 何をしているかを他の人に知らせる
    • 最初の見積もりの3倍以内のような妥当な時間で作業を終える
    • 他人に不当に多くの追加作業を発生させない
  • 助けを求めて相手の時間を使うことは許されるが、次のような状況は悪いシグナルになる
    • レビュアーに不必要に多くの時間を使わせること
    • エラーのせいでオンコール担当者を対応させること
    • 自分が起こした障害のせいでDevOps担当者を出動させること
  • やっていないことをやったと偽るなど、評価システムを操作しようとする行動は即座にCシグナルとなる
  • 誰でも誤ってCシグナルを出すことはありうるが、同じCシグナルを2回繰り返してはならず、全体としてはBに当たるシグナルのほうが多くなければならない

AとBを分ける学習速度

  • 少なくともBに当たる新人の中でAを見分ける基準は、完了した作業数ではなく、各作業でどれだけ多くを学ぶかである
  • 新人の現在の生産性がシニアより低いのは想定内であり、重要なのは生産性そのものより、生産性が向上する速度である

Aに当たる行動

  • 次のような行動は、単に作業をこなす水準を超えて、学習と組織の生産性を拡大するAシグナルになる
    • その作業自体を行う必要がないという説得力のある根拠を作る
    • データを分析して、全体効益の90%を生む10%の作業を見つけ出す
    • 同じ作業を複数の方法で実装してみる
    • より良い設計を見つけ、作業実装だけでなく周辺コードまで単純化する一連のdiffを提出する
      • 実装前に難しい変更を簡単にしてから、簡単になった変更を行えば、より高く評価される
    • 1つの大きなdiffの代わりに、複数の小さなdiffを連続して提出する
      • 毎日diffを上げると追加の利点がある
    • 類似した作業を単純化する社内ツールを書く
      • 再び発生する類似作業がないなら、むしろ減点要因になる
    • 公式な作業を終える妨げにならない範囲で、他チームや別のコード領域にも有用なdiffを提出する
    • 学んだ内容を興味深く / 有用で / 説得力のある形で文書化する
    • 洞察に富んだレビューを行い、フィードバックに素早く対応する
    • 堅牢な単体テストを含める
  • 優れた成果を示す方法は、ミスを避ける方法よりはるかに多様である

最小時間より妥当な時間が重要

  • Aシグナルに当たる活動は、作業を閉じるために必要な最小限の実装だけを行うよりも多くの時間がかかる
  • これは、興味深い脇道に無限に時間を使ってよいという許可ではない
  • 公式な作業は常に妥当な時間内に終えなければならないが、必ずしも絶対的な最短時間で終える必要はない

節約した時間を自分と同僚に再投資する

  • 追加の学習や改善に使う時間がないと感じるかもしれないが、時間管理 / 作業キュー管理 / diffキュー管理のようなスキルで進行速度を高められる
  • そうして節約した時間は、他の人にも利益となる形で自分の成長に投資すべきである

4件のコメント

 
loblue 2 시간 전

Aになり得るポテンシャルを持った新人をどう採用するか、そして
ポテンシャルのある新人をAに育てるトレーニング
について語るべきだと思うのですが……
記事の内容がかなり刺激的ですね……

 
kimjoin2 1 시간 전

組織を変えるA / 安定した成果を出すB / 1年以内に辞める可能性があるC
A / Bを分けるのは理解できますが、CはAやBでありながらCでもある人も多いはずなのに……。
成果や影響度に応じて給与へすぐしっかり反映してくれる、とても社員満足度の高い会社なのでしょうね。

 
cartwheel8815 1 시간 전

やっていない仕事をやったと偽るなど、評価制度を操作しようとする行動は即座にCシグナルになる

を見ると、実際には1年以内に辞める可能性があるというのは解雇を言い換えた表現かもしれない…

 
kimjoin2 1 시간 전

あ、そうなんですね。wwwwwwwwwwww 解雇は思いつきませんでした。