さくらコードSakura Code
小説/第20話

Novel

第20話 最初のリリース

第20話 最初のリリースのイメージイラスト

Script

Cold Open

シーン1 春の朝と、リリースノート

 三月二十三日。木曜日。

 春分を過ぎて、空が、一段、高くなっていた。朝の駅前の風は、もう、冬のものではなかった。薄手のコート一枚で、桜子は、息苦しさを感じずに、オフィスまで歩けた。

 駅前の街路樹のところどころに、開きかけの桜が、もう、薄いピンクで、灯り始めている。ちょうど一年前、入社の朝に、桜子が見上げたのと、ほぼ同じ場所、ほぼ同じ高さの枝が、いま、また、ほぼ同じ色を、もう一度、空に持ち上げていた。

 九時少し前、桜子は、自分の席で、顧客向けリリースノートの最終ドラフトを、鈴木に送った。

To: suzuki / yamashita / sales
From: mochizuki
Subject: [確認] 2023-03-23 サクラサポート リリースノート (ドラフト)

お疲れさまです、望月です。
本日14:00予定のリリース、顧客向けノートのドラフトです。

## 今日のリリース(予定)
- 未読件数バッジに、データ鮮度の注記を表示 (#217)
- お問い合わせ詳細のフォールバック挙動の正式化 (#218)
- 外部依存サービスの状態確認手順 Runbook 公開 (#219)
- お問い合わせ詳細のレスポンシブ崩れ修正 (#220)
- ホーム画面のお知らせ文言更新 (#221)

## 年度末リリースノートに併記する先行反映分
- 監視ダッシュボードの境界プロレート集計 (#258, 2/7 反映済み)

## ご利用の皆さまへ
- 未読件数の表示は、最大10秒の過去スナップショットであることを明記しました
- お問い合わせ詳細が開けない場合、顧客企業情報欄が空の状態で表示されるようになりました
  (以前は、画面全体が開けないことがありました)
- 画面構成は、モバイル幅のレイアウトが整いました

よろしくお願いします

 桜子は、送信ボタンを押してから、短く、息を整えた。

 今日が、秋の終わりに鈴木から託された、小リリース束の、最終日だった。


Part A

シーン2 リリース当日の小さな緊張

 十一時。

 小会議室で、遥、翔太、早瀬、桜子の四人が、この冬のあいだに、みんなで書き足してきたリリースチェックリストを、もう一度、上から緑にしていった。

 AC全件、レビューApproved。CI全件、緑。ステージング検証、各Issueの受け入れ条件、通しで確認済。ロールバックは、各Issueごとに手順を再確認。停止条件、顧客説明、営業コミットメント、再発防止の成立度。ひとつずつ、ひとつずつ、緑にチェックが入る。

 早瀬が、

「望月さん、このチェックリスト、よくできてますね」

 穏やかに言った。

「いえ、ほとんどが、先輩たちから教わったものを、並べただけで」

 翔太が、ふっと笑って、

「でも、並べた人は、望月さんだから」

 桜子は、少しだけ目線を、ペン先に落としてから、はい、と返した。

 遥が、

「今日は、鈴木さんが押す。わたしたちは、静かに見ている日」

 と、整理した。

 十一時半、四人は会議室を出た。


シーン3 ランチの噂話

 十二時半。

 会社の近くの定食屋で、桜子、翔太、早瀬、遥の四人で、ランチを取った。いつもなら桜子と翔太だけで短く済ませるが、今日はリリースの前後で気持ちを落ち着けたくて、遥と早瀬も合流した。

 定食屋のテレビでは、午後のニュースが、音量を絞って流れている。世界情勢、為替、どこかの新製品発表会。桜子は、画面に映る英語の会場の様子を、ちらっと見ていた。

 翔太が、ふと、言った。

「そういえば、最近、海外で、ChatPort ってのが、開発者の間で話題、らしいですよ」

「ChatPort?」

 桜子が、箸を止めて、聞き返した。

「うん。チャット型のAIみたいなやつ。単に雑談が上手いだけじゃなくて、コードも、書くらしい。もっとも、本物を触ったって人は、僕の知り合いには、まだ、いないんだけど」

 遥が、味噌汁を一口飲んで、

「ふうん」

 と、ひと息、置いた。

 その「ふうん」は、桜子がこの一年で何度も聞いてきた遥の相槌の中で、少しだけ、いつもと、色が違った。関心半分、警戒半分、判断はまだ、という温度の相槌。

「どんな名前か、もう一度、教えてくれる?」

 と、桜子は、翔太に聞いた。

「ChatPort。チャット、と、ポート。英語のつづり、たぶん、ChatPort、で合ってるはず」

 桜子は、メモ帳のランチ用の余白に、四文字を、そっと、書いた。

ChatPort

 早瀬は、

「私のほうでも、最近、Twitterで、スクリーンショットを、よく見かけます。コードの断片に、もっともらしい説明がついていて、すごく、流暢なんですよね」

「流暢、ね」

 遥が、もう一度、短く、言った。

 桜子は、箸を持ち直しながら、心の中で、

 (流暢、とは、合っている、とは、違う)

 と、考えた。けれど、そのことは、口には出さなかった。


Part B

シーン4 十四時のデプロイ

 午後、十四時ちょうど。

 小会議室に、鈴木、遥、翔太、早瀬、桜子、そして、オンラインで営業の担当者、計六人が、静かに集まった。

 Meet 越しに、営業から、

「顧客側からも、特段、延期要請は、入ってません。お願いします」

 と短い確認が来た。

 鈴木が、うなずいて、GitHub の Merge ボタンに、カーソルを合わせた。

 桜子は、自分の心臓が、思ったより、静かに鳴っていることに、気づいた。

 (今日のは、鈴木さんが押す)

 鈴木が、押した。バーが、紫色に染まる。Merged。

 CIが走り始める。ビルド、デプロイ、ヘルスチェック。数分の沈黙。

 やがて、本番の管理画面で、未読件数バッジの右下に、データ鮮度の注記が、薄いグレーの一行で、表示され始めた。桜子が、#217 で書いた、十秒のスナップショットの一文。先月から、すでに、正しい位置で描画を続けてきた境界プロレート集計の折れ線は、今日の束のあとも、変わらず、同じ場所を、刻んでいた。

 十四時八分、鈴木が、小さくうなずいた。

「完了。おつかれ」

 小会議室の空気が、軽く、ゆるんだ。翔太が、桜子に向かって、軽く、手を挙げる。桜子は、同じく、手を挙げて返した。


シーン5 高木さんからのメール

 夕方、十七時前。

 桜子のメールボックスに、千葉ハートフルケアの高木理恵からのメールが、届いた。

From: takagi (千葉ハートフルケア)
To: suzuki / mochizuki
Subject: 本日のリリースについて

鈴木様、望月様

お疲れさまです。高木です。

本日14:00 のリリース、こちらの現場でも、特段の違和感なく使えております。
先に反映いただいた監視まわりの集計修正(#258)も、もう、すっかり、現場で、馴染んでおります。

「未読件数の表示は、最大10秒の過去スナップショット」の注記、
大滝からも「新人さんに優しい画面になった」と、喜んでおりました。

お問い合わせ詳細の、顧客企業情報欄が空での表示も、
業務側で「あれ、この会社、登録まだだっけ」と一瞬、迷うことは
ありますが、詳細自体が開けないよりは、だいぶ、助かります。
今後の改善のタネとして、お知らせまで。

いつも、ありがとうございます。

高木

 桜子は、そのメールを、二度、読んだ。

 高木さんの「あれ、この会社、登録まだだっけ」の、業務人らしい声が、頭の中で、一度、流れた。秋の終わりに訪ねた、あのコールセンターの、電話の音、付箋の色、大滝の手元。あの日の記憶が、少し、鮮度の高いまま、よみがえった。

 (届いた)

 桜子は、ディスプレイの右下の、黄色い付箋に、視線を、短く、やった。

 付箋には、桜子が夜、書き加えた一行が、今も、そっと、残っていた。

信じすぎない、を、信じる。

 高木さんのメールの「今後の改善のタネとして」は、次の束の最初のIssueになるだろう、と桜子は、直感した。


Part C

シーン6 ふりかえりの会

春の午後の光が差し込む会議室で、桜子がほぼ埋まったメモ帳を両手で開き、机を囲む同僚たちに一年のふりかえりを読み上げている

 十七時。

 会議室「桜」で、この一年間の新人二人について、鈴木主催の、短いふりかえりが開かれた。参加者は、鈴木、遥、翔太、早瀬、桜子。

 鈴木が、口火を切った。

「新人が入って、一年。今日の束で、一つ区切り。桜子さん、翔太くん、それぞれの一年、短く、お願いします」

 翔太から、話した。翔太は、自分のノートを開いて、

「最初、READMEを読まずに、Homebrewで環境立てて、桜子さんを置いて走りました。いま思うと、走る方向は、合ってるときと、そうじゃないときが、半々くらいありました。最近は、桜子さんの並べ方を、自分の手元に、ちょこちょこ、写させてもらってます。#261 も、ちゃんと、やります」

 桜子は、少しだけ、頬が熱くなって、

 (中村くん、人前で、そういうこと、言うんだ)

 と、思った。

 続いて、桜子の番だった。桜子は、自分のメモ帳を開いた。桜子の「新人日記」のページは、一年で、もう、ほぼ全部、埋まっている。残っているのは、最後の見開きの、半ページだけだった。

 声に出して読むのは、三つだけにしよう、と、決めていた。

「ひとつめ、ログを、見よう」

 入社初日の朝、遥がまっさきに教えてくれた、一年でいちばん最初の一行。

「ふたつめ、レビューは、否定ではなく、会話」

 一行のコードに、十四件のコメントがついた、あの春の日。無言で直さないことと、コミットメッセージが未来の誰かへの手紙であることを、桜子は、同じ一日で、覚えた。

「みっつめ、再委譲を、判断する」

年末、いったん引き受けた仕事を、持ち主へ返したり、早瀬へ任せ直したりした、あの夕方。リーダーは、任せる人ではなく、任せ直せる人だ、と桜子は、そのページの端に、書いた。

 桜子は、そこで、いったん、ページから、目を上げた。

「あとは、たくさん、あります。でも、たぶん、この三つが、いちばん、太く、走っていました」

 会議室が、しんとした。遥が、紙コップを、机のはしで、ほんの少しだけ、回した。翔太が、ノートを、いったん、伏せた。早瀬が、軽く、目を細めた。鈴木は、何も言わずに、桜子の目を、ひとつ、見ていた。

 桜子は、ページを、そっと、めくった。声には出さずに、日付のある一行が、目の端を、順に、通り過ぎていく。

2022/05/25  赤いテストは、責めるためじゃなく、守るためにあった
2022/06/13  触る前に、守る
2022/07/04  戻し方を、コードと一緒に書く
2022/09/15  厳しさは、信用しているから、出る
2022/10/14  記録は、何もしていない、ことじゃ、なかった
2022/11/15  信じすぎない、を、信じる
2022/12/28  リーダーは、再委譲を、判断できる人
2023/01/18  提案の質と、決裁の位置は、別
2023/02/07  きょう、わたしの書いたコードが、サクラサポートで、動いた

 桜子の指先が、二月七日の日付を、そっと、なぞる。

 #258 が、本番に、載った日。

 目を上げると、会議室の窓から、朝より、少しだけ傾いた春の光が、机の縁を、そっとなぞっていた。遥の紙コップの底、翔太のノートの角、鈴木の手元のクリップボード、早瀬の手帳の背表紙。それぞれの手元に、この一年の、細かい癖と時間の跡が、薄く、貼りついていた。

 桜子は、もうひとつだけ、と思って、ページを、繰った。夏の終わりに書いた、「わたしの強み(仮)」のページ。

「……ここに、『仮』って、書いたんですけど」

「うん」

 遥が、短く、うなずいた。

「きょう、外していいですか」

 桜子は、ペン先で、「(仮)」の丸括弧と三文字に、そっと、線を引いた。

わたしの強み ~~(仮)~~
- 観察
- 段階分割
- 計測
- 並べ方
- 書き切る粘り

 遥が、

「うん」

 と、もう一度、うなずいた。

 鈴木が、穏やかに、

「次の一年、始めよう」

 と、言った。


Ending

シーン7 夜の坂道と、『ChatPort』の四文字

 十九時すぎ。

 桜子は、入社した日と同じ、駅までの坂道を、逆向きに、歩いて帰っていた。

 駅前の街路樹には、朝より、もう少しだけ、咲きすすんだ桜が、薄いピンクで、灯っていた。一年前と、同じ場所、同じ高さ、同じ色で、もう一度、桜が、咲いていた。

 桜子は、坂道のなかほどで、ふっと、立ち止まった。

 ちょうど一年前の朝、入社式の前日に、桜子は、この同じ枝の下で、しばらく、空を見上げていた。実家から運んできた、桜色のキーホルダーを、鞄の持ち手に結びつけたばかりだった。あの日、桜の下で、桜子は、自分の名前と、自分の四月一日の朝と、これから始まる東京の一年を、まだ、ひとつも、自分のものにできていなかった。

 いまの桜子は、同じ枝の下で、同じ色を、見上げている。

 今日の桜子は、その色のなかに、#103 のRunbookも、#125 のフォールバックも、#258 のプロレート集計も、testuserageisvalid18 の九行も、十四件のレビューコメントも、千葉ハートフルケアの大滝さんの黄色い付箋も、ぜんぶ、薄く、層になって、混ざっているのを、知っていた。

 一年前の桜は、まだ何も知らない桜子の頭の上で、ただ、咲いていた。

 今日の桜は、そのぜんぶを知っている桜子の頭の上で、もう一度、同じ色で、咲いていた。

 (同じ場所で、同じ色で、咲くんだな)

 桜子は、しばらく、その薄いピンクを、見上げていた。

 一年前、桜子は、この坂道を、登りながら、「みんな、もう仕事してる」と思って、胸を縮めていた。

 今日の桜子は、同じ坂道を、降りながら、頭の中で、リリースノートに併記した #258 のダッシュボードの折れ線を、もう一度、なぞっていた。

 鞄の持ち手で、桜色のキーホルダーが、揺れた。一年のあいだ、指先で、何度も、握りしめた。今日は、握らなかった。ただ、揺れている。

 駅の手前、桜子は、スマホを取り出して、ランチで翔太が言っていた四文字を、検索窓に、打ち込んだ。

ChatPort

 検索結果の上位には、英語の記事がずらりと並んでいた。海外のテックメディア、SNSのスクリーンショット、まだ日本語の解説記事は、ほとんど、なかった。

 桜子は、記事のひとつを、ざっと、上から下まで、眺めた。「エンジニアの仕事を変えるかもしれない」「数時間でアプリが書ける」「コードレビューが不要になる」。景気のいい見出しが、並んでいた。

 (「コードレビューが不要」って)

 桜子は、少しだけ、眉を寄せた。あの日、十四件のコメントを、ぜんぶ、読み切ったこと。三度の差し戻しの、あの夜。翔太との二案併記の、あの午後。どれも、不要には、ならない気がした。

 けれど、同時に、翔太の言っていた「コードも、書くらしい」が、どれほどの速さなのか、自分の目で見ないと、わからない、とも、思った。

 桜子は、スマホを閉じた。

 歩きながら、頭の中で、ランチの席の四人の温度を、もう一度、整理した。

 翔太の「コードも、書くらしい」――新しい速度への、率直な期待。

 早瀬の「すごく、流暢なんですよね」――技術への、職人としての観察。

 遥の「ふうん」――関心半分、警戒半分、判断はまだ、の保留。

 桜子の「流暢、とは、合っている、とは、違う」――半年前の、自分のテストへの抵抗を、くぐった人の、内側の温度。

 四人四様の温度が、ChatPort の四文字の上で、薄く、重ね合わさっている。次の一年が始まるとき、たぶん、この温度差ごと、四人で、新しい風に、立ち向かうことになるのだろう、と桜子は、漠然と、感じた。

 駅前のカフェに寄って、メモ帳を開いた。

2023/03/23 新人日記

- 年度末リリース、本番反映 (#217〜#221)
- #258 は先月反映済み、年度末リリースノートに併記
- 千葉ハートフルケア 高木さん: 「特段の違和感なく使えています」
- 大滝さん: 「新人さんに優しい画面になった」
- ふりかえりの会で、代表の三つを、声に出した
  - ログを、見よう
  - レビューは、会話
  - 再委譲を、判断する
- 「わたしの強み(仮)」の、(仮) を、外した

新しいこと:
- `ChatPort` という名前の、海外発のチャット型AIが、話題らしい
- 翔太くん: 「コードも、書くらしい」
- 山下さん: 「ふうん」(一拍の保留)
- 早瀬さん: 「流暢、なんですよね」
- わたしの中: 流暢は、合っている、とは、違う

次の季節のために:
- ひとまず、名前だけ、覚えておく
- この一年で身につけた基礎は、たぶん、次でも使う
- 新しい道具が来ても、ログを見る、前後を読む、未来の誰かへ書く、は、変わらない気がする

 ペンを置いて、桜子は、カップを、両手で包んだ。

 窓の外、街灯が、いくつか、ゆっくりと灯り始めていた。

 一年前、桜子は、赤い画面の前で、泣きそうになっていた。今日の桜子は、少しだけ、違う。

 明日から、また、別の一日が始まる。次に来る風の名前は、もう、覚えた。その風が、桜子の机の画面を、どう、変えていくのかは、まだ、誰にも、わからない。

 けれど、この一年の終わりに、桜子は、こう思った。

 (わたしは、たぶん、その風の中でも、ログを、見にいける)

 桜子は、メモ帳を閉じて、カフェを出た。

 夜の坂道を、ゆっくりと、駅に向かって、歩いた。一年前と同じ場所で、同じ色の桜が、また、咲いていた。けれど、桜子は、もう、一年前の桜子では、なくて、それでも、桜子は、まだ、桜子のままだった。