Knoh, The Knowledge Hub

Adam D'Angelo (Quora の共同創業者) は今でも Quora のコードベースに commit していますか?

回答の背景

Adam D'Angelo (アダム・ディアンジェロ) は、Facebook の 元最高技術責任者で、現在は Quora の共同創業者として活躍しています。

 

僕が最後に会社の master branch へ commit したのは半年くらい前で、内容はいくつかの速度改善だった。11 月にまとまった量のコードを他のブランチにも commit した。僕は会社の hack week ではなるべくコードを書くようにしているが、ときには他の仕事を優先させねばならない。

僕は基本的にこの規模の会社の CEO が多くのコードを書くことは得策だと思っていない。とはいっても、少しでもコードを書くことによって、コードベースの状態を把握することにはいくつかの利点があると思っている:

  • 社員がなにかを成し遂げるための難易度を把握することができる。これは、なにが簡単で、なにが困難なのかを見抜く直感を育てる上でとても重要なことであり、会社がよりインパクトの高いプロジェクトに取り組むように奨励する際に役立つ。

  • エンジニアと共感する上で役立つ。プロジェクトの完遂に多くの時間がかかったのは、課題が根本的に困難だったからなのか?社員のモチベーション不足によるものだったのか?あるいは、人選を誤ったのか?これらの疑問への答えを導くには、コードの状態を別に把握している必要はないが、把握している方があなたの直感は正しく、結論もより正確になるだろう。

  • "開発スピードを落として、エンジニアの生産性向上に投資する" という決断をくだす上で役立つだろう。多くの企業ではそういったトレードオフはまず起きない。もちろん、エンジニアリングのトップが強く主張することによって、経営陣となにかしら議論につなげることは可能だろう。だが、コストメリットが CEO の目に届かないという理由で、会社というものはシステマチックに技術的な根幹への投資をおろそかにしていると僕は思っている。

そうは言ったものの、僕らのように巨大で常に進化しているコードベースを 30 人以上の優秀な人間で開発していると、新しい慣習に追従するだけで多大なコストを伴う。毎週、なにかしら新しい手法、よりよいインフラ、重複されてはならない新しい関数の登場、または慣例にわずかな変化があるだろう。毎日コードを書く人にとっては、これらの変化に対応することは楽だろう。でも、僕のように数ヶ月コードを書かないことがあると、こういった面での負債を蓄積してしまい、真面目な改善をほどこしたい際にツケを払う羽目になる。なので、僕は最新の規則を理解していなくても手が動かせることに固執する傾向がある。プロトタイプ開発、よく理解しているコード、または実行速度面などだ。

この規模の会社の CEO が自らコードを書くもう一つの危険性は、バグを生んでしまうことだ。プログラミングの腕が鈍っていることと、最新の慣例を把握していないため、結果としてバグを生みやすくなる。もっとも最悪な点は、あとからバグが見つかってもすぐに修正できないことだ。僕がコードを書くときは、CEO だからといって例外はなく、他のエンジニアと同等の基準に沿いたい (さもないと、上記で説明したことを軽んじることになる)。僕は自分のコードが問題を起こしてしまい、重要な会議に一日中出席しているために、他のエンジニアにバグを直させるような心配をしたくない。

Quora の外だと、数週間前に Android アプリを作ってみた。理由は個人的な嗜みと、プラットフォームを理解するためだ。

  

もっと知る