巨人の肩に乗れば地平の彼方を見渡せる
この記事、複数の話題が出てくるが、タイトルにあるエンジニアの生産性についての話題が興味深かった。
DHHが語る10倍エンジニアというのは、10倍のコードを書くスーパーハッカーのことではなく、むしろそんな人は存在しないけど、何をどうやって作るのかを突き詰めることで10倍の生産性の違いを生むことができる人のことをことをさす。
これは結構身につまされる話で、2年近くスタートアップの限られた資源の中でコードを書いてきてもっとも切実に思うのは、どう作るかの失敗より、何を作るかの失敗の方がはるかに影響が大きいということだったりする。
10倍のコードを書くことはできなくても、コツコツと自動化を積み重ねることによって、一行の価値を10倍に高めることはできるんじゃないかと思う。Railsの一行で実現できることを、ピュアなCでやろうとしたらどれくらい大変だろう。
「初心者はコードを書くことができない、中級者はコードを書いてやりたいことができる、上級者はやりたいことを実現するコードを見つけてくる」
みたい喩え話があるけど、そうやってエッジを掛けていけば10倍どころか100倍の差がついたっておかしくはない。
もう一つ、記事の中で
手早く実装できる機能だけでは、あまり価値がないようにも思える。これに対してデイビッドは、ソフトウェアを作ることに関して野心的になることはバカげていると一蹴する。
という話が出てくる。世の中にはできの悪いものがあまりに多いので、少しいいものを作ればそれで十分だ、と。
僕はそれとは別の意味でこの意見に納得した。例えば僕はピアノが弾けない。ピアノでやれる限りの高度なことをしたって、ピアノをやったことがある人の足元にも及ばない。DHHにとって簡単なことが、誰にとっても簡単な訳ではない。
巨人の肩に乗れば遠く地平の彼方まで見渡すことができるし、支点を与えられれば地球だって動かせる。問題は巨人によじ登る方法を心得ることであり、十分に長い棒を用意することなんだろう。