2007/5〜6
v2.0系の開発を5月半ばに再開してから3週間あまり。
仕事帰りに奥方様と待ち合わせをしつつ、飯田橋の喫茶店で実証実験用のAppleScriptコードを書いたり、Pen-IT NOTESで紙のノートにアイデアをまとめてはBluetoothでMacBookに転送したり……トム・デマルコのプロジェクト管理の書籍を買っては休み時間に読んでいたり。
v1.0の開発時のように毎日がむしゃらにコードを書くというスタイルではなく、タイミングチャートを紙に書き、MacBookに転送してKeynoteで清書。ふたたびそれで動くかどうかを検討し、フラグのステータスが妥当かどうか確認してみたり……と、机上シミュレーションにずいぶん時間をかけました。
仕事のプログラムだと、打ち合わせて仕様書を作り、仕様書に基づいてコードを書くわけですが、自分で企画して自分でコードを書いて自分で評価するという個人ベースの「俺プロジェクト」だと効率が最優先。通常の数倍のスピードでコードを書いて、機能モジュールが出来次第すぐに実装していくので……プロジェクトの成長過程がいびつになることに気付きました。
つまり、「俺プロジェクト」ではコード作成を重視するあまり、プロジェクトが失敗するリスクが通常のプロジェクトよりも高くなるというわけです。「俺プロジェクト」を成功させるためには、コード実装優先主義を抑える必要がありました。
「俺プロジェクト」でも、それぞれのマイルストーンで十分な検証や評価を行ってから次に進むべきで、十分に検証されない機能を大量に寄せ集めると、それは単なるコードの寄せ集めではなく、まったく別の「何か」として有機的に動きはじめ、各種条件によって予想外の動きをすることも……。
