表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
新卒エンジニア、観察ノートを開く(下巻) 道を、選び取る  作者: 音無 凪


この作品ページにはなろうチアーズプログラム参加に伴う広告が設置されています。詳細はこちら

PR
11/26

第72話「桐谷、引き受ける夜」

この物語はフィクションであり、登場する人物、団体、地名、企業名等はすべて架空のものです。実在のいかなる存在とも関係ありません。

 八月の第二週、月曜日の午後二時。


 鈴木未來さんがインターンに入って、一ヶ月半が経っていた。


 二ヶ月の終わりまで、あと二週間半。


 この一ヶ月半で、鈴木さんは三つほどの小さな改修を僕と香織さんの脇で組んだ。最初は手順書通りの単純な置換から、次にCSVのバッチ処理の入出力ロジック、そして三つめが、業務システムの管理画面の中の検索フィルターの追加。


 三つめの検索フィルターは、本番環境にデプロイした初日に、小さなバグを出した。


 


 バグの内容は、フィルターの初期値が空のとき、内部で「null」ではなく文字列「'null'」として扱われてしまう、というものだった。


 顧客への影響は軽微だった。


 管理画面側で「該当データなし」と表示が出るだけで、データ自体は壊れていない。検索条件を一度変えればすぐに正常な結果が返る。


 報告メールが顧客先のシステム担当者から朝の十時十五分に届いた。

 メールの文面は丁寧だった。

 「検索結果がおかしいので確認してください」。

 その一行と、再現手順のスクリーンショット。


 白瀬さんがメールを最初に開いて、原因をその場で五分で特定した。


「鈴木さんが先週デプロイしたフィルターのフラグの初期値の置き方」


 白瀬さんは僕に短くSlackで伝えてくれた。


 僕はSlackの通知を朝の十時二十分に開いた。


 画面の文字を二度、目で追った。


 ……鈴木さん。


 心の中でその三文字をつぶやいた。


 


 ホットフィックスの修正を、白瀬さんが午前のうちに当ててくれた。


 昼前に本番のフィルターの初期値が「null」に直って、顧客先からは「直りました、ありがとうございました」という短い返信が届いた。


 修正そのものは、ほんの数行だった。


 問題はコードの数行ではなかった。


 問題は、鈴木さんが一人目の本番のバグを、自分の名前のついた変更で出してしまった、ということだった。


 昼休み、鈴木さんはお弁当を半分ほど残して、午後の島に戻ってきた。


 目元が薄く赤かった。


「鈴木さん」


 短く声をかけた。


「すいません、私のせいで」


 鈴木さんはそう置いた。


 声は、いつもの鈴木さんよりも低かった。


 肩のあたりが、固くなっていた。


「すいません、私のせいで、白瀬さんに修正、させて」


 二度目の「すいません」がノートの上に書き留めるように落ちた。


 僕は息を整えた。


 三年前の自分の最初のバグの日を思い返した。


 あの日の自分の手のひらの湿気を、いま、鈴木さんが同じ温度で握っていた。


 僕は声を低く整えてから口を開いた。


「鈴木さん、まず、顔を上げて」


「はい」


 鈴木さんが顔を上げた。


 目が赤かった。


「修正は、白瀬さんがもう当ててくれた。本番、もう直ってる」


「はい……」


「いま、何が起きたかは、午後、振り返り会議で諏訪さんも交えて、ちゃんと整理する」


「はい」


「それまでは、一回、深呼吸して、午後の業務にいったん戻ってほしい」


 鈴木さんはノートを開いて、ペンを構えた。


 書き留めようとしている手が、少し震えていた。


 しかし最後までちゃんとノートの上にペンを置いた。


 


 午後二時、会議室Bを諏訪マネージャーが押さえた。


 諏訪さん、僕、鈴木さん、三人で会議室に入った。


 白瀬さんは修正対応の余波で別の打ち合わせに入っていて、会議には同席しなかった。


 会議室の机を挟んで、諏訪さんが正面、僕と鈴木さんが並んで向かいに座った。


 諏訪さんはMacBookを開かなかった。


 いつもの諏訪さんのその所作だった。話に向き合うときに、MacBookの画面を間に置かない。


「鈴木さん、桐谷くん、お疲れさま」


 諏訪さんはまずそう置いた。


 いつもの声の温度。フロア全体の音量を一段だけ下げる、あの落ち着いた一行。


「鈴木さん、まず、午前中の経緯を、桐谷くんからもう一度、整理してほしい」


 諏訪さんは僕のほうを軽く見た。


 息を整えた。


 心の中で、一行を選んだ。


 


 その一行を、僕は最初に置いた。


「諏訪さん、これは私の指導の問題です」


 短く運んだ。


 会議室の中の空気が、一瞬、止まった。


 諏訪さんが目を僕のほうに上げた。


 いつもの諏訪さんの落ち着いた目だった。


 しかし最後のところだけ、確かに何かを受け取った目だった。


 鈴木さんが、隣で驚いた顔をして、僕のほうを見た。


「桐谷くん」


 諏訪さんが短く置いた。


「君が引き受けるのか」


「はい」


 短く返した。


「あのフィルターのコードは、僕がレビューを通したものです。鈴木さんが書いて、僕がレビューで一度通した。フラグの初期値の置き方を、僕がレビューの段階で見抜けなかった。だから、今回の本番のバグは、僕の指導の問題、僕のレビューの問題、僕の責任です」


 間を置いた。


「鈴木さんが書いた、というのは、もちろん事実です。でも、本番に流れるところまでで言えば、僕が止められた段階で止められなかった、というほうが、構造として、正しい」


 諏訪さんはその一行を、頭の中で並べ直していた。


 会議室の中で、しばらく間が空いた。


 


「分かった」


 諏訪さんはそう置いた。


「じゃあ、私の管理責任でもある」


 短く運んだ。


「桐谷くんがレビューを通した責任を引き受けるなら、私はそのレビュー体制を組んだ責任を引き受ける」


 諏訪さんはそう置いた。


 僕は諏訪さんの目を見た。


 諏訪さんの目は、いつもの諏訪さんの目だった。


 しかしいまの一行の中に、確かに僕への信頼の温度が乗っていた。


 諏訪さんは僕の引き受けを一瞬も否定しなかった。引き受けた上で、自分のもう一段上の責任を隣に置いてくれた。


 ……諏訪さんの引き受け方、一年目のあの頃から、少しもぶれない。


 胸の奥で、その温度を確かめた。


 


 諏訪さんは続けた。


「鈴木さん」


「はい」


 鈴木さんが顔を上げた。


 目はまだ赤かった。


 しかしさっきよりも、落ち着いていた。


「鈴木さんは、新人インターンとして、ちゃんとやるべきことをやってくれた。コードを書いて、レビューに出して、本番に流した。その一連の流れの中で、君が止められなかった失敗は、君一人の責任ではない」


「はい……」


「失敗の責任の置き場所は、君のいちばん上のレビュー者、その上のチームのマネージャー。今回で言えば、桐谷くんと、私だ」


 諏訪さんはそう短く運んだ。


 鈴木さんがノートを開いてペンを構えた。


 しかし書く前に、目で諏訪さんを見つめた。


「鈴木さん、今日は、ノートに書き留めてもいい」


 諏訪さんは口の端でほんの少しだけ笑った。


「ただ、書き留める前に、まず一回、ちゃんと聞いてほしい」


「はい」


 鈴木さんはペンを置いた。


 目を諏訪さんに向け直した。


「失敗から学ぶというのは、たぶん、自分の手の中で『次にどうやって防ぐか』を組み立てることだ」


 諏訪さんはそう置いた。


「責任は上が引き受ける。けれど、防ぎ方を組み立てる手は、本人の手の中にある。その手を、桐谷くんと私とで、隣で支える」


「はい」


「だから次の半時間、桐谷くんと鈴木さんで、再発防止策を一緒に考えてください。私は最後の半時間で、それを聞きに戻ってきます」


 諏訪さんはそう運んでから、軽く頭を下げて、会議室を出ていった。


 


 会議室に、僕と鈴木さんが残った。


 机の上の白いノートの紙面を、二人で見つめた。


 鈴木さんが先に口を開いた。


「桐谷さん」


「うん」


「さっき、ありがとうございました」


 鈴木さんの声は、落ち着きを取り戻していた。


「諏訪さんの前で、私の代わりに『私の指導の問題です』って」


「うん」


「あれ、私、ちょっとびっくりして」


「うん」


「私の責任なのに、桐谷さんが、先に引き受けてくれて」


 僕は息を整えた。


 胸の奥で三つの温度を並べた。白瀬さんの一年目の僕に対するレビューの温度。諏訪さんの二年目のいつかの一行。間宮先輩の構造の本質の渡し方。


「鈴木さん」


「はい」


「責任は、上が引き受ける」


 短く置いた。


「それは、僕が三年前、入社した最初の年に、いまの諏訪さんから受け継いだ言葉です」


 鈴木さんがノートを開いた。


 ペンを構えた。


「諏訪さんは、三年前の夏、僕のコードが原因で最初の障害が起きた時にも、今日と同じ温度で引き受けてくれた。先方の部長に『当社側のコードの問題でもあります』って、自分から。あの一年目の僕は、たぶん、その一行を内心で貯金していた」


「うん」


「その貯金が、今日、僕の口から鈴木さんに対して、自然に出ました」


 ペンの音が鈴木さんのノートの上で動いた。


「桐谷さん、それ」


 鈴木さんが顔を上げた。


「諏訪さんがいつも言われていたこと、なのですよね?」


 短く聞いた。


 僕は頷いた。


「うん」


「諏訪さんから受け継いだ言葉です」


 短く返した。


 鈴木さんはノートに、二行、書いた。


「責任は、上が引き受ける」


「諏訪マネージャー → 桐谷さん → 私」


 ペンを止めた。


 ノートの上の二行を、目で追った。


 「私」という最後の一文字に、鈴木さんの目がかすかに揺れた。


 しかし最後まで、目を伏せなかった。


 


 再発防止策の整理を、二人で半時間、やった。


 ホワイトボードに、鈴木さんがマーカーで書いた。


 ひとつ。

 フィルター系の初期値は、必ずユニットテストで「null」と空文字を分けて確認する。


 ふたつ。

 フィルター系の変更は、本番デプロイ前に、ステージング環境で実際の検索を一度通す。


 みっつ。

 レビュー者は、フィルター系のコードを見るときに、初期値のチェックを必ず明示的にコメントで聞く。


 四つめは、僕が一行、付け足した。


「ペアプロを増やす。鈴木さんが書く重要な箇所は、半時間でいいから、僕か香織さんが横に座る時間を作る」


 四行をホワイトボードに並べてから、鈴木さんがその四行を目で追った。


「桐谷さん」


「うん」


「私、勉強になりました」


 鈴木さんは短く置いた。


 声はもう、午前中の沈んだ声ではなかった。


 元の鈴木さんの声よりも、一段、深くなっていた。


「うん」


 短く返した。


「失敗から学ぼう。責任は、上が引き受ける」


 短く置いた。


 鈴木さんはノートに、もう一行、書いた。


「失敗から学ぶ」


「責任は上が引き受ける」


 二行が、ノートの上にきれいに並んだ。


 


 諏訪さんが半時間後、戻ってきた。


 ホワイトボードの四行を見て、軽く頷いた。


「いいですね、これで」


 諏訪さんは短く置いた。


「ホワイトボードの内容、写真に撮って、チームAの共有ドキュメントに上げてください。今後、似たケースの時にここに戻れるように」


「はい」


 鈴木さんがスマートフォンを取り出した。


 ホワイトボードを撮影した。


 撮影が終わってから、諏訪さんがもう一段、口を開いた。


「鈴木さん」


「はい」


「今日のことは、二ヶ月のインターンの中で、たぶん、いちばん大きな学びになる」


 諏訪さんはそう置いた。


「コードのバグを出した、ということではなく、バグが出た時の引き受けの構造を、桐谷くんが迷わず君の代わりに置いた、その温度のほうが、たぶん残る」


「はい」


「桐谷くんの引き受けは、私が三年前、桐谷くんに渡したものです。それが今日、鈴木さんに流れた」


 諏訪さんは僕のほうを軽く見た。


 僕は諏訪さんの目を見返した。


 諏訪さんはいつもの諏訪さんの目で、しかし最後のところだけ、確かに何かを置いてくれた目だった。


「鈴木さん、二週間半、残りも、いいインターンにしてください」


 諏訪さんはそう短く運んで、会議室を出ていった。


 


 退勤、五時半。


 鈴木さんと二人で、会社のビルの一階のロビーで別れた。


「桐谷さん、今日、本当にありがとうございました」


 鈴木さんは深く頭を下げた。


 頭を下げる動作は、初日の角度よりも、自然に運ばれていた。


「うん、お疲れさま」


「私、今日のこと、観察日記に、ちゃんと書きます」


「観察日記の、たぶん、いちばん大事なページになります」


 鈴木さんはそう置いてから、顔を上げた。


「桐谷さん」


「うん」


「私も、いつか、誰かに渡します」


 短く運んだ。


 声には、さっきよりも確かに芯が一本通っていた。


 僕は鈴木さんの目を見た。


 二十歳のインターン生の目だった。


 しかしその目の中の一行は、これから先の何年かを支える一行になる種類のものだった。


「うん」


 短く返した。


 鈴木さんは小さく手を振って、駅のほうへ歩いていった。


 後ろ姿が、夕日の中でちらりと揺れた。


 歩いていく後ろ姿の中に、二ヶ月のインターンの半分の重さと、今日の引き受けの重さが、ひそかに乗っていた。


 


 桜並木通りを寮の方向へ歩いた。


 八月の第二週の夕暮れ。


 葉桜の影が、夕日の中で深く緑だった。


 歩きながら、諏訪さんの三年前のあの日の温度を胸の内でもう一度、思い返した。


 三年前、入社一年目の僕のコードが原因で、最初の障害が起きた日。


 諏訪さんは先方の川島部長に、「当社側のコードの問題でもあります」と短く運んだ。


 あの一行を、僕はあの日、ノートに書いた。


 書いた上で、心の中でも貯金していた。


 貯金していたものを、今日、鈴木さんのために自分の口で運んだ。


 諏訪さんから受け取って、三年、貯金して、今日、鈴木さんに流した。


 その流れが、たぶん「継承」と呼ばれるものの、いちばん近い形だった。


 


 寮に戻った。


 部屋の机にカバンを置いて、ノートを開いた。


 今日の日付の下に、ペンを置いた。


 少し考えてから、一行目を書いた。


「鈴木さんの最初の本番バグ、フィルターの初期値」


 もう一行。


「諏訪さんの前で、私の指導の問題です、と置いた」


 もう一行。


「再発防止策を四つ、ホワイトボードで一緒に整理」


 もう一行。


 ペンを止めた。


 最後の一行を、丁寧に書いた。


「継承の連鎖、を、僕は始めた」


 書き終えてから、その一行を目で追った。


 継承の連鎖。


 諏訪さんから、僕に。


 僕から、鈴木さんに。


 鈴木さんからは、たぶん、いつか、誰かに。


 今日の午後、鈴木さんが「私も、いつか、誰かに渡します」と置いた、あの一行が、その連鎖の半歩先の入り口だった。


 その入り口のかたちを、胸の奥で確かめた。


 ノートを閉じた。


 窓の外、八月の第二週の夜風が、薄く湿って吹いていた。


 夏は、まだ続く。


 二ヶ月のインターンの残り、二週間半。


 その二週間半の中で、たぶん、もう一段、鈴木さんの中の何かが立ち上がる。


 そしてその立ち上がりは僕の手の中で測れる種類のものではない。鈴木さん自身の手の中で、ゆっくり積もる種類のものだった。


 ノートの脇に、ペンを置いた。


 部屋の明かりを少しだけ落とした。


 明日の朝もまた、桜並木通りを歩く。


 またフロアの島で、香織さんと鈴木さんと白瀬さんと諏訪さんと、言葉を交わす。


 その一日の積み重ねの先で、継承の連鎖は、半歩ずつ、ゆっくりと長くなる。


評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

↑ページトップへ