「コードが動く」はゴールではなく最低限のラインです。真のエンジニアリング成熟度は、単に機能が動作するかどうかではなく、スコープ、曖昧性、人間関係にどう対処するかについてです。私が使う最もシンプルな定義は:エンジニアが成長しているというのは、より大きな問題に、より少ないガイダンスで取り組めるようになったということです。
| 信号 | より未成熟 | より成熟 |
|---|---|---|
| 問題サイズ | 明確に定義されたタスクが必要 | オープンエンドな問題に取り組む |
| ガイダンス | ステアリングが必要 | 独立して動く |
| 「完成」 | コードがマージ | 成果が配信され、所有される |
| 影響範囲 | 自分の仕事 | チームの効果性 |
2人のエンジニアが両方とも機能をリリースしました。1人はチケットをクローズします。もう1人はPMにリスクのあるエッジケースをフラグで示し、監視を追加し、次の人が困らないように短いドキュメントを書きます。同じコードがリリースされていますが、成熟度は大きく異なります。そして、私が育てようとしているのは2番目の行動です。
コードが動作するかどうかだけを測定していれば、出力を報酬として、実際には複合的に効いてくるものを見落とします:判断力、所有権、そして他者を引き上げることです。これらの基準を明示的に名付けることは、エンジニアに「成長」が何を意味するのかについて明確なロードマップを与え、フィードバックとプロモーションの公平で一貫した基盤を提供します。