Jewel-mmo開発日記

RubyでMMORPGを作る過程を記録する日記。 Yokohama.rb 発起人。
2008-03-14

仕事は1日3時間

http://q.hatena.ne.jp/1203667934

自分の場合、自分が1日に働ける時間が3時間しかないことに気づいたのが大きかったかな。 90分を2本。これが限界。これよりあとは仕事をしてる気分になるだけで仕事はあまり進まない。 集中力よりも単に時間をかけることが重要なときもあるので、これはあくまで個人作業を理想状態でできるときの話しだけど。

自分にとってのポイントは2つあって、ひとつは集中できる状態でしかコードを書かないようにすること。 集中力の切れた状態でコードを書くとバグがバグを呼ぶようなひどい状態になる。 半日悩んだ問題が、翌日冷静に考えてみれば、根本的に不要な作業だったりとか。 これは勝手にいらん仕事作って勝手にはまってる状態。 最高の集中状態でしかコードを書かないこと。 質の低いコードをプロジェクトに混入させないことで、生産性が高くなる。

もうひとつは、なんというか、遅延実装。必要になるギリギリまでコードを書かない。 仕様は常に変わるので、今必要と思われる機能が本当に必要かどうかは怪しい。 だから実装は限界ギリギリまで先延ばしする。 ただし、現在の仕様を実装するのにどれだけの時間が必要かを正確に見積もっておくことが必要。 技術的に問題になりそうな部分は、あらかじめすべて解決しておかなければならない。 検証はしっかりやるけど最後まで実装はしない。 暇だからって「こんなのあったら便利そうだから作っとくか〜」みないな事は絶対にやらない。 コードが増えるとメンテナンスのコストが増える。 あと問題の解決に常に最善の策を追求すべきで、暇に任せて必要かどうかわからないコードをコミットしちゃいけない。 一度書いたコードとかツールは、なんとなく使いたくなって、プロジェクトが余計な実装に引きづられる。 最善の解決方法を追求する妨げになりえる。 でもこっちは仕事のタイプによりけりかも。

仕事をしている気分になること(あと他人から仕事をしているように見えること)と実際の仕事を混同しちゃいけない。 というのが今現在の自分の考え。