今ならできるんじゃないかと思っている事

http://d.hatena.ne.jp/hyoshiok/20040501 を発端に http://on-o.com/page/diary/?date=20040507http://www.cagylogic.com/blog/archives/000175.htmhttp://www.csus4.net/WR/d/?date=20040430#p08 を拝見。

自分がプログラマーだった時、常にデイリービルドとリグレッションテスト的な事を影でするようにしていた。影でと言うのは、自分の責任を果たすために自分のできたこところから、他人のできていない処理を仮にコード仕込んで、ちゃんと動くかどうか確認する。そしてその時点で他人が作っていたものはもちろん流用してと言う事だ。先輩に囲まれているから、「お前俺を信用してないのか」って話になるので、そんな事おおっぴらにはできない。こそっと黙ってやる。
秘訣は絶対に自分のテストにかかる時間を過小評価しない事。うまーくテストの時間の大切さを訴えて、本来のテストの時間の何倍も自分のテスト時間と称して、プロジェクト全体テストをやれるところから何度も何度もやっちゃう。
その代わり、仕様の説明とかちゃんとしてなくっても作る。作る。人の何倍も作る。しかもちゃんとしたものをね。良く言われる仕様変更が続いて「ここんとこちょっとどうなの?」と言われ、そのちょっとがなんだか良く変わらなかったら聞きなおしもしないで何度もちょっとずつ修正。(笑) このため、他人の責任範囲まで全部修正していたら、任された範囲の仕事をプロジェクトの開始直後から超える。超えても良いのだが仕様を把握する量が多すぎて、ちゃんと作れなくなる部分が出てくるのが嫌だったので、影でやるしかなくなってくる。続かなくなったら、しかたねーから突然何日か休んでみる。周りのやる気や焦りを増やす。(笑)
ただまぁ、そのお陰で、想定外の設定が吹っ飛んだり、自分の作ったファイル消えたり、ほんと涙目になってましたけどね...誰にも賛同していただけないのが辛かった。
標準出力に buildのメッセージ出てると不思議に思われるから何も表示しないようにすると、席離れた瞬間に疑われるから、何かと交互に行うように工夫したり、ほんと無駄な気遣い多し。当時 compileと linkしているだけで日が暮れるし、CPU負荷かけ過ぎて「何かしてるヤツがいるけど誰だ」とか言われてみたり。(苦笑)
でね、"日本には本当のプログラマが驚くほど少ない"ってのは事実だと思いますが、なんとなくテストをやる方から増やしていくと日本も変わるんじゃないかなと思っています。優れたテストエンジニアに育てられてプログラマーも変わっていくんじゃないかと思います。そうなると、俺はこれをやれば良いんだ、これだけで飯食っていけるんだって自覚を促せるとも思うんですよね。だから、プログラマーはソースで勉強できるけど、テストエンジニアは何で勉強するんだろとか、そういう事を最近考えるようになりました。もちろんテストファーストな部分のソース作成をプログラマーへ教えて上で、更に別なテスト方法を考えられるようなテストエンジニア養成に必要な事。

今、自分はバグの調査目的のプログラムを作成する事もあるんです。それって結局テストパターンの作成なんで、こういうところから仕事以外で何かやれないかなって思っています。
(*) そもそも、大規模なゲーム作ってる方とか、割とハードに近いドライバやファームウエアだけを作ってる方はあんまりこういう話ないみたいですよね。きっとテスト方法とかが確立しているというか、使ってみれば一発でバグが見つかるからなんではないかと思ってみたり。使えねーヤツ一発で干されるでしょうし...
(*)時間がかかりそうな時はリファクタリングしてますorしたいと言うような表現も良く使った。当時そんな言葉知らなかったけど、今で言うところのリファクタリング。実際してたし。