僕の仕事はwebエンジニア。今は主にフロントエンドの開発を行っている。あるウェブアプリの継続開発で、色んな機能を実装したりする。
今は新規開発。新しい画面の実装を僕は行っていた。要件の中にリダイレクト処理を行う箇所があり、それを実装中。まぁ実装と言っても既存でリダイレクト処理は既に実装されているので、新規画面をリダイレクトする画面のリストに加えるだけの簡単な要件だった。
……しかし、いざやってみるとうまくいかない。過去の実装を見るに方法は間違ってない筈なのにリダイレクトが行われない。……なんか変だ。1日色々試行錯誤してみる。
調べてわかったのはたまーに正常に動作すること。既存でもたまーにリダイレクト処理が失敗することだった。恐らくは非同期処理が原因?
これ以上は調べるのに時間がかかりすぎるので一旦、リーダーに報告。改めて色々試してみる。
結果、原因はよく分からずシニアエンジニアへと話は移る。僕がメインで調査したこともあって、偉い人にも僕が説明した。
結果、既存で実は見つかっていなかったバグである……ということになった。存在を認知されていなかったバグを見つけてしまった。たまたま僕の開発要件にリダイレクトがあったから僕が見つけるに至ったわけだけど、他の人がやっていたら見つけていたのは別の人だったろう。つまりこれは誰かがいつか見つけるであろうバグ。
「こちらのバグの調査はどうしましょうか?」
「……」
「ロタールさんに引き続き調査頂きたいんですが、他の作業が詰まっている感じですかね……?」
ーー他のタスク、2日くらい巻いて終わらせちゃったんだよなぁ!!!1日ゆっくりして1日早めに完了するかと思っていたけど……ここで嘘つく訳にもいかんよな……
「あっ、2日くらいタスク巻いてたのでその間は調査可能です」
ということで引き続き調査を行うことになった。完全にハズレくじである。チームリーダーとログを仕込みまくって検証。これまで誰も気づかなっただけあって根本原因はかなり根深そう。丸2日調査しても、怪しい箇所を洗い出せただけ。原因の完全な特定には至らなかった。
結果的にはある非同期処理とローカルに値を保存する処理が怪しいって結論。なんとも判然としない結果である。
バグ見つけるのは完全にハズレくじだよなぁ。しかも目につかない所の方が大抵難しい。だってシニアエンジニアでも原因断定できなかったんだぜ?僕2年目よ?調査に進展があっただけでもかなり良いんじゃないでしょうか……?
おかげで残業時間も増えて、ずっとパソコンと睨めっこ。勘弁して欲しいね……まぁ、勉強にはなったし、原因特定のための試行錯誤はまぁまぁ楽しかったけど。