お仕事で青ざめた話
久々に書く記事がこんなのでちょっと違和感があるけれど,仕事でつらい思いをしたので一部始終を書き起こした.
昨日の話.仕事で,2年ほど前に行った計算をパラメータをわずかに変更して再計算する必要が生じた.それはあまり重要ではないパラメータだったが,過去の計算では常識的なレンジから少し離れた値を使っていた.そこを修正したうえで再計算を行い,結果が変わらないことを確認せよ,というのが今回のミッションだ.
ところが,修正したシーンで計算をしてみると結果が全く合わず以前のシーンとは似ても似つかない結果が返ってきた.にわかには信じられなくて,すぐにシーンデータを詳しく検証する作業を始めた.そうして探しているうちに所々設定ミスと思われる箇所がみつかり,「そもそも最初の計算がおかしかった」説が浮上する.僕は青ざめた.
「やってしまった」と思った.これは確かに2年前に僕が行った計算で,しかもその後このプロジェクトは2年間,僕の計算した結果を受けて進められてきた.今回はその総仕上げで,「念のため確認しておこうか」と言われて久々に出してきたシーンデータである.それが,ふたを開けたらこの有様か.
ここまで昨晩のできごとなのだけれど,そんなことで大騒ぎしてだいぶん遅くなってしまっていたので,帰宅することにした.明日は朝一番「ごめんなさい」だなぁと思って食べる晩ご飯は全然美味しくなかった.明日は金曜日だから,1日休めば来週まで引き延ばせるとか,そもそもこの事実をもみ消して「検証した結果大丈夫でした!」というデータをでっち上げれば誰も気づかないとか,何度も魔が差したけれど,そこまで無責任にはなれなかった.
夜は全く眠れなかったけれど,動揺していても死にたくなるだけである.できるだけ論理的に原因とその影響範囲のことを考えるように努めた.誰にごめんなさいしなければならないか,この変更によってプロジェクトに追加で発生する修正はどの程度か,そして,そもそも何が間違っていて正しい解はどんな様子であるべきかについて考えを巡らせ続けた.
僕は注意力が散漫だからよくミスをする.それは事実だけれど,少なくとも今日まで提示してきた計算結果におかしな点は見つからなかったし,その後行われた追加の検討でも何一つ不具合は出ていない.振り返ってみると,その入力ミスと思われる箇所は最初に入力してそれっきりのものではなく,プロジェクトの途中で何度か変更したことがあるという種類のものだった.1度きりの設定ミスなら,僕の見落としの可能性が濃厚だろう.けれど,過去に何度も変更したはずの箇所に,冷静な人なら一目で矛盾に気づくような入力ミスが存在する.今回の不具合はそのような性質のものだった.さすがに,何か別の原因があるのでは?深夜の反省会はそんな結論に収束していった.
朝になった.雨が降っていて少し肌寒い天気は僕の気分にぴったりで,だからこそ出社しようという気になれたような気がする.これが快晴の青空だったら,暗い部屋に引きこもりたくなるところだった.昨夜の反省会の結論は「さすがの僕の目も,こんなミスを見落とすほどの節穴ではない」だったが,現時点ではただの言い訳にすぎない.
今日最初の仕事は「過去の計算結果を再現する」ことだった.僕は確かに過去の入力データと計算結果のペアを手にしてはいるが,この明らかな間違いがある入力ファイルの計算結果が,まさに過去に提出したものと同じであるということを,僕はまだこの目で見ていない.入力が確かに間違っていることを確認し,それを正しい値に修正すると結果がどう変わるのか.ここまで説明できる状態になったら「ごめんなさい」を言いに行こう.そんなストーリーだ.
過去のモデルをそのまま再計算するという布石は,昨晩のうちにすでに打ってあり,結果は出社してすぐに確認できた.結果は過去の計算値と一致しなかった.これはどういうことだろうか.僕の手元には今,明らかに間違いのある入力ファイルと,過去のどの結果とも一致しない結果ファイルが残されていた.一見すると泥沼の状況だったが,「僕の入力ミスが原因」としか思えなかった昨晩の状態から「何が原因か判らないが答えが合わない」状態に1歩後退したことで,僕は少しだけ客観的に物が見られるようになっていた.
過去のシーンデータがそのまま計算できないとなると,先ずは計算プログラムの側の不具合を疑わねばならない.使っているのは商用の計算プログラムで,実は2年前と今とではソフトのバージョンが違う.これまでメーカーの「バージョンアップの変更点は機能追加のみで,既存の機能に対する変更は無い」というアナウンスを信用してきたが,計算プログラムのバージョン違いは,今回の騒ぎの原因として可能性の高い仮説だった.
すぐに倉庫へ旧バージョンの計算プログラムを取りに行き,最新版を一度アンインストールし,古いバージョンを入れ直した.改めてシーンを開いてみると,そこには入力ミスと思っていた不具合は見当たらず,すべてのパラメータは正しく入力されていた.そして,計算させた結果も過去の結果と寸分違わず一致した.僕はソフトのバージョン違いに踊らされて,あの不安な夜を過ごしたのだとようやっと気づいた.
今回の騒ぎの原因はつまりこういうことだ.
- 現行の計算プログラムには,過去のバージョンで作られたシーンを読み込むと,シーンを破壊してしまうバグがある.
- 破壊箇所はクリティカルではないので,計算自体はできてしまう.
- 当然,得られる結果もデタラメなものになる.
終わってしまえば何のことはない.ソフトのバージョンが違えば計算結果が違うのは当たり前じゃないかとか(とはいっても入力ミスに擬態した入力ファイルの改ざんを受けたら,初見では狼狽えてもしょうがないと思いたい),調べてみたら僕の入力ミスじゃありませんでしたなんて話は仕事上のつらい体験にはあたらないとか,そんな指摘がありそうな話ではある.
それでも,昨夜からの心の動きは(少なくとも僕にとっては)書き起こす価値のある体験だったので,忘れないうちに記しておいた.ひたすら動揺してそのまま帰宅したこと.その中でも,翌日の布石になる計算を走らせてから帰宅する判断ができたこと.美味しくなかった晩ご飯.眠れない夜.今日会社を休もうかとさえ思ったこと.謝るまでの道筋を立て始めて次第に論理的に考えられるようになっていく過程.原因が入力ミスでは無いと気づき始めてからの冷静さ.自分の心の動きを書き起こしてみて,それなりに面白い経験をしたのかなと(今は)感じている.
あとこれは後日談だけれど,今晩は宴会の予定が入っていた.本当に僕のミスだったらそんなものはキャンセルして僕は今頃,夜な夜な正しい計算結果を求めて彷徨う亡霊みたいになっていただろう.実際には問題は解決したので,定時退社して飲みに行った.いやーお酒美味しい.この酒の味は忘れられないというか,忘れないようにしたいと思う.
投稿者 | CASPAR003 |
投稿時刻 | 22:19 |
カテゴリー | 雑記 |
コメント | 3 件 |
トラックバック | 0 件 |
記事へのリンク | http://www.caspar003.info/delta/archive/2016/05/27/2219.html |
コメント
- 投稿者
- iun
- iun
- CASPAR003
トラックバック
- トラックバック