頭に豆電球がともる瞬間
よく、アイデアが閃いた時、頭に豆電球がともる絵を書くが、デバッグをしていて延々試行錯誤をしているのだけど全然解決の糸口すらつかめないとき、ひょんなところからぱっと解決策を思いつくことがある。
そのぱっと閃くまでの手順というのは通常再現することは難しい。思いついっちゃったんだからしょうがない。なんかいろいろ試行錯誤していたうちにたどり着いたというのが正直なところである。
その豆電球がともるまでの道のりは闇の中を彷徨しているようなものでストレスがたまるがぱっと閃いた瞬間の快感は経験したものでないと分からない。言語化するのが難しい。しかし、そのような経験をぜひ若手のエンジニアにも味わって欲しいと思う。そのぱっと閃く経験を積み重ねれば積み重ねるほどエンジニアとしての経験値、力量は上がっていくわけで、引出しの多いエンジニアになる。
コアテクの路地からのトラックバックを貰ってそんなことを考えた。
日常的な仕事の中では毎日毎日そんなに豆電球はともらないかもしれないが難しい問題でうんうんと唸っていた後に到達した場合は問題の難しさに比例する快感がある。山登りみたいなものかもしれない。
実はわたしは昔からカーネル開発者にあこがれていて、いつかはカーネルコミュニティにデビューしたいと思っていた。できることならばLinuxカーネルの性能向上に微力ながらでも貢献したいと漠然と思っていた。正真正銘のカーネルハッカーならば、鼻歌交じりに性能上の問題を発見しそれを修正するだろうがわたしのような素人は手も足もでなかった。
そこで、性能上のボトルネックを発見するにはカーネルプロファイリングツールが必要だということでhardmeterというツールを3年ほど前に開発した。そのアイデアは幸運にも未踏ソフトウェア創造事業に採択された。パフォーマンスチューニングをするときにプロファイリングをとってそのデータをもとに分析するというのはチューニングの王道中に王道である。しかし、hardmeterの開発では精密なカーネルプロファイリングが取得できるようになったが、それを利用して実際カーネルをチューニングするまでにはいたらなかった。(残念)
後に日本OSS推進フォーラム開発基盤WGのプロジェクトでカーネルの性能評価をしたときにhardmeter開発の経験が役に立ったことは言うまでもない。oprofileという2.6に採用されたカーネルプロファイリングツールを利用してデータを収集した。当初は全く問題点が見えていなかったが約一月ほどプロファイリングデータを分析したところある日突然頭に豆電球が閃いた。その結果はCache Pollution Aware Patchという形になったのだが、後にhardmeterで採取したデータを見ていたら、oprofileで発見した問題の兆候がくっきりとあった。2003年では発見できなかったものを2005年には発見できるようになったのである。
歳をとっても人間は意外と進歩しているのである。脳みそをフル回転してときには頭に豆電球をともさないとと思った瞬間であった。




これってAHA体験と言うやつでは?
重要な経験,習慣付けるよい機会と思います.
投稿: jyuseoh | 2006年7月31日 (月) 12:09
jyuseohさん、コメントありがとうございます。おっしゃる通りですね。
投稿: hyoshiok | 2006年7月31日 (月) 13:59