/note/tech

検査仕様書なしでシステム開発するとどうなるか?

検査仕様書なしでシステムを開発するとどうなるのか?

ある炎上プロジェクトの建て直しを通じて嫌と言うほど思い知らされた。

そのプロジェクトの顧客が一番怒っていたのは「一体どういうテストをしてリリースしてるんだ?」という点だった。

プロジェクトの建て直しはやり慣れているのでまずは検査仕様書をレビューして検査項目の強化だな、とか軽く考えていた。

でもプロマネに検査仕様書を見せてくれと言っても整理できてないから待ってくれ、の一点張り。

まずは社内の人間で見るだけだから整理なんていらないよ、と説得しても頑固に出さない。

なんとそいつは検査仕様書なしでテスト(うちの会社の定義ではそんなもんはテストと言わないけど)して顧客にリリースしてた。

■全く動かないシステムをリリース

顧客は「全く動かない」と怒っていたが僕はいくらそれはないだろ、顧客が話を盛っているんだろうと甘く考えていた。

しかし、プロジェクトの自称テスターに新規に動作環境を作って導入させてみようとしたら見事に出来なかった。。。

なんとその自称テスターはいつも試行錯誤しながらテスト環境を作り、試行錯誤しながら何とか動けばテストOKとしていたと言う。

これでは顧客が動かないと怒り狂うのは当然だった。

■派遣は検査仕様書を作らなくていい!?

もちろん検査仕様書があればさすがにここまでバカな事態にはならない。

検査仕様書は顧客へ納品する契約になっているし、社内規定でも検査仕様書なしなんて通らない。

プロマネを問い詰めると呆れたことに派遣が検査仕様書を作るのはおかしいなんて言い出した。

うちの会社では通常、検査仕様書は派遣テスターが作っていて派遣テスターの契約内容も「検査仕様書の作成」となっている。

念のために炎上プロジェクトの派遣契約書を確認してみたが内容は同じだった。

派遣テスターの派遣元会社にも膨大な費用が支払われていた。

一体、派遣テスターに契約通りの仕事をさせずに何をやらせていたのか?

なんと「ある一定時間適当に(検査仕様書なしで)システムを触る」ことをテストだと言い張った。

■マンガのような自称パフォーマンステスト

顧客は「そちらのパフォーマンステストの成績だけは満足しているがうちでは動作していない」とも言っていた。

とてつもなく悪い予感がして聞き取りを進めると時間はストップウォッチで計測したと言う。

普通ならテストコードを書く派遣テスターが計測ポイントを埋め込むのになぜストップウォッチ?

この段階でテストコードを書ける派遣テスターがプロジェクトに1人もいないことがわかった。

全社的にテストの自動化が進められているのになぜ!?

さらに実装したというプログラマーに確認すると、実装が難しいので後回しにしていると言う。

テスターに頼まれてストップウォッチで計測できるように処理を数万回か繰り返すコードだけ入れたと。

つまりほとんど空の処理を数万回ブン回すだけの意味のないコードの実行時間がパフォーマンステストの成績として顧客に提出されていた。

顧客のところで動かないのは当然だ、実装出来てないんだから。。。

このことを僕の上司に報告すると「そんなマンガのようなことがうちの会社で現実にあるのか、、、」と頭を抱えていた。

会社の信用に直結するのと他にも多くの仕事を出す大口顧客のため上司から役員へ報告することになった。

■検査仕様書なしに意を唱えるプログラマーに頑固者のレッテル貼り

パフォーマンスが要求される難しい処理の実装ができてないのに、スケジュール上では実装の進捗がほぼ100%になっている。

プロマネを問い詰めると他にも似たような箇所がいくつかあるらしい。

じゃあ、その難しい部分も含めて一体いつ実装が終わるのかわかるようにスケジュールを引き直してくれ、と言ったが彼には出来なかった。

実装できるプログラマがいないからだという。

たしかに開発現場はプログラム言語の入門書を読みながら仕事しているプログラマーが多かった。

不審に思って開発体制の資料や過去のプログラマーの契約書を確認するとプロジェクト初期には僕も一緒に仕事をしたことがある超優秀なプログラマーが2人いた。

しかし、2人ともプロジェクト途中で契約解除となっている。

契約解除の経緯についてプロマネを問い詰めると「仕事の段取りが悪いから契約更新しなかった」と言う。

僕は2人をよく知っていたのですぐに嘘だとわかった。

プロジェクトメンバーに話を聞くと、2人は「今のテストはまずいですよ」とプロマネに提言したらしい。

でもプロマネは頑固に検査仕様書なしでのテストを強行し、再度2人が提言すると「彼らは頑固者だから仕事ができない」などレッテル貼りするようになったという。

そして2人とも契約解除し、入門書を読みながら仕事するレベルのプログラマーだけが残って実装完了のスケジュールすらひけなくなったというわけだ。

■プロマネは涙を流しながら机を叩き部屋を出ていった

社内での対策会議でプロマネはなぜ検査仕様書を作らないのか当然追求された。

僕に言ったのと同様に「派遣が検査仕様書を作るのはおかしい・・・」と言おうものなら、役員が

「だったら誰が作るんだよ!? 派遣が作らないなら社員が作るのか!? 社員に作る時間がないから派遣が作るんだろうが!!」

「検査仕様書を作れないテスターなんてうちにはまったく要らない人材だよ、そんな要らない人材にいくら支払ったかわかってんのか!?」

と大声で反論する。

プロマネが

「派遣が検査仕様書を作らない会社もありますが・・・」

と言い訳しても

「他所の会社なんて知らねーよ!!うちの会社はうちのルールでやるのが当然だろうが!!」

と火に油を注いだだけだった。

「検査仕様書なしに異論を唱えたプログラマーを契約解除した理由をここで説明してみろ!!」

そんな追求をされているうちにプロマネをまったく明後日の方向の話を始めた。

「これはパワハラですよ。声が大きいからパワハラです。」

眼鏡の後ろから涙をボロボロ流しながら机を叩いた。

「これはパ!、(机を叩く)、ワ!、(机を叩く)、ハ!、(机を叩く)、ラ!、(机を叩く)」

そして猛ダッシュで会議室を出ていったが、引き止める者は誰もいなかった。

僕は呆れるのを通り越してこんな人間がうちの会社のプロマネやって会社の信用を失墜させたのか、と思うと情けなくなった。

後日、プロマネは本社に役員からパワハラを受けたと訴えたが相手にされず、懲戒免職となった。

プロマネとしての力量不足でプロジェクトを失敗させたなら懲戒免職なんてありえないが、彼の場合は社内規定にも顧客との契約にも故意に背き頑固に検査仕様書を否定した結果、失敗させたのだから仕方がない。

普通ならプロジェクトの建て直しでは(体調不良などで)プロマネがいないのは困るもんだが彼の場合は特に困ることはなかった。

■検査仕様書を作らなくていいと主張されるなら裁判所を通してください

プロジェクトメンバーは大幅に入れ替えるしかなった。

特に役員の言う通り、検査仕様書を作れないテスターなんてうちの会社では全く必要ない。

テスターを派遣していた会社への説明はあっという間に終わった。

同席した役員が「検査仕様書を作れないなら支払いはできません。契約書の作業内容に検査仕様書作成とあるのにやらなくていいと主張されるなら裁判所を通してください。」と言ったからだ。

派遣会社も彼のように「検査仕様書を作らせない派遣先もあるのですが・・・」と切り出したが「だったらそういう会社とだけ取引すればいいでしょう。うちは検査仕様書すら作れない会社とおつきあいする気はまったくありません。」と返されて終わった。

■なぜ彼は頑固に検査仕様書を否定したのか?

なぜ彼はプロジェクトをこれだけ大炎上させながら頑固に検査仕様書を否定し続けたのか?

いくら彼と話をしてもまったく埒があかずわからなかった。

ただ、プロジェクトメンバーから彼がある女性派遣テスターと男女の関係にあったと聞いた。

彼女はテスターといっても検査仕様書が作れないのでプロジェクト内での彼女の存在を正当化するために彼がおかしなことを言い始めたんじゃないかと噂されていた。

それが本当なら呆れるを通り越して同じ会社の人間して情けないし、おぞましいとしか言いようがない。

もう彼と話すことは永遠にないだろうから真相はわからないが。

スキルやリソースがあっても、それを司る人間がバグるとどうしようもなくなってしまうのがシステム開発(無常観)