達成感

三日間ほど、一つの作業にかかりきりでした。普段は割り込みが作業が多いのですが、今回はほとんどなく、集中して取り組めました。何をしたいのか、そのためには何が必要か、予測できる問題とその対処は何か。それらを作業前に書き出して、上の人にもチェックしてもらい、関係の有りそうな人にも話を通してから実際の作業を開始したので、途中で特に困ることはありませんでした。
いきなりコーディングを始めていれば、テストを含めても1日半程度で終わったと思います。ただその場合は、数ヵ月後に僕ではない誰かが泣くはめになっていたはず。思わぬ問題が発覚し、なんとかその問題を解決しようとするけど、既にコードが膨れ上がっていて根本的な修正を行うのは難しく、泣く泣く無理やりな問題回避を行っていたでしょう。1年前の僕がそうでした。もちろん、今回僕が書いたコードで問題が起きないとはいいきれませんが、問題の芽を早い段階で摘めたのは作業前の準備があったからこそです。今後もこの方針でいこう。
実装が終わって、テストも終わって、ドキュメントも書き終えました。この達成感がたまりません。プログラムが面白い理由の一つは、間違いなくこの達成感です。プログラムで嫌なところの一つは、完璧だと思った時に限り、バグだらけだったりすることがあることです。…ああ、このままこの作業は完了するといいな。