昨日は久しぶりに残業だった。定時前にこれは直さねばなバグがあり、対応した。要求の理解漏れであった。簡単に修正できるものだったが、テストがあるため慎重を期した。夜のリリースは何かあった際に朝まで死ぬ可能性がある。非常に神経を使う作業だ。定時後の疲れ果てた頭で、「今自分は疲れている」と言うのを自覚しながら、他社立ち会いのもと2重チェックを欠かさないようにした。
ダブルチェック、トリプルチェックというと、火星の人(映画オデッセイの原作)を思い出す。NASAのプログラマーたちも、人命がかかっていてとにかく急がなければならないと言う場面でも、きちんとテスト工程をふんでいた。いや、人命がかかっていたからこそのテストである。また、チーフが必ず色々な人に同じ数値を確認させ、ダブルチェック、トリプルチェックを欠かさないのだ、的なノリもプロっぽくてカッコ良かった。以来、テストをちゃんとすると言う行為に非常に誇りを持つようになった。
業界に来て長いが、開発がうまくいくかの分水嶺は早く、ウォーターフォールで言うところの「要求」の時点で決まる。今回も自分が要求をきちんと読み込んでいなかったが故の過失で、影響範囲も小さくどうでも良いような内容だったが、これが致命的なものであれば死んでいた。要求を確実に理解するというのは重要なのである。
本業だけでなく、副業仕事においても要求を汲むと言うのは非常に大切で、必ず何かやってほしいと言われた際には作業そのものだけでなく、元となった要求・願望まで確認するようにしている。もし要求が読み取れなければ絶対に聞く。そうしないと揉めるからだ。めんどくさくても聞く。
例えばWordPressのカスタマイズで言えば、「ここに記事一覧を出す」という作業を引き受けたとして、なぜ出したいのかまでを踏み込まないと、後でもめる。目立つようにするのか、あしらい程度にひっそりと出すのか、他の一覧と同じようなトンマナで良いのか、アイキャッチは必要なのか等々のあらゆるパラメーターはその記事一覧を使って何をしたいのかの要求にかかってくる。もし暗黙のうちにそれが分かるような関係性ならば良いが、わからないまま進んで、「うーん、こうじゃないんだよな」とクライアントに言われた時に、「言われた通りやりましたけど!?」という態度を取るようであれば3流も3流で、エンジニアなんて辞めちまえ! と思う。要求が適切に出てこないことを怒るのではなく、必要な要求を十分に引き出せるようになって初めてエンジニアとしての価値が出てくる。そもそも要求が完全に明確なクライアントあるいは上流の奴なんて、絶対にいない。150%いない。11年やってきていなかったのだから、それはもう、絶対にいない。だからそこに怒ったり、改善を施そうとするのは無駄である。それより自分がどうやったらうまく要求を引き出せるかに注力した方が、将来的な収入が変わってくる。
ってねえ、頭では分かってるんですよ? って思いながら定時後にブツクサ残業してた。