坊 雄祐:https://www.linkedin.com/in/yusukebou/

Copyright © 2024 Yusuke Bou. All rights reserved.

(フィードバックはこちらへお願いします!)

エピローグ

木曜日です。とうとう今日の午後2時には、入社1年で初めての大きな仕事が世界中にリリースされます。アプリの最新バージョンは、全てのプラットフォームで承認されました。もうあなたには何の仕事も残っていないはずです。品質管理チームが、最新バージョンをリリースしてくれる手筈は整っています。

同期入社のAさんは、Webチームの配属になり、数ヶ月前には担当した新機能をリリースしました。いえ、リリースするチャンスを得た、と言うべきでしょう。何せ、次の日には、変更を全てリバート(取り消)して、緊急デプロイ(展開)をする羽目になったのですから。サービス・ログは真っ赤、オンコール(呼び出し待機)エンジニアのスマホは鳴りっぱなし、お客様から大目玉を食らって顔面蒼白だったとAさんが言っていたのを思い出します。

幸い、不具合の原因はすぐに見つかり、次の週には再リリースに漕ぎ着けたそうですが、そんな事を聞いて、アプリチーム配属で運が良かった、と思っていました。アプリには、サービスログもオンコールもありません。確かに、何だか意味がわからない「危険そうだからやめて」と言うレビューコメントのせいで、実装がなかなかマージできずにイライラすることはありましたが、一人ずつ、新機能にどうしても必要な変更だと説得して乗り切りました。やっとの事で大きなインパクトのある仕事を任してもらえたのですから、どうしても手広くコードを変更せざるを得ませんし、その程度で根を上げていては上司に能力を疑われ兼ねません。そんな2ヶ月前の事も、今では懐かしい思い出です。

そうこうしている内に、社内のチャットアプリに、アプリのバージョンアップを知らせるボットからの投稿がありました。早速、大学のころの友人や他の同期に自慢します。

夕方、仕事を終えて帰ろうとすると、上司に呼び止められました。サポート・チームから問い合わせが入っているからその対処をしてもらえないかという事でした。せっかくのリリースの日に残業で昔のコードを掘り起こさせるなんて、勘弁して欲しいな、と思いながらも、どんな案件か聞いてみると。。。

B社様は古くからのお得意様で、売り上げでもトップクラスだとは、さすがにエンジニアでも1年もいれば自然と聞いていました。どうやら、B社様のユーザーで、アプリを今日最新版にした人から、今までのデータが見れなくなってしまった、という問い合わせがあったそうです。今日のリリースで関係しそうな変更は私の担当した新機能だけだろうと、私に声がかかったとのことです。さすがに聞いていて、不安にはなりました。とはいえ、社内プロセスで嫌というほど検証テストはさせられましたし、他の人の一見関係なさそうな小さな変更が関係していないとも限りません。誰か別の人の入れた問題だと分かれば、その人にメッセージを送りながら、リバートをマージしてリリース・チームに連絡するなり、ワークアラウンド(回避策)をサポート・チームに連絡するなりすれば良い、など考えながら、検証のためにB社様のデータの一部を参照するためのプロセスを開始しました。

ここだ、と思わず独り言が出てしまいました。そこを見るのは2ヶ月ぶりです。今回関係するB社様のデータは、今のサービス側のコードでは作れない構造になっています。どんな過去の経緯があるのか追っかけている時間はありませんが、とにかくそういうデータになっています。そんなデータが来ることを予期せずに書いた私のコードは、バグらないとありえないケースだという前提で、そのデータをクリーンアップしていました。何せ、そんなデータがありえる前提では、新機能の実装が複雑になりすぎて、とても上司の期待する納期には間に合いそうになかったのです。ここも見た、あそこもテストした、ソースコードの履歴も追っかけた、とレビューアーを納得させて切り抜けた、最初は危険そうだと言われた、そこでした。コメントも無くこんなコードを入れるは、経緯をログするバグ・データベースもまともに整備していないは、なんて昔はひどい状態だったんだ、と当たりたくなりますが、当たる相手はもうこの会社にはいないとレビューアーに聞いたのを思い出しました。

ほとんど真っ白になった頭を何とか働かせて、修正方法を検討します。2ヶ月前はゴミにしか見えませんでしたが、今は、具体的にどんなデータがあって、どういう意図で元のコードがあったのかも理解できたのですから、きっと直す方法も見つかるはずです。上司に進捗を聞かれる前に急いで直しを出して、リリース・チームに連絡を入れなければいけません。何とか今夜、汚いワークアラウンドでも何でも、とにかく何かを用意しないといけません。

B社様専用のコードは復活させながら、新機能の方でそのデータを無視するような変更を書き終えてビルドしながら、コードレビューの依頼を書いていると、上司がやって来ました。もう帰っていたと思っていたのですが、別件のミーティングが長引いて、会社に残っていたようです。現時点で言えることは、