バナー画像 お気に入り登録 応援する

文字の大きさ

第九話『リリース当日に致命的なバグじゃない!?』

「おはようございます――」
入社2日目にして始業時間ギリギリです……。
朝、目覚ましで起きれずでして……。

「美月ちゃん、おはよう~」
小毬さんが私に向けブンブンと手を振る。私もそれに軽く手を挙げ挨拶。
昨日深夜残業したというのにこの元気。
寝坊してしまった私とは大違いだ。

南雲くんは一瞬私に目を向けたが。
「……」
すぐにディスプレイに目を戻した。
小毬ちゃん以外には本当にクール。

吉村リーダーももちろんいる。
「テスト終わって良かったなー」
なんで他人事なんだ。
昨日の苛立たし気な様子から一転、今日は機嫌が良さそうだ。
大方、テスト項目書を添えて『全て問題ありません』という報告を上に提出したのだろう。
こちらの苦労も知らずにいい気なものだ。

「美月ちゃん、今日はお昼ご飯を食べたらリリースがあるよ」
小毬さんが嬉しそうに言う。
午後からね。
「今日はそれまで何を?」
すると、えへん、というように胸をポンと叩いた。

「アプリを色々触ってみてください!」

…………。
南雲くんも不思議そうに小毬さんを見ていた。
恐らく今までの業務フローにないことを言っているのだろう。
「色々……とは?」
つい聞いてしまった。
「えっ? えっと色々は……えと、んと……自由にいっぱい触ってみることです」

――あ、なるほど。
昨日私が休憩から戻った後のことだ。
テストには『想定したことが想定した通り動いていることの確認』と『想定していなかった問題の発見』の二つが必要ではないか、第9は前者しかやってないのではないか、と休憩時に考えたことを小毬さんたちに伝えたのだ。
そのときはハテナという顔をしていたが、小毬さんなりに考えていてくれたのだろう。
それで『想定していなかった問題の発見』のテストとして、テスト項目書や仕様書に沿った操作ではなく自由に色々試してみよう、という発想になったのだと思う。
南雲くんも意図を悟ったのか、キャビネットからAndroidやiPhone、iPadなどを取り出してきて自席に持ってきている。
色々な端末でチャットなどの相互のやり取りを確認しようと考えているのかもしれない。

私は……と。
昨日登録したバグチケットをみたら、修正担当者が空のまま全てのチケットが修正完了になっていた。
もちろんXSSの問題もだ。
――"センパイ"か。
あいつは本当に対応してくれたようだ。
試しにコメントに
<script>alert("こんにちは");</script>
と入力をしてみる。
期待値は「入力したままの文字列で出てくること」だ。直っていなければポップアップが表示される。
送信するとポップアップが出ることなく、そのままの文字で反映された。
「――ちゃんと直ってるじゃん」
念のため、他にも入力内容がWebページ上に反映される場所も一通り確認してみた。
……大丈夫そうだ。
さらに他に登録したバグも一通り確認したが、全て直っていた。
いや、まだ安心はできない。
修正の怖いところはデグレの発生にある。
バグを修正するためにプログラムに変更を加えるが、手を加えたことによってそのプログラムを使う他の部分で整合性が取れなくなり問題がおきてしまう……なんてことはよくある。
ええ、私も「前まで動いてたのになんで!?」をよくやらかしましたとも。
このリリース直前のタイミングでそれが起きてしまったらもう最悪である。

――バグがあった機能の裏側がどうなっているか想像しつつ、周辺確認を進めていく。
…………。
……。
大丈夫だ。私が考えた範囲のことは全て試したがどれも問題なく動いている。
……。
あいつ、意外と優秀な開発者だったのかも。

***

自由に試す、ということで再度このWebサイトの気になる仕様を思い返してみる。
このサイトは、ペットの里親募集を行うユーザーはユーザー登録をしなければならない。
だが、里親になりたいユーザーはユーザー登録を行う必要なく、里親募集しているユーザーとやり取りや里親の申し込みができる。
腕組をして黙考モードに入る。

――利用者の間口を広くしておきたかったのだ。
登録しなくても手軽に里親の申し込みができるようにといった狙いだろう。
ゲームでもなんでもそうだが、手間がひとつでも増えるとユーザーは面倒がって離れるものだ。
そして想像だが、このサービスではマッチング数がKPI、つまりそのサービスの社内評価の指標になっているのだ。
そう考えると「どれだけ気軽に手間なくマッチングに辿り着かせるか」が企画側としては重要となる。
昨日聞いた『夢が詰まった仕様書』の残骸といったところか。
けどだ。
これは開発側としては頭が痛い仕様となる。
ユーザーがやり取りをすることを考えた時、もし全員登録必須であればユーザーごとにユーザーIDを割り振っておけば、やり取りする相手を簡単に指定することができる。
例え相手がブラウザやスマホを変えたとしても、ユーザーIDを使えば今までやり取りしていたユーザーだと判断できるわけだ。
だが、このWebサイトでは里親になりたいユーザーは登録しなくてもいいのだ。
そうなるとみんな「名無しさん」になる。
ゲームに例えると、キャラが全員シルエットだし、シルエットは全部同じ形だし、名前も表示されないようなものだ。
これだと誰が誰かわからない。
このWebサイトでもそれが起こる。「確かにそのユーザーである」といった何かしらの情報がないと特定ができず、データのやり取りをするにしても誰にデータを渡せばいいかわからなくなってしまうのだ。
開発は相手を特定するためにどうしたらいいか頭をひねらなければいけなかっただろう。

当たり前だが「難しいところ、複雑なところ」で人はミスをしやすい。
そうなると。
――里親募集しているユーザーと、里親になりたいユーザーがデータをやり取りするところ。
そこだ。
そこにトラブルを抱えている可能性がある。

――こんなところか。
「ふぅ」
一息つく。
今の条件、里親募集しているユーザーと里親になりたいユーザーの接点で最もクリティカルな部分はどこだろう。
『里親になりたいユーザーからの里親の申し込み』……ここだな。
というかこのサイトで一番大切な部分とも言える。
じゃあそこを……

「あれ……?」
そのとき突然向かいに座る小毬さんから声が上がった。
「コマ、なんかあった?」
小毬さんの隣に座る南雲くんが手を止めて椅子を軽く小毬さん側に寄せた。
「うん……里親申し込みの内容の確認をしにいったら違う内容になってた気がして……気のせい……かな?」
――……っ!
ちょうど私があたりを付けた部分だ……。
嫌な予感がする。
「どうしました?」
私も小毬さんの後ろへと足を運ぶ。

「わたし、この猫ちゃんに里親申し込みをしてみたのね」
パソコンのディスプレイを指さす小毬さん。
「申し込みをすると、申し込み完了画面で『申込者ID』が表示されるよね。でね、申し込み内容を確認するために申込者IDを確認画面で打ち込んだんだけど……」

自分が里親を申し込んだ内容を確認するための画面がある。
よくホテルや飛行機などの予約後に予約内容を確認ができる画面、といえば伝わりやすいだろうか。
その画面は、里親の申し込みが完了した時に発行された『申込者ID』を、里親申し込み確認画面で入力することで表示される仕様だ。

「あ! えっ、ほら!」
小毬さんがディスプレイを指さした。
「ハリネズミに申し込みしたことになっちゃってる……!」
横からのぞいていた南雲くんが眉をひそめた。
「それ……俺の里親申し込みの内容かも」
南雲くんがスマホを操作して、申し込み確認画面を出した。
「やっぱり。ほら」
小毬さんのディスプレイに表示されている内容と全く同じものが表示されている。
「俺、このときハリネズミに里親申し込みしたから」
南雲くんは小動物が好きなのかもしれない。
それはさておき、つまり小毬さんの方にも南雲くんの申し込み情報が表示されてしまっていることだ。
…………。
……。
何が起きてるんだ、という空気が流れる。
「私にも試させてください。小毬さんの申込者ID教えてもらっていいですか?」
「う、うん」
小毬さんが使ってるパソコンを拝借する。
「えーと、202309――」
「202309っと……………………」
ん……?
ちょっと待って……。
「2110――」
この並び……。
すごく……すごく嫌な予感がする。
「4305、だよ」

「コマ、それ、俺と同じ申込者IDなんだけど」

20230921104305。
「あ……ああーっ!?」
しまった、つい大きな声を出してしまった!!
「え、ど、ど、どうしたの美月ちゃん!?」
わかった……!
全てがわかってしまった!
なんてことをしてくれるんだ……!

――さっき考えた通り、ユーザーを特定するためには何らかの情報が必要だ。
開発者もユーザーを特定するためにどうするか頭を悩ませたはずだ。
そこで考えたのが、申し込んだ瞬間の――

「日時です、その申込者ID」
「え……ええーっ! ほ、ホントだ!?」
驚く小毬さんと、
「だと思ってた」
クールな反応の南雲くん。
これは気づく人は気づく数字の並びだ。
「そうか。だから……」
南雲くんは気づいたようだ。
キョトン、としている小毬さんに言葉を続ける。

「この申込者IDは『2023年9月21日10時43分5秒』ということなんです。今回は、小毬さんと南雲くんが全く同じタイミングで申し込みを行った。しかも1秒も違わないタイミングで」
一瞬だけど、二人の心が通い合った(?)わけだ。
「だから全く同じ番号の申込者IDが発行されたんです」
小毬さんはキョトンとしていたが、
「じゃあ……なんでわたしの申し込み内容は出てこなくて、ナグくんは自分の申し込みが見えるの……?」
と、首を傾けた。
「そうですね――」
データの流れを頭の中でまとめ、口に出す。
「里親の申し込みをした時、まずは日時で申込者IDが決定されます。そして内部で申込者IDと申し込み内容を合わせてサーバーに送った――」
ここまではWebページ部分の話。
ここからは送られたデータの裏方での処理だ。
「けどサーバーには、一瞬だけ早く着いた、全く同じ申込者IDの南雲くんの申し込みがあった。開発者は、申込者IDはユニーク……つまり同じ数字になることはないと思って開発しているはず。そうなると一瞬だけ早く来た南雲くんのデータは保存されて、一瞬だけ後に届いた小毬さんのデータは申込者IDがかぶってるのでデータベースに弾かれてエラーになったはずです。そして小毬さんの申し込みデータは保存されず破棄された――」
「えええっ、わたしの猫ちゃんの申し込みが消えちゃったの!?」
目をまん丸にした小毬さんだったが、
「あ、けどけど! 申し込みしたとき、ちゃんと申し込み完了画面が出たよ? 完了ってしてたよ?」
「――そこです」
内部の動きを想像する。
「申し込みの時、申し込みが成功したか失敗したかをチェックしていないんです」
小毬さんも南雲くんから同時に「え」と声が漏れる。
「申し込みをしたら、そのまま申し込み完了画面と申込者IDが出るようになっているんです」
「えええええっ!?」
失敗しても成功しても完了といえば完了だ。へりくつだけど。
普通は「完了=成功」でなければならない。
「なので――」
指を二本立てる。
「今の問題には大小二つのバグが含まれます」
「一つ目は1秒もズレがないタイミングで里親申し込みがあった場合、1件以外の申し込みは破棄されるバグ」
「二つ目は申し込みのデータ保存の成否のチェックをしておらず、申し込みが失敗したにも関わらず完了画面を表示してしまうバグです」

…………。
……。

最後まで話を聞いた小毬さんの顔色が青ざめていた。
「…………テスト項目書のその部分担当してテストしたの、わたしなのに…………」
「コマ」
南雲くんがうつむく小毬さんに寄り添った。
「これはあのテストだと見つけるのは無理だ。一人でテストしてても絶対見つけられないヤツだから」
いつもはそっぽを向きがちな南雲くんだが、今はしっかりと小毬さんを見ている。
「それに、リリース前にこんな問題が見つけられてよかったし」
不器用だが励まそうとしている。
全く南雲くんは。
「……ありがと、ナグくん」
ちょっと困ったような笑顔を向けられ、南雲くんはプイとそっぽを向いてしまった。
顔、赤いぞ。

まぁ……
『操作「里親を申し込む」期待結果「里親を申し込める」』のテスト項目で今のバグを見つけていたら逆にすごい。


――でだ。考えるのはこの問題がクリティカルかだ。
このサイトは『里親マッチングサイト』である。
そのマッチングサイトでマッチングの申し込みが消えるという問題なのだ。
コア中のコア部分だ。
さらにその時は他人の申し込み情報を見ることができるというオマケまでついてくる。
大問題以外の何だというのだ。
あとは1秒単位で申し込みが被るのかだ。
サイトというものは24時間まんべんなくアクセスがくるわけではない。
この「里親マッチングサイト」であれば、性質的には家族が、夕食後の家族団らんの時に覗くことが多くなるだろう。
ペットを飼っている人はよく『新しい家族を迎える』なんて表現をする。ペットを飼うことはそのご家庭にとって大事な決断なのだと窺い知れる
ならば家族みんなの同意があるだろうし、そうなら家族全員でお迎えするペットを選ぶことも多そうだ。
そうなると19時から21時頃にアクセスは集中しそうだ。その2時間の間に申し込みが集中して被る可能性は十分ある。
そしてだ。
このサイトはリリース時にプレスリリースを出す予定と聞いている。
プレスリリースが出たらニュースサイトにも取り上げられる。
もちろん他にもSNSなどの企業アカウントでリリース告知がされるはずだ。
ウチは大企業だ。企業アカウントのフォロワー数だってかなりの数になる。
そうなるとリリース後にアクセス数が「跳ねる」のはほぼ確実なのだ。
というか、そのために告知を打つのだから当たり前の話だ。
そうなると申し込みの被りの確率も跳ねるだろう。

このバグは『人が集まれば集まるほど爆発する爆弾』なのだ。
しかも一度ではない。人が集まると何度も、何度も爆発する。

その爆発は。
新しい家族を迎えようと楽しみにしている家族の想いを吹っ飛ばす。
企業がコツコツ積み立てた信頼を吹っ飛ばす。



「――あのさぁ、おまえらさぁ」
奥の席から声がかけられた。
見ると、吉村リーダーが「やれやれ」と言いたげな顔でこちらを見ていた。
「テストはもう終わってるわけ」
……?
まだリリースもしてないし、何を――
「おまえら昨日テスト項目書終わらせただろ。で、オレが朝一でテスト項目書つけて終了報告をもうしてるわけよ」
呆れたように鼻で息を吐く。
ああ……そうか。
もう上層部に『全て問題ありませんでした』で報告済みなのだ。
だから。
やっぱり問題がありました、と言えないのだ。言いたくないのだ。
だから。
いまさら問題を掘り起こすな、と言いたいのだ。
これはもう。
完全に彼の保身のためだ。

「オレらの仕事はもう終わってんの」
はい解散、と言わんばかりだ。

「……けっ……………………けど……っ!」

小毬さんが勇気を振り絞ったように、声を出した。
少し声が震えている。
「なんだ日野?」
その声にビクッと体を震わせる小毬さんだったが
「こ、このバグ……里親になるのを楽しみにしてる人たちがすごく困るバグだし……」
「だから?」
なんだよ、という声。
「だから……その……リリース前に直した方が……」
「ハァ!?」
怒気を含んだ声に変わった。
「おまえ午後からリリースだってわかってんだろ! なのに今から直せってか? 間に合うわけねェだろ!」
「っ!」
その声に小毬さんがビクリと体を縮めた。……だが。
「……け……けど、使う人が困るし……」
「使う人が困るじゃねぇんだよ!んなもん困らせておけよ!! んなことしたらオレらが困るってんだよ!!」
オレが困る、だろ。何を言ってるんだ。
さらに鼻息が荒くなる。目も血走っている。
「今日リリースで予定組んでんの! それで営業が回って仕事とってきてんだよ!! それをずらせっておまえは言いたいのか!!」
「け、けど……」
「けどじゃねぇよ! おまえ会社に損害出したいってか! あ? リリースずらして出した損害おまえ払うか!? できねぇだろ!!」
「………………」
「ったく。くだらねぇことやってねぇで黙って座ってろ」

――ガタッ
南雲くんが音を立てて椅子から立ち上がった。

が。

「――お言葉ですが」
先に私が、吉村リーダーの前にズイと立っていた。
「な、なんだよ?」
身長175センチオーバー、つり目で黒髪ロングの私が目の前に立つとかなりの威圧感だそうだ。
「あなたは――」
言葉を溜め、吐き出した。

「――何のためにテストをしてるんですか?」
自分ですら驚くくらいに声が冷ややかになっている。

「何って、そりゃアプリがちゃんと動くか――」
「ちゃんと動いてませんよね、今。問題があるってメンバーから報告が上がってるんですよね、今」
「おまえな、今から報告上げたって直せるわけ――」
「直せるか直せないか」
価値のない言い訳を遮った。無駄だ。
「なぜあなたがそれを判断できるのです? それを判断できるのは開発ですよね?」
「んなことしてたらリリースが――」
「リリースができない……なぜそれをあなたが独断をしてるのです?」
言葉を続けた。
浴びせかけた。
「テストでは――」
「『情報』がわかります。どの範囲までが思った通り動いているか。そして――」
「どんなリスクが発生しているかもわかります」
そう。今のように。
「そのテストでわかった『情報』をチームに伝えることで、今直した方がいいバグか後で直してもいいバグか、今リリースできるのかリリースを延ばすべきなのかが判断できるんですよ」
再度睨みつける。
「――で」
いや、蔑む。

「――その『情報』を握りつぶしてるあなたは」

「――何のために」

「――テストをしてるんですか?」



「――はい、そこまで」
突然、ドアの方から声がかけられた。
驚いてそちらを見ると……
「やあ」
「え……?」
昨日の"センパイ"が私に向かって軽く手を挙げていた。
え、なんで……?
小毬さんと南雲くんも唖然としている。

「話は聞かせてもらった――は、芝居がかってるか」
カッコつかないな、とか言いながらこちらに歩いてくる。
「外まで聞こえてたよ」
ああ。あの怒声は聞こえるよね……。
吉村リーダーを見ると
「……う……う……」
さっきまでの威勢はどこにいったのか、顔を真っ青にしてセンパイを見ていた。
いや、これ、怯えてる……?
「吉村さん」
センパイが話しかけるとビクリとし、慌てて立ち上がった。
ピンとした姿勢だ。
なんだ?
「う、宇水CTO……なぜこのようなところに……」
この人がCTOか…………。
………………。
…………。
……。
……え?
CTO。
CTO!?
CTOーーーっ!?!?
『最高技術責任者』というヤツ!?
つまり……
つまりつまり……。
この数千人規模のIT系大企業のエンジニアたちのトップに君臨している人ってことじゃない!?
ええええぇぇぇぇーーー!?
いやいやいやいや!!
待って!
昨日タメ語で話してたヤツだよそいつ!?
チラリと私の方に目を向け「バレちゃった?」と言わんばかりに肩をすくめた。
…………。
うわーーーその反応は腹立つ!

「吉村さん、お元気そうで何よりです」
「ハハハ、おかげさまで」
違う。コイツのこの言い方の「お元気そうで」は十中八九挨拶でも気遣いでもない。
うるさい、と言いたいのだ。

「吉村さんのおっしゃる通りです。リリースを遅らせるとあちこちの調整が大変で一時的に損害を出すでしょうね」
「で、ですよね!」
吉村リーダーが張り付いた笑顔を見せている。

「――覆水盆に返らず」

「……?」
突然話が変わった。聞いている吉村リーダーも愛想笑いを浮かべつつも疑問符を浮かべている。
「企業は信用商売なんですよ」
いままでよりもわかりやすい営業スマイル。手を広げるジェスチャーまで付けて話している。
CTOとして語っているのだろう。
「企業は小さな信用を積み重ねることで世間に認知されるブランドへと成長します」
某日本の車メーカーがいい例だろう。
「けれど――」
まるでガシャンとでも言いたげに手で積み木を崩すようなジェスチャーを入れる。
「信用を失うのは本当に一瞬だ。あっという間に崩れるんですよ。吉村さんも一度は見たことがあるのではないですか? 大きなバグでユーザーが離れていって衰退した企業を。結果の改ざんで謝罪会見をして信用が失墜した企業を」
苦虫をかみつぶしたかのように顔をゆがめた吉村リーダーが口を挟んだ。
「う、失った信用はたゆまぬ企業努力で再興を行えば……」
……あきれた。
自分が言った内容すら理解していないだろうけど、今回の場合は、もしも自分の隠蔽によって企業が損害を被ったら企業側で責任を取るべきだと言っているようなものだ。
その発言に「いいことを言うね」と声を上げて笑う宇水CTO。
吉岡リーダーもつられて笑っている。

「――覆水盆に返らず」
話が最初に戻った。
なるほどね。言いたいことがわかった。

「今のご時世、一度失った信用は取り戻せないんですよ。吉村さん」
わかってないなぁ、と言わんばかりに大げさに肩をすくめてみせた。
「似たような企業が、似たようなサービスが、世の中にどれくらいあると思っているのですか。他に行く場所があるんだから、わざわざ嫌な思いをした場所なんかに戻らなくていいでしょう?」
CTOの言う通りだ。
ペットの里親サイトも検索すれば様々出てくる。違いなんてウチの会社の知名度くらいだろう。
「今日リリースしようとしているペットの里親マッチングサービスで、リリース後にマッチングの申し込みが消えるバグが発覚したと仮定しましょう」
いつの間にか宇水CTOの張り付いたような笑顔が消えている。
自社サービスの話なので「笑えない」のだろう。
「そうですね、『弊社のマッチングサイトは、相手にマッチング申し込みが届いてるときもあればどこかに消えるときもあります』ですかね。発生した問題はユーザーに知らせる義務がありますから、広く知らせるためにお知らせも出しますし、SNSアカウントでの謝罪も出すでしょう」
冷ややかな目で吉村リーダーを見ている。
「弊社規模だとSNSで炎上してトレンド入りするでしょうね。それをニュースサイトが見逃すはずがない。きっととても愉快な記事を書いてくれますよ。大量にね。そして多くのユーザーがそのことを知るようになる――」
宇水CTOの顔にはもはや表情がない。
「ペットを迎えるということは新しい家族を迎えるのと同義なんですよ、吉村さん。そのご家庭にとっては極めて重要な決断だ」
わかる?わからないよね?と言いたげだ。
「例えバグが直ったとしても、家族にとって重要な決断を『マッチングされるかわからないという問題を起こしたマッチングサイト』でわざわざしますか?」
肩をすくめた。
「信用を失ったらそこで終わりなんですよ」
そこまで言い切ると、宇水CTOが小毬さんの方に体を向けた。
「日野さんがこの問題をリリース前に見つけてくれなかったら大変な事になっていました。心から感謝しています」
「ふぇっ!? いいいい、いえ、そそそそそんな、そんなこと……」
振られた小毬さんが顔を赤くしてアワワアワワとしている。
吉村リーダーはというと、眉間にしわを寄せ違う意味で顔を赤くしてうつむいている。
そんなこと知るかよ、とでも考えているのだろう。

宇水CTOは恐ろしく冷ややかな表情を吉岡リーダーに向けた。
「――吉村さん。私の部屋でもう少しお話をしましょうか」
「……ッ!!」
ビクリと彼は肩を跳ね上げていた。

「で――」
宇水CTOが突然私に目を向けてきた。
「……?」
「日野さんが見つけてくれた2つのバグ修正、キミの見解を聞きたいな。吉村さんの言う通りリリースを延期するとそれなりにダメージはあるんだよね」
ここでそれを私に投げるか!?
小毬さんと南雲くんの不安そうな視線がささる。
まったくもうっ!

――内部の動きを脳内に描く。
今は申し込み時に申込者IDがWebページで作成・発行される。
その発行された値をキーとして、申し込みに対する各種操作が行われているはずだ。
なら起点である申込者IDさえ被らない値になっていたならば、その後の動作は手を加えずに今まで通り動く。
Webページには申込者IDを発行するメソッド――「プログラムの部品」がある。
その部品が、日付を組合せた値を作って、それを申込者IDとして出力している。
ならばそれをユニーク、つまり唯一無二の値を出力するような中身に書き換えるだけでいい。
それには例えばUUIDと言われるようなよく使われるものがある。
既存のものを使えばあまり時間を要せずに修正できるはずだ。
対して二つ目の、成功失敗に関わらず申し込み完了画面を出している問題だ。
こちらはそもそも申し込みが終わったら完了画面に移動させているだけなので、送ったデータをチェックする「プログラムの部品」を新たに作らなければならない。
また申し込み失敗したときの画面デザインも新たに必要だ。
それには申込者IDの変更よりも多くの時間がかかるだろう。
だがこのバグは申込者IDが被らなければ起こる確率はぐっと減るはず――

――こんなところか。
一息吐いて思考を整理してから、言葉を続けた。
「申込者IDについてはID発行の重複さえ回避できれば後のプロセスは問題ないかと。サービスのコア部分なので修正後の申し込みの動作確認に30分程度の時間をいただければ。完了画面時に成否の確認がされていない件はIDの重複が回避できれば発生確率が大幅に減るはずです。こちらは後日修正し後追いでリリースしては?」
もちろん2つ目のバグだって問題なのだが、ビジネスとの天秤も大切なのだ。
「採用」
それだ、と言うように私にピッと指を向ける。
「僕も同意見だよ。ID重複の修正だけなら今日中のリリースが十分可能だ」
吉村リーダーに「あなたが判断するな」って言った直後なのに、私がこんなことを言うのはバツが悪いじゃない。まったく。

「日野さん」
「は……はひっ!」
宇水CTOに呼びかけられ、小毬さんが飛び上がった。
「いつもの企画と開発に呼びかけるチャットに今見つけたバグの内容と、申込者ID重複のバグがリリース前修正必須って一報を入れて。リリースは1時間半後ろ倒し。バグチケットの作成は報告が一通り終わってからでいいからね」
「は、はひーっ!!」
えとえとえと!とテンパっている小毬さんの横に南雲くんが来て、
「俺もフォローする」
と言っている。
うんうん、良きかな良きかな。
小毬さん、テンパってて何も聞こえてなさそうだぞ。
私もフォローするとしよう。

「では行きましょうか、吉村さん」
「…………」
まるで塩をかけられたナメクジみたいに縮まっている吉村リーダーを連れて、宇水CTOは第9の部屋を後にした。


***


各所への報告とバグチケットの登録が終わった。
「あとは修正後の確認作業が終わればリリース」
南雲くんがふぅと小さく息を吐く。
「一時はどうなることかと思ったよ~」
小毬さんが汗をぬぐうようなしぐさなんかをしている。
紆余曲折があったが、何とかなりそうでよかった。

「きっと、使ってくれる人が喜んでくれるアプリになるよね」
あの時とは一転、笑顔がほころんでいた。

それにつられてつい私も笑顔になってしまう。
「そうですね」
小毬さんの目は未来――サービスを受け取る先――ユーザーを見ていた。

「――で、美月ちゃん」
小毬さんのキラッキラした瞳が私に向けられた。
「はい?」
「美月ちゃんは何者!?」
「えっ? た、ただの契約社員だけど……」
乙女ゲーを作っていた、と心の中で付け加える。
「けどすごい色々詳しいし、アプリがどうなってるか探偵みたいにズバズバ当てちゃうし!」
「それはたまたまで……」
視線を感じて南雲くんの方を向くと、南雲くんと目が合った。
私を興味深げに見るなんて南雲くんとしてめずら――
「宇水CTOと何かある?」

――ブフッ!?
剛速球だーーーっ!!

「いや……」
昨日たまたま会って愚痴った相手がまさかCTOだったとは……。
上司を何段階かすっ飛ばしたどころか、入社初日から大企業のトップクラスに文句を言っちゃってるじゃん私!!
しかもタメ口で!
で、あいつが今日ここに来たのも間違いなく私の話を聞いたからなわけで!
結果的にはそりゃ良かったけど、一契約社員としては十分やらかしてるわけで!
あんまりやらかしてると契約終了で家賃が払えずご飯も食べられなくなるわけで!!

ここは――
しらを切れ、私!!

「……何もないけど?」
「……」
「……」
「……」
「……」
「ふぅん?」
完全に疑われてますやん!!

「違うよ、ナグくん」
小毬さんはもう完全にコイバナをするキラキラ乙女の表情になっている!
「宇水CTOが美月ちゃんのカッコよさに一目でホの字になってしまったのです!」
ホの字って小毬さん、あなた何時代の人よ。
「ないと思う」
バッサリだー!
「すごい美月ちゃんカッコいいよね? スラっとしててリンって感じで。ナグくんもそう思うよね?」
「………………?」
南雲くんが小毬さんにしか興味がないのは知ってる。
けどね。
そんなガチ目に首を傾げられるとお姉さん泣くぞ。

――スコココ
小毬さんのチャットが鳴った。
「修正終わったって! 早いね!」
小毬さんが笑顔を咲かす。

「みんな、修正確認をお願いします~」

しおり