Enter■ふつーのプログラマです。企業内Webシステムの要件定義から保守まで何でもやってる、ふつーのプログラマです。2018/07/23「うちの会社が」草場さんは真っ直ぐに私を見ながら言った。草場さんと最初に二人きりで時間を過ごした場所だ。運営の図書館がオープンして、半年後。くぬぎ市民の来館が一段落し、同時に独自の分類法がネットで批判を高めていたため、来館者数の伸びが当初の計画をかなり下回っていた。くぬぎ市以外の市町村からの集客率を高めるためキャンペーンを開始した。クレジットプレゼントするという内容だった。日間の映画の見放題もセットになっていた。求めているのは、長期間に渡る利用者だ。クレジットだけゲットして、一度も来館しない一見さんが多発する可能性がある。回は図書館に来てもらった人という制限が付き、なおかつ付与処理はキャンペーン期間終了後にまとめて処理されることになっていた。当時、草場さんはくぬぎ市の案件から離れて別の業務に集中していたため、抽出処理は手が空いていた若い社員がアサインされた。指示された条件で抽出するだけなので、大きな経験値が求められる作業ではなく、むしろ経験を積ませるのにちょうどいい、と考えられたからだ。「キャンペーン中に抽出用のプログラムは作ってあって、それは僕も確認してあった。方から次々に仕様追加が出てきてね。当初の仕様では来館回数だけを考慮すればよかったのが、貸出件数によってクレジット付与数に差をつけることになったのが始まりだった。次に併設のクリック書店での購入履歴を抽出条件に追加することになり、年齢と性別による条件分岐の追加が続いた。個の条件が重なる複雑な抽出条件が完成していた。若手社員は、進捗を確認した上長に対して「順調です」「問題ありません」「楽勝です」と言い続けた。「営業がプレッシャーをかけたのもいけなかったんだろうけど」草場さんは悔しそうに言った。「僕も忙しくて、チェックを怠っていたのがまずかった。クレジットが付与された後だった。人にクレジットが全く付与されなかったり、少なく付与されてしまったのだ。これは利用者からの問い合わせが相次いだことから明るみに出た。問い合わせセンターに苦情が殺到し、オペレーターの対応がお粗末だったことが事態の悪化に拍車をかけた。事情を拡散したため、隠蔽することは不可能になった。付与が少なかった利用者に対しては、直ちに追加付与処理が実行されたので、お詫び状を発送するぐらいで済んだが、過剰に付与されてしまった利用者に対する対処が問題となった。クレジットのシステム上、付与されてしまったクレジットを取り消すことが、簡単にはできなかったからだ。クレジット&マーケティングサービス株式会社だが、担当者は予定外の処理を挿入することを嫌い、取り消し処理の実行に抵抗した。加えて、すでに付与されたクレジットを使用してしまった利用者が何人かいて、その人たちに返金を求めることは、事実上不可能だった。費用として負担することで落ち着いた。やって貸しを作っておいて、借りた方が忘れた頃に、その取り立てをするらしいんだね。「取り立てが来たの?」私は答えを予想しながら訊いた。うちが、この仕事を受注した直後に。僕はそのことを知らなかったんだけどね。よる浸透を受けていたことを知る。果たすべき役割を指示してきていたのだ。プロジェクトを頓挫させようとまでは考えていなかったんだよ。弓削なんかは失敗すればいいと思ってたんだろうけどね。要求には、妨害工作の内容を詳細に報告することも含まれていたんだよ。市政アドバイザリとしての立場から、インテグレーションテストに関わることもできるから、問題が発生した途端に、エースシステムを非難して、魔法のように解決策を提示してみせる。「で」私は少々、信じられない思いで、草場さんの顔を見つめた。「やってた」草場さんは認めた。「弁解じみたことを言うと、いい気分じゃなかったよ。正しいことをやってるとも思ってなかった。僕はこのプロジェクトにあまり乗り気じゃなかったし、正直なところ、くぬぎ市がどうなろうと気にしてなかった。ユーザ企業とシステム会社の意思疎通に齟齬があって、望んでいたものと違うシステムが納品されるなんて、イヤになるぐらいよく聞く話だからね。「いくつぐらいやったの?」私は訊いた。設計だけじゃなくて、実装でも手を入れたものはあるよ。「ちょっと待ってよ」私はあることを思い出して、草場さんを制した。みなと開発の人たちが、意図的なバグを仕込んでるのが見つかったときよね。「いや」草場さんは首を横に振った。「それには僕は関わってない。うちにだけ工作の指示を出してたとは思えなかったからなあ。