私はテスタとして、必ず
- バグの修正を「お願いします」と言う。
- バグ修正確認時は、必ず直してないところも最低1箇所は触ってみる。(でよく落ちる)
- バグ修正が確認できたら、できるかぎり早く「確認できました。ありがとうございました」と言う。
を実践してゆきました。
ある日、一人のプログラマさんから相談を受けました
「今度の機能なんですが、納期が近いから単体テストせずにテスト依頼しろってSEさんから言われたんですが、そんなことしたくないんです」
「わかりました。コーディングに時間がかかってしまったことにしてください」
その機能は無事リリースされました。
ある日、一人のプログラマさんから相談を受けました
「この機能なんですけど、どうしても要求性能が出せません」
「じゃあ、一緒に考えましょう。どういうロジックになってるんですか?」
ループでDBを1レコードずつselectしてるところが見つかり、30秒かかっていた処理が5秒になりました。
プログラマさんからおやつをもらったりするようになりました。
わたしもおやつをもってプログラマさんたちに配りました。
そういうとき「実はここの処理やばいんです」「げ、わかりました、できるだけ後にテストしますからそれまでに…」という内緒の会話がでました。
上から命令がきました。「バグ修正スピードを上げてください。某社Aさんは先週15件のバグ修正しました。みんなも見習ってください」Aさんはその週、バグを20件出してました。(他社でよかった…)
私が確認OKを出すと、プログラマさんたちは安心して帰っていきました。
バグを発見してがっかりしているのを見て、私は「リリース前に見つかってラッキーでしたね」と言いました。
バグの発生は減ってゆきました。バグ票の差し戻しはほぼ皆無(もしくはいいがかり)になりました。
上司から「今月一杯で帰ってくるように」と命令がでて、私は現場を後にしました。(本当はちょっといざこざがあったんだけどそれは略)
ここまで書いて、やっと「…」の正体がわかったような気がします。
デスマーチの中で演じるべきは、火消しではなく「正義の味方」ではないか?
デスマーチを招いておきながら「今はそんなこといってる場合じゃない」とモラルを無視したやりかたでプロジェクトを進めようとする、悪のマネージャやSE、現場も見ずに納期を決めるお偉いさんたちからプログラマを守る「正義の味方」。
やはりコードがプログラマの手で書かれている以上、だれかがプログラマがモラルを保てる環境を守らねば、プログラマが自分を守るために、ちゃんとした仕事をすることをあきらめ、失敗を他人になすりつけ、逃げることだけを考えるのはあたりまえのことではないか。
しかし「正義の味方」を演じるのはむずかしい。実は、このプロジェクトに入ったとき、私はすでに会社に対しての信頼を失っていて、「辞める前に自分のやりたいようにやってみよう」と思って現場に入ったのです。
そうでないとできないのかもしれない。
今はもう別の会社にいて、ありがたいことに悪のマネージャーとかSEとかとはいないプロジェクトにいます。