エンジニアの評価の場面で質問しがちなこと
エンジニアの評価観点についてという文章を書いたのが2014年12月、3年半前。それから変わったことってある?ってたまに聞かれることはあったけど、最近質問しがちなことが出てきたので、まとめてみる。
基本的には動けば👍
変数の名付けが微妙とか処理コストに無駄があるとか、細かいことはいいんだよ。とりあえず意図通り動いていることが確認できればよしという雰囲気は強くなった。つまり、
- どう動かしたいんだっけ?
- どう確認したんだっけ?
という2点をみていくことになる。
どう動かしたいかは解決したい課題ということで、ビジネス要件だったり負荷対策だったり。どう確認したかは自動テストだったり目視確認だったりモニタリングだったりでカバーされているかをレビューしていく感じにしている。
今後有り得そうな変更とその対策は?
今はまあそれで動くとして、将来的にそのままという状況はほとんどない。ということで、変更に強いかどうかを質問するのが最近の定番になっている。
もちろん、全方位に対して変更可能性を常に最小化せよというわけではない。汎用プログラミング言語を開発しましょうみたいになって無意味だ。なので、どういう変更が起こりそうかという方向性を把握していることがポイントになる。たとえば、ビジネスの売上目標が1年後に10倍規模になるとしたら、単純にデータ処理量も10倍になるだろう。もしくは、現在は最低限の機能で動いていて運用でカバーしている部分もあるが、今後自動化していきたい。そのときにどうするか、という質問がされる。
質問としては「今後有り得そうな変更はどこですか?」と聞いてもいいし、もうすこし突っ込んで「このままだとトラフィックが増えたときに処理のパフォーマンスが出なさそうだけど、どうしますか?」とか、「こういう変更をしたい、と言われたらどうしますか?」とかみたいに質問したりする。的はずれな心配であればそう言ってもらえると嬉しい。
有り得そうな変更に対しては見通しを立てておく、有り得なさそうな変更に対しては「最悪作り直しですね」でいい。「今後有り得そうな変更はない」という回答がされたら、それは完璧なものか、もしくは何もわかってないかのどちらかだろう。今あるものの限界が認識できていれば、その後の投資判断が幾分マシになる。
まとめ
- 今大丈夫だよね?
- 今後どうするの?
という感じです多分。