第5話 報告できないログ
朝の報告で一番まずいのは、嘘をつくことではない。
正直すぎることだ。
午前八時二十六分。俺は NEXTPULSE 向けの暫定報告書を開いていた。画面には、MICA が整えた文章が並んでいる。
状態表示の一時的な旧値表示。
表示キャッシュの更新順。
端末応答と UI 反映の時刻差。
影響範囲は管理画面の表示のみ。
次のリリースで表示更新順を補正。
仕事としては、これで通る。
顧客に説明できる。開発者が直せる。営業も謝りやすい。朝十時までの暫定報告としては、むしろよくまとまっている。
ただし、机の上に残った薄い痕はどこにも書いていない。
空中キーも書いていない。
レシートが動いたことも、画面外の白い点も、報告書には一文字もない。
「現実側観測を削除しました」
MICA が言った。
「削除じゃない。別管理だ」
「報告書からは削除されています」
「顧客向け文書に『机の上が反応しました』とは書けない」
「正確には、机上の軽量紙片とレシート表面に、表示対象外座標と相関する変化がありました」
「もっと書けない」
「同意します」
通話通知が鳴った。
差出人は三枝莉央。
俺はマイクをオンにした。
「相馬さん、おはようございます。今、大丈夫ですか」
声は若いが、眠気を押し殺した感じがある。向こうも朝から平常運転ではなさそうだ。
「大丈夫です。暫定原因は出せます」
「助かります。顧客説明に使うので、確度と影響範囲を先に知りたいです」
こういう聞き方をする担当者は信用できる。
原因名だけ聞いて安心する相手より、どこまで言ってよくて、どこから先が未確定かを気にする相手のほうが、事故が少ない。
「現時点では、表示キャッシュと反映タイミングの問題です。実データの破損や端末側の異常ではない可能性が高い」
「可能性が高い、なんですね」
「断定はしません。再現条件がまだ狭い」
「了解です。画面だけの問題、と言い切れない理由はありますか」
俺は少しだけ黙った。
理由はある。
机の上の紙が動いたからだ。
だが、それは言えない。
「ログの粒度です」
「粒度」
「記録の細かさです。アプリログは状態ラベルの更新を記録している。端末ログはセンサー応答を記録している。OS ログはプロセスの状態を記録している。ただ、画面の一フレームごとの描画までは、全部残していない」
「つまり、画面だけで起きているように見えても、ログには粗いところがある」
「そうです」
三枝さんはすぐに言い換えた。
技術を知らないわけではない。むしろ理解が速い。
「では、顧客には『端末値は正常。管理画面の表示更新で一瞬古い状態が見える可能性がある』までにします」
「それなら安全です」
「相馬さんの中では、まだ他の可能性を残している?」
「残しています」
「どの辺りですか」
俺は報告できる範囲を選んだ。
「ログの時刻がきれいすぎる。普通は、端末応答、アプリ反映、描画に少しずつずれが出ます。問題が出る操作だけ、その三つが妙にそろっている」
「そろっているのに、ずれに見える?」
「はい。そこが変です」
「分かりました。時刻がそろいすぎる、というのは報告書に入れますか」
「顧客向けには不要です。開発内部向けの調査メモに残してください」
「了解です」
彼女は短く息を吐いた。
画面越しでも、判断を組み立てている気配があった。
「こちらでも同じ操作を試していいですか。開発機と実機、両方あります」
「お願いします。ただし、顧客環境ではまだ試さないでください」
「なぜですか」
「再現条件が狭い。今は調査用ログを増やした環境で見たい」
本当は、もう一つ理由がある。
もし向こうの机でも何かが動いたら、顧客環境で試すには危険すぎる。
「分かりました。社内環境だけでやります」
通話の向こうで、キーボードを叩く音がした。
「操作手順は、いただいた暫定報告の再現手順でいいですか」
「はい。追加で、端末側の照度ログも出せますか」
「照度ですか。温湿度だけでなく、照度も取っています」
「表示ズレとは直接関係しないはずです。だから見たい」
「関係ないところを見るんですね」
「関係ないはずのところを見るんです」
三枝さんが、少しだけ笑った。
「相馬さんらしいです」
まだ会ってもいない相手にそう言われるのは変な感じだが、悪くはなかった。
向こうで操作が始まる。
俺の画面には、三枝さんが共有したログが流れた。
端末応答。
アプリ反映。
状態表示。
照度。
「表示、揺れました」
「物理的な変化は」
言ってから、失敗したと思った。
三枝さんが聞き返す。
「物理的?」
「画面以外です。端末のランプ、周囲の照明、机の振動など」
「ああ。目視では何もありません。端末のランプも普通です」
「了解」
俺は胸の奥で息を吐いた。
向こうの机では、少なくとも目に見えるものは動いていない。
なら、この現象は俺の部屋だけか。
そう思った直後、MICA が別ウィンドウを出した。
「照度ログに微小な揺れがあります」
三枝さんも気づいたらしい。
「相馬さん、照度が一瞬だけ落ちています。誤差ですか」
「値を見せてください」
彼女が該当範囲を拡大する。
通常値は四百二十ルクス前後。
問題の操作の瞬間だけ、四百十九・八から四百十八・九へ落ち、次の記録で戻っている。
人間の目では分からない。
照明がちらついたと言うほどでもない。
だが、端末は拾っている。
「センサーのノイズに見えます」
三枝さんが言った。
「普通はそうです」
「普通は?」
「いまのところ、ノイズとして扱ってください。照度ログの粒度を上げられますか」
「できます。サンプリング間隔を短くします」
「それで同じ操作を一回だけ」
「一回だけ?」
「回数を増やすと、別の要因が混ざります」
嘘ではない。
ただ、全部は言っていない。
三枝さんは少し間を置いてから答えた。
「分かりました。一回だけ」
再実行。
画面表示が揺れる。
照度ログが、同じタイミングでわずかに落ちる。
物は動かない。
彼女の画面にも、白い点は出ない。
それでも、ログには揺れが残った。
「これ、UI バグだけでは説明しづらいですね」
三枝さんの声が低くなった。
「まだ、そう断定しないでください」
「でも、表示更新で照度が落ちる理由はないです」
「ないです」
「相馬さん、何か掴んでますか」
俺はレシートの薄い痕を見た。
報告できるログ。
報告できないログ。
その境目が、机の上に一センチ四方で残っている。
「掴みかけています」
「顧客に言える範囲では?」
「管理画面の表示更新順に問題がある。端末値への影響は確認中。照度ログに微小な揺れがあるので、内部調査として継続」
「現実的ですね」
「現実的な部分だけです」
「では、それで暫定報告を出します。相馬さん、照度ログの追加調査もお願いしていいですか」
「受けます」
「ありがとうございます。あと、無理はしないでください。声がだいぶ眠そうです」
「仕様です」
「修正予定は?」
「未定です」
三枝さんは、今度ははっきり笑った。
通話が切れる。
俺の画面には、莉央の環境から送られた照度ログが残っていた。
物は動いていない。
白い点も出ていない。
それでも、問題の瞬間だけ、光の値が落ちている。
俺の部屋だけではない。
だが、彼女の画面には何も起きていない。
朝の報告で一番まずいのは、嘘をつくことではない。
正直すぎることだ。
午前八時二十六分。俺は NEXTPULSE 向けの暫定報告書を開いていた。画面には、MICA が整えた文章が並んでいる。
状態表示の一時的な旧値表示。
表示キャッシュの更新順。
端末応答と UI 反映の時刻差。
影響範囲は管理画面の表示のみ。
次のリリースで表示更新順を補正。
仕事としては、これで通る。
顧客に説明できる。開発者が直せる。営業も謝りやすい。朝十時までの暫定報告としては、むしろよくまとまっている。
ただし、机の上に残った薄い痕はどこにも書いていない。
空中キーも書いていない。
レシートが動いたことも、画面外の白い点も、報告書には一文字もない。
「現実側観測を削除しました」
MICA が言った。
「削除じゃない。別管理だ」
「報告書からは削除されています」
「顧客向け文書に『机の上が反応しました』とは書けない」
「正確には、机上の軽量紙片とレシート表面に、表示対象外座標と相関する変化がありました」
「もっと書けない」
「同意します」
通話通知が鳴った。
差出人は三枝莉央。
俺はマイクをオンにした。
「相馬さん、おはようございます。今、大丈夫ですか」
声は若いが、眠気を押し殺した感じがある。向こうも朝から平常運転ではなさそうだ。
「大丈夫です。暫定原因は出せます」
「助かります。顧客説明に使うので、確度と影響範囲を先に知りたいです」
こういう聞き方をする担当者は信用できる。
原因名だけ聞いて安心する相手より、どこまで言ってよくて、どこから先が未確定かを気にする相手のほうが、事故が少ない。
「現時点では、表示キャッシュと反映タイミングの問題です。実データの破損や端末側の異常ではない可能性が高い」
「可能性が高い、なんですね」
「断定はしません。再現条件がまだ狭い」
「了解です。画面だけの問題、と言い切れない理由はありますか」
俺は少しだけ黙った。
理由はある。
机の上の紙が動いたからだ。
だが、それは言えない。
「ログの粒度です」
「粒度」
「記録の細かさです。アプリログは状態ラベルの更新を記録している。端末ログはセンサー応答を記録している。OS ログはプロセスの状態を記録している。ただ、画面の一フレームごとの描画までは、全部残していない」
「つまり、画面だけで起きているように見えても、ログには粗いところがある」
「そうです」
三枝さんはすぐに言い換えた。
技術を知らないわけではない。むしろ理解が速い。
「では、顧客には『端末値は正常。管理画面の表示更新で一瞬古い状態が見える可能性がある』までにします」
「それなら安全です」
「相馬さんの中では、まだ他の可能性を残している?」
「残しています」
「どの辺りですか」
俺は報告できる範囲を選んだ。
「ログの時刻がきれいすぎる。普通は、端末応答、アプリ反映、描画に少しずつずれが出ます。問題が出る操作だけ、その三つが妙にそろっている」
「そろっているのに、ずれに見える?」
「はい。そこが変です」
「分かりました。時刻がそろいすぎる、というのは報告書に入れますか」
「顧客向けには不要です。開発内部向けの調査メモに残してください」
「了解です」
彼女は短く息を吐いた。
画面越しでも、判断を組み立てている気配があった。
「こちらでも同じ操作を試していいですか。開発機と実機、両方あります」
「お願いします。ただし、顧客環境ではまだ試さないでください」
「なぜですか」
「再現条件が狭い。今は調査用ログを増やした環境で見たい」
本当は、もう一つ理由がある。
もし向こうの机でも何かが動いたら、顧客環境で試すには危険すぎる。
「分かりました。社内環境だけでやります」
通話の向こうで、キーボードを叩く音がした。
「操作手順は、いただいた暫定報告の再現手順でいいですか」
「はい。追加で、端末側の照度ログも出せますか」
「照度ですか。温湿度だけでなく、照度も取っています」
「表示ズレとは直接関係しないはずです。だから見たい」
「関係ないところを見るんですね」
「関係ないはずのところを見るんです」
三枝さんが、少しだけ笑った。
「相馬さんらしいです」
まだ会ってもいない相手にそう言われるのは変な感じだが、悪くはなかった。
向こうで操作が始まる。
俺の画面には、三枝さんが共有したログが流れた。
端末応答。
アプリ反映。
状態表示。
照度。
「表示、揺れました」
「物理的な変化は」
言ってから、失敗したと思った。
三枝さんが聞き返す。
「物理的?」
「画面以外です。端末のランプ、周囲の照明、机の振動など」
「ああ。目視では何もありません。端末のランプも普通です」
「了解」
俺は胸の奥で息を吐いた。
向こうの机では、少なくとも目に見えるものは動いていない。
なら、この現象は俺の部屋だけか。
そう思った直後、MICA が別ウィンドウを出した。
「照度ログに微小な揺れがあります」
三枝さんも気づいたらしい。
「相馬さん、照度が一瞬だけ落ちています。誤差ですか」
「値を見せてください」
彼女が該当範囲を拡大する。
通常値は四百二十ルクス前後。
問題の操作の瞬間だけ、四百十九・八から四百十八・九へ落ち、次の記録で戻っている。
人間の目では分からない。
照明がちらついたと言うほどでもない。
だが、端末は拾っている。
「センサーのノイズに見えます」
三枝さんが言った。
「普通はそうです」
「普通は?」
「いまのところ、ノイズとして扱ってください。照度ログの粒度を上げられますか」
「できます。サンプリング間隔を短くします」
「それで同じ操作を一回だけ」
「一回だけ?」
「回数を増やすと、別の要因が混ざります」
嘘ではない。
ただ、全部は言っていない。
三枝さんは少し間を置いてから答えた。
「分かりました。一回だけ」
再実行。
画面表示が揺れる。
照度ログが、同じタイミングでわずかに落ちる。
物は動かない。
彼女の画面にも、白い点は出ない。
それでも、ログには揺れが残った。
「これ、UI バグだけでは説明しづらいですね」
三枝さんの声が低くなった。
「まだ、そう断定しないでください」
「でも、表示更新で照度が落ちる理由はないです」
「ないです」
「相馬さん、何か掴んでますか」
俺はレシートの薄い痕を見た。
報告できるログ。
報告できないログ。
その境目が、机の上に一センチ四方で残っている。
「掴みかけています」
「顧客に言える範囲では?」
「管理画面の表示更新順に問題がある。端末値への影響は確認中。照度ログに微小な揺れがあるので、内部調査として継続」
「現実的ですね」
「現実的な部分だけです」
「では、それで暫定報告を出します。相馬さん、照度ログの追加調査もお願いしていいですか」
「受けます」
「ありがとうございます。あと、無理はしないでください。声がだいぶ眠そうです」
「仕様です」
「修正予定は?」
「未定です」
三枝さんは、今度ははっきり笑った。
通話が切れる。
俺の画面には、莉央の環境から送られた照度ログが残っていた。
物は動いていない。
白い点も出ていない。
それでも、問題の瞬間だけ、光の値が落ちている。
俺の部屋だけではない。
だが、彼女の画面には何も起きていない。




