記事
- 2011年07月22日 07:04
「ぼくはこうしてプログラミングを覚えた」をどう読みましたか?
1/2
フェイスブックでエンジニアをやっていた方の面白い話があった。
「ぼくはこうしてプログラミングを覚えた」
はてなブックマークのコメントだけだと、あまりよくわかってないのですが、なんとなく思ったのは、そりゃ、両立しなくてはいけないことをわかってはいても…、という現実に対して、
「やっぱりスピードを求められても質を大事にしよう!」
と思った人が結構いるのでは?
しかし、この記事は、二つの真実を表しています。
「コードが最悪だったとしてもフェイスブックはどエラいサービスになった」
という事実。
そして、
「後から、彼が頑張って直した」
という事実。
「コードが最悪でも成功した」理由は、初期にコードを書いていた人(ザッカーバーグも含めて?)は、素敵な大工さんじゃなかったかもしれないけど、
「想いを実現したいと思った人が書いているから」
・・・なのかなって思いました。
プログラミング能力と、サービスを作る能力は全く別のもの。
素敵なビジュアルのネットショップ vs 楽天ショップの話ってありますよね。
デザインがイケてないのに売れているという話。
ポイントは、ショップオーナーやスタッフが
「自分達で更新するから」
ではないかと。
ネットの制作のプロじゃないけど、商売のプロ。そのセンスがネットに反映される時に、デザインを両立するのは、そりゃ難しいことです。天は二物を与えず。
だから、お店が軌道にのって、ビジネスノウハウが確立してから、直しても遅くない。
そういうことなのではないかと。
じゃぁ、職業プログラマーにとっての正解は?
彼に大賛成で、
「質とスピードの両立」
に他ならない。
ただし、優先されるべきキー値は、
「絶対的に時間」
です。
(僕ここでも書いてるし→「ネットサービス系企業における、積み上げ型タスク管理の危険性」)
「ぼくはこうしてプログラミングを覚えた」
フェイスブックのエンジニアで史上ベスト3に入るといわれるEvan Priestley氏への質問「どうやってプログラミングを覚えましたか」に対する本人からの答えです。という話
コードの質がフェイスブックの強みであったことはないが、2007年のフェイスブックのコードはグローバル変数とextract関数にまみれたヒドいものだった。
この「質v.s.スピード」という概念は根本的に間違っていると思う。だって素早く開発をしなくては環境、あるいは自分の環境の理解の変化にソフトウェアがついてこれず、ソフトウェアが解決すべき問題が解決できなくなり、必然的に質が落ちてしまう。逆に、質の高いソフトウェアを書かなくては、なにかある度にインフラが崩壊し、素早く開発をすることができなくなってしまう。インフラの崩壊は、やる気を削ぐので特にたちが悪い。フェイスブックでは「質v.s.スピード」ではなく「質=スピード」を念頭にソフトウェアを書いてきた。相当たくさんの仕事をフェイスブックではしたし、書いたもののかなりの部分が今でも使われていることを考えると、ぼくの考え方は間違っていなかったと思う。この記事を読んで開発者の方はどう思いましたか?
はてなブックマークのコメントだけだと、あまりよくわかってないのですが、なんとなく思ったのは、そりゃ、両立しなくてはいけないことをわかってはいても…、という現実に対して、
「やっぱりスピードを求められても質を大事にしよう!」
と思った人が結構いるのでは?
しかし、この記事は、二つの真実を表しています。
「コードが最悪だったとしてもフェイスブックはどエラいサービスになった」
という事実。
そして、
「後から、彼が頑張って直した」
という事実。
「コードが最悪でも成功した」理由は、初期にコードを書いていた人(ザッカーバーグも含めて?)は、素敵な大工さんじゃなかったかもしれないけど、
「想いを実現したいと思った人が書いているから」
・・・なのかなって思いました。
プログラミング能力と、サービスを作る能力は全く別のもの。
素敵なビジュアルのネットショップ vs 楽天ショップの話ってありますよね。
デザインがイケてないのに売れているという話。
ポイントは、ショップオーナーやスタッフが
「自分達で更新するから」
ではないかと。
ネットの制作のプロじゃないけど、商売のプロ。そのセンスがネットに反映される時に、デザインを両立するのは、そりゃ難しいことです。天は二物を与えず。
だから、お店が軌道にのって、ビジネスノウハウが確立してから、直しても遅くない。
そういうことなのではないかと。
じゃぁ、職業プログラマーにとっての正解は?
彼に大賛成で、
「質とスピードの両立」
に他ならない。
ただし、優先されるべきキー値は、
「絶対的に時間」
です。
(僕ここでも書いてるし→「ネットサービス系企業における、積み上げ型タスク管理の危険性」)



