仕事でちょっとしたプログラムを書いているというのはこの間書いた。毎日いろいろやっているうちにだんだんスラスラと書けるようになってくるし、完成に近づくに従ってリファレンスを調べたりすることも少なくなってくる。まだほんの少しの部分しか動かしていないのだが、スラスラ書けるのは気分がいい。

ひととおり書きあげてみるともっとスマートに書けないかと思って直したくなる。とりあえず今の開発ツールは書いたさきからコンパイルされていくのでその場でコンパイルエラーがとれるから徐々にスッキリしたコードになっていく。

次はホワイトボックスの単体テストだ。一行ずつ自分の思った通りに動作しているか見ていく。スレッドや通信を使ったプログラムはデバッグが難しいところがある。いろいろ条件を工夫しながらコードの各部分をテストしていく。

ひととおり単体テストが通ったらブラックボックスでテストする。実際にデータを流してのテストだ。

ここまでで上手く動くことがほぼ確認できる。JUnitでテストを書いて自動でテストができればいうことはない。まあ、テストを書くのは本編のコードを書くより難しいんだけど。

ここまできたらさらにリファクタリングを考える。より性能のよいロジックに取り替えるとか、重複処理を整理したりする。JUnitでテストが書かれていればこれはかなり容易にできる。

あとは他のモジュールとの結合。インタフェースのチェックだ。そしてシステム全体で動かしてみて各モジュールの干渉とか性能上のネックをチューニングしていく。

と、ざっとイメージができる程度には経験を重ねてきたのだが、時間とかお金の問題でこれらのプロセスが理想的に進むことはまずない。そういうことも含めて管理・コントーロールできるのがプロジェクトマネージャということになる。要するに決断力のいる仕事なのだ。

僕はあまりプロジェクトのマネジメントが得意ではない。それよりは自分の理想の形を描いてみせる段階が好きだ。だからそのために行動することにした。だけど自分のやりたい仕事をやれるようになるのは大変だ。仕事の他にも先の人生を考えてやっておきたいこともある。結局自分の人生のマネジメントをするのは自分なのである。

一歩一歩。自己実現の階段を上ることを実感できる人生にしたい。