Webエンジニアとして新卒1年目に仕事でやらかしたこと
新卒1年目では誰しも仕事に不慣れのため「やらかし」をすることがある。
当時サーバーサイドエンジニアであった自分も規模の大小問わずそのような苦い記憶があり、その供養と戒めをこめてどんなことをやらかしたのかここに書き残しておく。
やらかしたこと
ネイティブアプリをクラッシュさせた
新卒で入社した企業はto C向けのサービスを運営しそれを自社で開発する、いわゆる「自社開発系企業」。プラットフォームとしてはWebだけでなくネイティブアプリ(スマホアプリ)も展開していた。
当時の私はそのto C向けサービス(Webのみ)の施策を進めるPJに所属しており、そのサーバーサイドの開発をしていた。
そんな中「キャンペーンに伴い、ユーザーのロールを1つ増やす」という施策があり、当時の私が担当することになった。やや複雑なタスクではあるが規模で言えばそこまで大きくないものなので、特に何も懸念することなく案件を進めていたがその油断が仇となる。
いざ満を持してリリースし本番確認終了後にほっとしていたのも束の間、「ネイティブアプリにて対象ロールのユーザーが特定ページでエラーになる」という連絡が来た。要するに、自分の開発案件が原因で障害を発生させたのである。
というのもWebとネイティブアプリ両方のリクエストは同じサーバーで捌いており、なおかつ両者で同じロジックを使い回していた。つまり今回のWebサーバーサイドの改修がネイティブサーバーサイド側にも影響を及ぼす可能性が大いにあったのである。
それに加えネイティブアプリのクライアント側は後日のリリースなので、その影響を考慮した実装・事前の共有をする必要があったが、それが漏れてしまい、結果的にネイティブアプリで障害を発生させた。
「Webと比べると圧倒的に利用者の少ないネイティブアプリにおいて、特定の条件を満たすユーザーが特定の画面で10分間ほどエラーになって遷移できなくなる」という傍から見ればそこまでやらかしてないように思える事象だが、「障害」であることに変わりはなく、そして何よりサービス自体がかなり知名度があるものだったので、当時はかなり落ち込んでいた記憶がある。
重要なバッチ処理を停止させた
そのサービスでは頻度こそ様々だが定期実行されるバッチが多くあり、その中の「全ユーザーに対してとある更新をかけてメールを送信する」というバッチの改修をすることがあった。
案の定、そのバッチの改修で不具合を生み出した。根本原因はテストケースの考慮漏れ。
すぐさまバグを修正し再実行することで難を逃れたが、そのバッチは毎日定期実行されるかつビジネス側にもかなり影響のあるものだったので、不具合が発覚した瞬間は形容し難い悪寒に襲われパニックになりかけた記憶がある。
ちなみに不幸にもその翌日からお盆休みだったので、過去の失敗を引きずりがちな自分は最悪のお盆休みを過ごすこととなった。
まとめ
フロントエンドエンジニアにキャリアチェンジしてからは会社の規模も変わり、そして何よりサーバーサイドを触らないので、前述と同じ状況に遭遇することはそもそも無くなった。
第二新卒エンジニアとしてサーバサイドからフロントエンドに転職するためにやったこと
しかしこのやらかしをきっかけにテストコードは何が何でも書くようになり、そして何より新卒のタイミングで障害の恐ろしさを身をもって知れたので、この経験は良い糧になっていると今では思う。