第八話『グッバイ終電』
――静かな部屋にキーボードをタイプする音とマウスを操作する音が響いている。
お、終わらない……。
テスト項目書を下にスクロールしてみる。
――ズラ~リ
…………。
まだ未実施のテスト項目がこんなに。
いやまぁ、私のやり方が悪いのはもちろんある。
どうしてもテスト項目だけでは足りなそうに思えて、先ほどと同じく気になったことを選別して試しながら進めている。
気になったら手を動かしてしまう性分なので。
その甲斐(?)あってか、バグ――つまり問題点はいくつか発見している。
それらは「バグチケット登録の練習」という名目で登録をしていたりする。
バグチケットとは「こういう問題がありました」と開発者に伝えるものだ。バグ票とも言われる。
これに問題の詳細と再現環境や再現手順を記載する。
バグ修正を担当する開発者はその環境や手順でバグの再現確認をして、原因を特定、修正する流れになるわけだ。
いかに相手がバグの再現できるように記載できるかが大事になってきそうだ。
個人開発ではこの「バグを伝える」という工程そのものが不要なので、今日が初めてのバグチケット作成だ。
……吉村リーダーの指示通り修正担当者を空にしているので「バグを伝える」ができないんだけどね……。
ただ小毬さんと南雲くんには見つけたバグは伝えてる。
あの2人はしっかりしている。
あと見ていてほっこりする。うん。
吉村リーダーは……いや、考えるのはやめておこう。
当面の対応方針は「ケンカしない」だ。
開発がカツカツという話も本当のようで、見つけたバグを見ると突貫で作っているというか、雑さを感じる部分がある。
私がついさっき新しく作ったバグチケットに目を落とす。
『初期登録時に名前は30文字まで設定できるが、編集時は20文字までしか設定できない』
名前の設定は初期登録時は30文字まで許容されていた。
しかし試したところ編集時は20文字に制限されている。
その結果、登録時に名前を21文字以上にしていた場合、編集をすると「名前は20文字以内です」とエラーが出て登録時の名前では保存ができなくなるのだ。
ディスプレイの端で開いていた仕様書を見ながら想像してみる。
――恐らくメインの仕様もギリギリまで決まらなかったのだろう。
細かなところまではもちろん手が届きようもなかった。
だが開発を進めると、細かな『決めておいてほしいこと』がたくさんでてくる。
だから開発と企画はやり取りを頻繁にしていたはずだ。
現状を見ると、開発者が自分の担当部分の設計や実装をしながら、気づいたときに各々が質問をしていただろうことは想像に難くない。
『里親募集ユーザーの登録時の名前の長さは何文字に設定しておけばいいですか? オーバーしたときの表示は?』
『そうですね、30文字でいきましょう。オーバー時の表示は――』
『里親募集ユーザーがまだ里親募集を登録したペットがゼロの時、管理ページの「ゼロ件ページ」は何を表示しますか?』
『ああ……その場合もありますよね。ゼロの時は"現在、あなたが里親募集をしているペットはいません"で……いや、やっぱり空っぽのままで表示するようにしましょう』
『里親募集のユーザーが退会してしまったときの挙動はどうしますか?』
『え!? あ、あぁ……退会することもありますものね……。該当ユーザーの里親募集中のペットは全て非表示にして――』
『名前を編集したときの文字数って決まってましたっけ?』
『それはどこに書いたっけな……確か20文字だったはず。20文字でお願いします――』
四方八方からこんな質問が来てたら企画がパンクするのは目に見えている。
質問の回答に追われ、仕様書への記載は「後でまとめて」といったように後回しにされていたことだろう。
その結果、最初に言った仕様と後から言った仕様で整合性が取れない部分や、AさんとBさんに伝えたことが異なり齟齬が発生した――
――こんなところか。
幸いなことに仕様書に記載されている大きな部分は動いている。
私が乙女ゲーをリリースしていた時は、セーブデータが壊れるような取り返しのつかないバグやフラグが立たないといった大きなバグは直してからリリースしたが、致命的にならなそうなバグはリリース後に修正して『追加パッチ』とかいって後追いで出すこともあった。
それを考えると、明日リリースをしてしまって、後追いでリスクが高そうなバグから修正してリリース……これが一番現実的な路線といったところか。
……そんなことを考えている自分に苦笑してしまった。
私はそこに口を出せるレイヤーにいないっての。
――チラリと時計を見る。
22時30分。
終電までには帰りたい気持ちはあるわけだが……。
「大丈夫だよ」
小毬さんが微笑んだ。
あ、これわかってるときの顔だ!
「タクシー代が出るんだ、ウチ」
はい、わかってない!!
ううう……。
けど――
未実施が並ぶテスト項目書に目を落とす。
実際終電までになんて無理だよねー……よねー……。
「美月ちゃん、疲れたら休憩してね。まだ初日なんだし」
そうでした。
私、入社初日です。
「お言葉に甘えて」
席から立った。
「飲み物でも飲んできます」
「は~い、いってらっしゃーい」
小毬さんと南雲くんにも何か買って戻るか。
***
廊下の先の暗くなっている一角。自動販売機の明かりだけがぼんやりと光っていた。
――パチリ。
電気を付けると、ひらけた空間に明るさが灯った。
飲み物の自動販売機とお菓子の自動販売機があり、その向かいに長椅子が置いてある。
飲み物を飲んで一休みできる程度の一角だ。
「甘々のコーヒー、っと」
――ピ、ガコン
静まり返った廊下に缶コーヒーが落ちる音が響く。
長椅子に腰を下ろすと、グイと甘々のコーヒーをあおった。
「プはぁ~……」
やっぱり疲れてるときは甘いコーヒーだよね~。
甘さが疲れた脳みその隅々にまでしみわたるのを感じる。
今日一日。
長かった。いや、まだ終わってないけどさ。
私はコーヒーを飲みながら、忙殺されて散らかってしまった思考と向き合いはじめた。
――テストか。
この会社、というか私が配属されたテスト第9部でいうテストは『仕様書の記載通りに動くことを確認する』だ。
ようは『決まったルートで問題がないことをチェックする』ことと言えそうだ。
私が作っていた乙女ゲーのユニットテストを考えてもそうか。
何か値を入れたときに、それが想定した通りに処理されて結果を返すことを期待している。
けどだ。
じゃあ乙女ゲーをこれからリリースするぞ!という時にそれだけの確認でいいかというと「いや、ちょっと……」となる。
想定したことが想定通り動くことは当然だし最低限のことなのだ。
そりゃ想定しているんだから、そう動くように作っているわけだし、多くはそりゃ想定通り動く。
……まるで早口言葉だな。
リリースする前に私が知りたいことは「え、そんな問題が起きるの!?」だ。
つまり『想定していなかったことに気づきたい』のである。
ユーザーが1000人もいると何かしらの問題に引っかかる人はいる。
私が乙女ゲーでやらかした例だと『ゲームプレイをしているときにスマホの電源が落ちたらセーブデータが消えてしまった』などだ。
この問題は攻略キャラのルートを普通にテストプレイしているだけでは見つけることがほぼ不可能だ。
このように、発生した問題が大きければ大きいほど私のゲームのファンであってもゲームから離れていってしまう。
――そんな悲しい思いを私はしたくないし、ファンにもさせたくない。
だから私は、環境を変えたり条件を変えたり手順を変えたり、多くのことを試しながらテストプレイを何度も何度も繰り返す。
その過程で「気づくことができた問題」をひとつずつ摘んでいく。
「気づくことができた問題」はキャラクターのセリフ回しやシナリオのテンポにまで至る。それらも細かく調整する。
これらをコツコツと積み重ねることで作品が錬磨されていく。
最初は粗削りの形ばかりの刀を、その活動で、研ぎ澄まされた美しい刀にまで昇華させていく……そんなイメージ。
こうして私は「私のゲームで遊んでみて!」と自信満々でファンのみんなにゲームを届けられるわけだ。
「ふぅ……」
暴走しがちな思考を一旦止めて、再度コーヒーを喉に流し込む。
――テストはつまり
『想定したことが想定した通り動いていることの確認』
『想定していなかった問題の発見』
この二つの活動のセットなのだ。
テスト第9部は前者にのみフォーカスして仕事をしている。
対して私は後者にばかりフォーカスして仕事をしていた。
どちらがいいではない。二つそろって本来の形になるだろう。
――こんなところか。
「ぷはぁ……」
飲んでいたコーヒーから口を離す。
――『問題がないことの確認』
これに毒されすぎた結果が吉村リーダーの存在ではないだろうか。
「問題がないことが正しい」のだ。
問題があった、はよろしくない。
恐らくあのテスト項目書は「報告資料」として上に提出するのだろう。
そこで報告すべきことはただ一つだ。
『何も問題ありませんでした』
……まあ、日本企業あるあるか。
そして隠蔽・改ざんがバレた結果が、ニュースでよく見る謝罪会見だ。
それで信用が失墜する。
隠蔽・改ざんからの謝罪会見からの信用失墜までは一連のセットだと私は思う。
私からはオチが読める往年のギャグにしか見えないのだけど、どうして大人たちは体を張ってまでこのギャグをやりたがるのだろう。
…………。
って。
そのギャグに現在進行形で私たちは付き合わされてるわけか!
うわ!
なんか腹立ってきた!
怒りをぶつけるように口にグイと缶コーヒーを当て、ラッパ飲みよろしく缶を垂直に掲げズズズズズ~と音を立てて缶コーヒーを飲み干した。
「――お疲れ様」
「グボッ!?」
突然声をかけられて思わずむせた!
「あ……あー……ごめんごめん」
なんだ……と目を向けると――
身長は私より高い。185センチくらいだろうか。年の頃は30前半といったところか。
髪は、わかるかわからないか程度にうっすら茶色がかったセンター分けだ。
大人向けのメンズ雑誌でスーツを着こなしていそうなイメージ。
夜も遅いこんな時間だっていうのに、パリッとしたシャツを着こなしている。
いい身なりをしている。お金回りが良さそう。
って私は山賊か!
「あー……ほらここ、いつもはこの時間に電気はついてないからね。なんだろうと思って見に来たんだ」
私が警戒していると思って理由を説明しているのだろう。
……そんな私は山賊みたいなことを考えてました。すいません。
「奢るよ?」
自販機を見てそんなことを言う。
「いいんですか?」
私は奢ると言われたら素直に奢ってもらうタチだ。
「どれがいい?」
「その甘いコーヒー」
「これね」
――ピッ、ガゴン。ピッ、ガコン。
「どうぞ」
「ありがと」
私に缶コーヒーを渡すと、私から少し距離を離して横に座り、軽い様子で話を振られた。
「残業?」
「明日リリースらしくて。今日入社だったんだけど、振り回されてるうちにもうこんな時間」
気も抜けてるのか、つい言葉遣いも普段通りになっている。
こんな時間に話しかけてくるヤツだし、いいだろう。
「入社日で……?」
あ。笑顔がひきつってる。
だよね。普通は入社日といったら定時上がり、みたいな特典があるものだろうし。
たぶん小毬さんなら「帰っていいよ~」と言いそうな気はした。
けど私の性格上、やるべきことを小毬さんたちに投げて帰ることはできないだろうな。
「どこの部に配属?」
「すぐそこのテスト第9部ってとこ」
「ああ、第9か」
どうやら我々は「第9」と呼ばれているらしい。発音は「だいく」だ。年末のオーケストラと同じ言い方。
指揮者は帰っちゃったけどね。
話しかけてきたそいつは私と同じコーヒーをカシュッと開けて
「うわっ、これ、甘いね~……」
とやっている。
文句をつけるな。私はそれが好きなんだっての。
「――あなたは?」
話を振ってみた。
「僕は開発やってる人だよ。ペットの里親マッチングサイトにも関わってる」
あーお仲間ね、お仲間。
あーだからこの人もこんな時間。
ひとりでウンウンとうなづく。
仲間意識も芽生えるというものだ。
「で、どうしたの? 荒れてたみたいだけど」
――ブッ!
コーヒー吹いた!
さっきの私のコーヒーズズズか!!
あれ、誰もいないと思ってやったのに!
それを掘り返すか!
恨めしげな眼をそいつに向けた。
「ほら、センパイとして? 聞いてあげるのが勤めかと思って」
でしょ?とキザな顔を向けてくるのがなんかムカつく。
私からすれば今会社にいる全員がセンパイだっての。
――飄々としたやつだ。
私の乙女ゲータイプ分類では『最初から優しく接してくるけど、攻略しようとシナリオを進めるとやっかいなストーリーが待ち受けているタイプ』。
乙女ゲーの最初から俺様系やクール系だけだと主人公の最初の学園生活が苦難の連続になってしまう。
そこで最初からなぜか優しく接してくるキャラの登場だ。
このキャラは序盤は着かず離れずで接しやすい。だがメインストーリーに入っていくと何かしら爆弾があったりするわけだ。
プロの乙女ゲープレイヤーにもなると無自覚のうちに1周目では避けるタイプと言えよう。
……いけない。また妄想に走っていた。
「――じゃあその"センパイ"に愚痴るけど」
ちらりと"センパイ"の方を見る。
どうぞ、と言わんばかりに手で促している。
掻い摘んで『XSS(クロスサイトスクリプティング)』の問題を見つけた話、吉村リーダーが隠蔽しようとした話、修正担当者なしでバグチケットは登録してある話をした。
一般的には身内の悪事の話はしないのだろうけど、残念ながら私は隠蔽ゴッコに付き合うつもりは毛頭ない。
「……」
一瞬険しい表情になったセンパイだったが
「そりゃ災難だね」
ちゃかしたように首をすくめる動作をした。
ったく他人事だと思って。
「後から出てきて困るのは開発でしょ?」
修正するのは開発なのだ。
それに大問題に発展したなら「何でこんな初歩的なことを防いでなかったんだ!」と詰められることだろう。
「ごもっとも。で――」
そういうと私に試すような目を向けてきた。
「キミはその脆弱性(ぜいじゃくせい)をどうするのがいいと思う?」
脆弱性はセキュリティの問題に使われる言葉だ。
XSSはバグというよりは、セキュリティ問題なのだ。
「早めに直してもらいたい。けど内部の設計次第で修正難易度が変わるでしょ? 今からの修正が難しいなら初回リリースでなくていい。けど修正は絶対なる早。攻撃されたら手遅れだから」
「次回リリースでもいいか。開発に気をつかってくれて嬉しいね」
イタズラを思いついたかのような顔だ。
「なら今のリリース前に直すとするよ」
――ああコイツ、『ひねくれものタイプ』だ。
これが少年マンガだったら細目で関西弁でも使ってそうなものだ。
「このタイミングでデグレ起こさないでよね」
「おおせのままに」
「何それ」
仰々しく肩をすくめる動作につい呆れたような声を出してしまう。
ジェスチャーが日本人のそれではない。センパイは海外経験もあるのかもしれない。
ちなみにデグレとは、修正したことによって今まで動いていたところがおかしくなってしまうことだ。
私のゲームの海外ファンから言われたのだが、日本以外ではリグレッションと呼ぶらしい。
今回起こるとしたら<の記号がWebページ上では<と表示されてしまうといったところか。
「開発も細かい仕様が決まらなくて作るの大変だったでしょ?」
「そうだね。いちいち企画に――……」
不思議そうに私を見た。
「どうしてそう思った?」
「そりゃあ――」
――名前の初回登録時と編集時で許容する文字列長が違うバグがあること。そこから開発者それぞれが企画に仕様を質問していたであろうことが読み取れること。それに至った理由はメインの仕様決定が押して細かい仕様にまで及ばなかったのではないかという憶測。最終的に開発者の質問対応で企画もテンパって最新の仕様書に落とせていないのではないか、と伝えてみた。
「アームチェアディテクティブか何か?」
「ただの妄想」
アームチェアディテクティブ――安楽椅子探偵――書斎の椅子に座ったまま、事件の様子を聞いて解決してしまう探偵のことだ。
確かに今日はプログラムも見れないからずっと推理をしていた気もする。
「全部正解。ホントは過去に行ってきたんじゃない?」
まいったな、と本当に可笑しそうに笑っている。
「――最初は夢が詰まった仕様書でした」
何やら物語が始まったんだけど。
夢が詰まった……ね。物は言いようだ。つまり詰め込みすぎと言いたいのだ。アドベンチャーゲームにロープレ要素とアクション要素を盛った、そういった感じだろう。
「何を削るかでもめてる間にも時間はどんどん過ぎていきます」
「その間も開発は設計を進めなければならず、さぁ大変」
「『この場合は何を表示すればいいんだ』という声がいたるところで上がりました」
仕様が決まらないで進めたらそりゃそうなる。
「質問された企画さんはその場その場で仕様を決めていきました」
「決めた仕様はタスクチケットやらチャットやらミーティング議事録と社内に散らばりました」
「そうして、誰も詳細を把握できなくなってしまったとさ」
おしまい、と言いたげにこちらを見てきた。
「バッドエンドの昔話なんて初めて聞いた」
「よくあるんだけどね」
IT業界では、だろう。
「それに開発は人手不足でさ。少し前に大量採用かけたばっかりなんだよね」
少し困ったような笑顔をこぼす。
「だから、今みんな勉強中」
私の今日の状態を思い浮かべると……「勉強中」とはいきなり実践投入されて四苦八苦しているといったところか。
いちいち言い方が遠まわしなヤツなことで。
「そりゃ災難」
首をすくめるジェスチャーをしてやった。
「根に持つタイプでしょ?」
あ。わかった?
***
――しまった。話し過ぎた。
この間も小毬さんと南雲くんがテストをがんばっている。
「戻らないと」
「僕もバグ修正といきますか」
立ち上がると――
「キミの見立てを聞きたい」
「何?」
「明日リリースできると思う?」
……。
少し考えて
「できる。ここから大きな問題が起きなければ。仕様書に載ってる項目は動いてるし。仕様の不整合とかバグが出てるけどそれは枝葉の部分。優先度をつけて修正して後追いでリリースすればいい」
練度を上げて良いものを出した方がいいと思う反面、ビジネスでは現実的なタイムリミットも大事なわけだ。
この辺が落としどころだろう。
「やっぱりさ、面白いよ」
クククと声を出して笑ってる当たり、本当にそう思ってるのだろう。
「リリース直前のテストエンジニアは炎上した現場で『リリースを延ばして直せるものは直してから出した方がいい』って言うんだよ」
「入社初日でその辺のマナーを教わってないもので」
それだけ言うと、私は小毬さんたちが奮闘している部屋に足を向けた。
「修正担当者が空のチケット、見ておくよ」
――後ろからそんな声が聞こえた。
まったく。
上目線というか、気取ったヤツというか。
ま、鼻持ちならないヤツってとこで私の中じゃ確定ね、確定。
…………。
……。
小毬さんたちの飲み物を買うのを忘れたけど、戻りずら……。
***
「テスト項目書、終わったよ~~~っ!」
――深夜2:30。
真夜中の会社に歓喜の声が響いた。
「ナグくん、終わったよ~~~っ!」
テンションに任せ南雲くんにくっつこうとした小毬さんだったが、南雲くんはすかさずスススと間合いを取った。
照れ屋さんである。
「なんとかなったか」
少し顔を赤らめながらも、南雲くんも胸をなでおろしているようだ。
「美月ちゃんもありがとう~~~っ!」
「いえ――」
「お疲れさま~~~」
――むぎゅぅ
小毬さんが抱き着いてきた。
やっぱりそうなるよね……。
ちょっと汗臭いだろうしくっついてほしくないけど、離す体力もないので為すがままにされている。
恐る恐る南雲くんの方を見ると……彼も疲れているのかキシャーッとやる体力がないようだ。
「これで――」
小毬さんの笑顔がほころんだ。
「使ってくれる人たちに、いいものを届けられるねっ!」
なんていい子なの!
チラリと南雲くんを見る。
彼も小毬さんを見てちょっぴり微笑んでいる……!
クッ……癒し……!
さて。癒しも得たことだし。
もちろんもう終電なんかあるはずもなく。
タクシーで帰るか……。
私、入社初日だったの……。
「――美月ちゃん、忘れないで!」
後ろからそんな声をかけられ、振り返った。
「タクシーの領収書もらうの」
……あ、ですよね。