Joel on Software
「Joel on Software」の話がブログ上で書かれていたんですが、恥ずかしながら初めて知りました。たまたまオンライン上で書かれた記事が紹介されたので、せっかくの機会なので読みました。
激しく同意しますね、これ。生産性が上がらない時もあるし、特に
ひとたびフロー状態になると、それを維持するのは難しくない。私の一日の多くはこんな感じだ: (1) 仕事にとりかかる。(2) emailをチェックしたり、Webを見たり、そのほかのことをする。(3) 仕事に取りかかる前にランチを取ったほうがいいと判断する。(4) ランチから戻る。(5) emailをチェックしたり、Webを見たり、そのほかのことをする。(6) いい加減はじめたほうがいいと心を決める。(7) emailをチェックしたり、Webを見たり、そのほかのことをする。(8) 本当に始めなきゃいけないと、再び決心する。(9) くそエディタを立ち上げる。(10) ノンストップでコードを書いていると、いつのまにか午後7:30になっている。
というくだりには笑わせてもらいました。こういうシチュエーションってうちの会社でもよくありますね。社内の打ち合わせなどといった別要素で、やっと本腰入れてコードを書き始めるかって思った頃にはもう夜になってたみたいなことは、よくあります。
そう、これもとても納得できる、ひとたび進み始めると、どんどん加速して物事−自分の立場で言えば開発−がはかどるのだ。
そういう意味でもペアプロで開発を取り組むことの意味は大きいのかなとも思う。残念ながら、俺の場合は開発を1人でやってるので理想になるんだけども。
ただ始めることが唯一困難なことなのだ。静止状態にあるものは、そのまま静止状態に居続けようとする。私の頭の中にはとても重いものがあって、それを加速するのはとんでもなく難しいのだ。しかしひとたびフルスピードで回り始めたなら、それを動かし続けるのに努力は必要ない。それは自給のクロスカントリー自転車旅行の装備をした自転車みたいなものだ―フル装備の自転車に最初乗ったとき、動き出すのにいかに多くの労力がいるかは信じがたいほどだが、しかしひとたび動き始めると、何もつけてない自転車に乗っているのと同じくらい楽に感じられる。たぶんこれが生産性の鍵なのだ: ただ始めること。ペアプログラミングが機能するときにそれがうまくいく理由は、たぶんペアプログラミング セッションを相棒とスケジュールするときには取りかかるために2人が力を合わせるからだ。
一番感銘を受けた、というか自分、もしくは他の人に強く気に留めて欲しいと思ったのは、以下の文章だ。
この射撃しつつ前進の原理が、人生でものごとを成し遂げるときのやり方でもあることに気づくには、さらに15年かかった。あなたは毎日少しずつ前へ進む必要がある。あなたのコードがまずくてバグだらけで誰もほしがらなくても問題じゃない。あなたが前へ進み続けるなら、コンスタントにコードを書き、バグを直し続けるなら、時があなたの味方となる。あなたの競合があなたに向かって撃ってくるのに気を付けること。彼らはあなたが彼らの一斉射撃への対応に忙しくて前に進めないようにしたいだけなのではないか?
最近、同じことを強く思い始めたとこなので、納得できる。とにかく前に、どんどん前に進む。今やらなくちゃいけないのは、そういうことだと思った。問題も起きるかもしれないけど、立ち止まってるよりは全然マシだし、自分の成長にも繋がるから。
ちなみにこの「Joel on Software」は書籍化されているみたいです。俺もさっそく買って読もうっと。