
第一話)乱世のプロジェクト ―荀彧、コールセンターに立つ
あらすじ
コールセンター刷新プロジェクトのPMOリーダー・如月は、外部連携キーの設計不備により十万件超の契約データの紐付けが断絶する大炎上に直面する。現場は怒り、経営は詰め寄り、ベンダーは「仕様です」の一言で責任を切り離す。板挟みの中、かつての同僚で軍師のような助言者・郡司から「まず名前を取り戻せ」と告げられた如月は、正しさを証明することではなく、正しさを人のために役立てる道を選んでいく。荀彧が乱世で貫いた理想と現実の狭間に、自らの姿を重ねながら・・・。
仕事とは、乱世を生き抜く戦場そのものだった。
会議室のディスプレイに映し出された数字を見て、如月(きさらぎ)は自分の手のひらが冷たくなっていくのを感じた。
「契約紐付けエラー、十万二千三百十二件」
プロジェクターの光の中で、その数字だけが妙に鮮明だった。まわりの空気が、数字よりも先に凍りついている。
「……もう一度、説明してもらえますか」
黒田部長の声は低く、静かだった。だが如月は、この静かさが一番怖いということを、この半年で学んでいた。黒田は声を荒らげない。荒らげる必要がないほど、追い詰めるのが上手いからだ。
「サンドボックスでの本番データ再構築の際に、外部の契約管理システムとの連携キーとして使用していたSalesforce Idが、再作成によってすべて振り直されました。結果として、既存の契約データとの紐付けが取れなくなっています」
如月は、できるだけ平静な声でそう言った。だが、自分の言葉が誰の耳にも届いていないことも、同時にわかっていた。
「それは、要するに」黒田が言葉を選ぶように、ゆっくりと続けた。「十万件の契約が、どこの誰のものか、わからなくなったということですか」
「……はい」
会議室のどこかで、小さく息を吸う音がした。
「なぜ、今になって分かったんですか」
声を上げたのは、コールセンター運用部門の統括、氷室だった。オペレーターたちを長年束ねてきた彼女の目には、隠しきれない怒りがあった。
「詳細設計のレビュー時点で、外部連携のキー設計については確認をしていました。ですが」
如月は一瞬、言葉を止めた。ベンダー側のテーブルに視線を向ける。
「ベンダー側の設計では、外部システムとの連携キーとして、レコード作成時に自動付与されるSalesforce Idを直接使用する仕様になっていました。サンドボックスの再構築や、データの作り直しが発生した場合、このIdは保持されません」
「それは、詳細設計のレビュー資料には、明記されていましたよね」
ベンダー側のプロジェクトマネージャー、東海林(とうかいりん)が、初めて口を開いた。手元の資料を、まるで免罪符のようにそっと持ち上げる。
「仕様書の九ページ、連携キー設計の項目に記載の通りです。むしろ、この方式は御社の現場担当者からの要望を反映したものです。開発スピードを優先してほしいという要望があったため、外部ID項目を新設する工数を省き、既存のIdを使う設計にしています」
「現場が、そんな要望を出したんですか」
氷室が、鋭く東海林を見た。
「議事録に残っています。昨年10月の定例会で、御社側から『できるだけシンプルに、早く』というご要望をいただきました。それを踏まえた、こちらとしては正当な設計判断です」
東海林の口調に、詫びる色は一片もなかった。ただ、事実を述べているだけだという顔。それが、如月には一番堪えた。
仕様です。
その一言が、まるで免罪の呪文のように、会議室の空気を凍らせていく。誰も悪くない。誰も、悪くないことにされていく。
「では」黒田が静かに言った。「この十万二千三百十二件、いつまでに復旧できますか」
「現在、影響範囲を特定するための調査を進めています」
「特定できているんですか、その十万件が」
「……それが」
如月は、もう一つの事実を口にしなければならないことに気づいていた。今朝方、自分のPCの画面で見た、あの空白のレポート画面を思い出す。
「契約名を表示する項目が、ロングテキストエリアとして設計されているため、標準のレポート機能では一覧に表示することができません。現在、レコードIDだけでは、どの契約が、どの顧客のものか、現場での判別が困難な状態です」
会議室が、しんと静まった。
「名前も、わからないんですか」
氷室の声が、初めて震えていた。
「毎日、何十件も契約の話をお客様としているのに。契約書の名前も出せないシステムを、私たちは今日から使えって言われてるんですか」
如月は、何も言えなかった。正しい設計を、正しい手順で進めてきたはずだった。データの整合性を守るための提案も、幾度となくしてきた。だが、その正しさは今、目の前の十万二千三百十二件という数字の前で、何の力も持っていない。
届かない。
かつて、これと似た感覚を味わったことがあった。理想を語れば語るほど、人が離れていく感覚。正しさを説けば説くほど、現場から遠ざかっていく感覚。
会議室を出た如月のスマートフォンに、一件の通知が届いていた。
差出人は、郡司(ぐんじ)。
「聞いたぞ。十万二千三百十二件、だろ」
どうして、もう知っているのか。如月がその文面を見つめている間に、続けてメッセージが届いた。
「今、動くな。まだ、動く時じゃない」
如月は、その文面を三度読み返した。動くな、というのがどういう意味なのか、今の如月には分からなかった。十万件という数字を前にして、動かないという選択肢があること自体が、信じられなかった。
思い返せば、あの警告は半年前にあった。
詳細設計のレビュー会議で、如月は一度だけ、東海林の設計に異を唱えたことがある。
「連携キーに、外部システム側の識別子を持つ専用フィールドを新設した方がいいと思います。Salesforce Idは、システムの都合で変わることがあります。サンドボックスの再構築、大量データの移行、組織統合……可能性は決して低くありません」
東海林は、笑って答えた。
「理論上はそうですね。ですが、御社の予算とスケジュールでは、そこまでの工数は見込めません。それに、そんな大規模な再構築、この規模のプロジェクトでは滅多に起きませんよ」
その場にいた黒田も、頷いた。
「如月さんの言うことは分かる。でも、リスクの話ばかりしていたら、いつまでも前に進めない。今回は、東海林さんの提案でいこう」
如月は、それ以上は言わなかった。正しいと信じることを、もう一度声に出す勇気が、その時はなかった。あるいは、声に出したところで、届かないと分かっていたのかもしれない。
理想を語れば、現実主義者に「甘い」と言われる。
現実を優先すれば、いつか理想の方が正しかったと分かる日が来る。
その両方を、如月はもう何度も味わってきた。
郡司と会ったのは、その日の夜だった。会社近くの、灯りの少ない喫茶店。かつて同じプロジェクトで肩を並べていた男は、今はフリーの戦略コンサルタントとして、複数の企業を渡り歩いている。
「十万件、か」
郡司は、コーヒーを一口飲んで、それだけ言った。
「他人事みたいに言うんですね」
「他人事だからな、俺には」
郡司は笑った。皮肉っぽい笑い方だが、そこに悪意はない。ただ、如月よりも一歩引いた場所から物事を見ている――その距離感が、いつも如月を苛立たせ、同時に救ってきた。
「なあ、如月。お前が今、一番やりたいことは何だ」
「原因を特定して、復旧計画を立てることです」
「違う。お前が今、一番やりたいのは、自分の設計が正しかったことを証明することだろう」
如月は、何も言えなかった。
「東海林は『仕様です』の一言で逃げた。黒田も氷室も、お前を問い詰めた。誰もお前の話をちゃんと聞いていない。だから、お前は今、証明したいんだ。半年前、自分が正しかったってことを」
「……それが、いけないことですか」
「いけなくはない。だが、遅い」
郡司は、カップを置いた。
「いいか。今このタイミングで、お前が『半年前に言った通りだ』って正しさを持ち出したら、何が起きる? 黒田は面子を潰される。東海林は保身に走る。氷室の現場は、正しさなんて聞く余裕もない。お前の『正しさ』は、今この瞬間、誰も救わない」
「じゃあ、どうすればいいんですか」
「まず、名前を取り戻すことだ」
「……名前?」
「契約の名前だよ。レポートに出せないなら、出せるようにすればいい。それも、今この瞬間、一番効くところから」
郡司は、テーブルの上に指で図を描くように話し始めた。
「ロングテキストエリアの値を、レポートに出せる項目にコピーする。数式でも、Flowでも、バッチでもいい。手段はどうでもいい。とにかく、氷室の現場が、契約を『名前で』呼べるようにする。それを、今日中にやれ」
「復旧計画より先に、ですか」
「復旧計画は、正しさの話だ。名前を取り戻すのは、人の心の話だ。乱世で最初に死ぬのは、名前を失った者からなんだよ」
その言葉に、如月は不意を突かれた。
名前を失った者から、死ぬ。
三国志の中で、幾人もの武将や軍師が、歴史の記述からさえ名を失っていったことを思い出す。荀彧もまた、最後には曹操の理想と自分の理想がすれ違い、静かに歴史の記述の奥へと退いていった人物だった。だが、荀彧が最後まで手放さなかったものが一つある。それは、目の前の「人」を、記号ではなく名前で見る姿勢だった。
その夜、如月は会社に戻った。オフィスにはまだ数人が残っていたが、氷室の姿はなかった。
如月はPCを開き、開発チームのSlackチャンネルに一つの依頼を投げた。
「契約名(ロングテキストエリア)の内容を、レポートで表示できる新規のテキスト項目にコピーする機能を、今夜中に作れますか。件数が多いので、バッチでの一括処理も併せて検討したいです」
返信は早かった。エンジニアの一人が「やってみます」と即答してくれた。理由も、正しさも、要らなかった。ただ、「今すぐ、誰かの助けになる」という一点だけが、如月をそのまま動かしていた。
深夜零時を過ぎたころ、Apexは完成し、バッチ処理が動き始めた。翌朝には、十万二千三百十二件のうち、契約名だけは、少なくともレポート上で「見える」状態になっているはずだった。
翌朝、如月は氷室のデスクに向かった。
「昨夜のうちに、契約名だけは一覧で見られるようにしました。まだ、外部システムとの紐付けの復旧はできていません。ですが、少なくとも『どの契約か』は、名前で確認できます」
氷室は、しばらく黙ってレポートの画面を見ていた。
「……ありがとうございます」
それだけだった。だが、前日の会議室での怒りの色は、そこにはなかった。
「正直に言うと」氷室が、少し声を落として続けた。「私は、如月さんのことを、データとシステムの人だと思っていました。私たちオペレーターが、毎日どんな気持ちでお客様の名前を呼んでいるか、分かってもらえてないと思っていました」
「……申し訳ありませんでした」
「いえ。今回、名前が見えるようになったのを見て、少し見方が変わりました。如月さんも、名前を大事にする人なんだって」
如月は、何と答えればいいか分からなかった。ただ、半年前には届かなかったはずの何かが、今、確かに届いたという感覚があった。
午後、如月は黒田に、復旧計画の第一報を上げた。
「外部システム側にも協力を依頼し、契約番号や取引先名など複数の項目を組み合わせた突合作業を進めています。完全な自動復旧は難しいですが、優先度の高い契約から、二週間で八割の復旧を目指します」
「二週間、か」黒田は、資料に目を落としたまま言った。「東海林さんのところは?」
「ベンダー側にも、突合作業の一部を負担してもらう交渉を進めています。『仕様通り』という話は、もう終わったことにします。今は、直すことだけに集中したいので」
黒田は、如月の顔を、珍しくまっすぐに見た。
「昨日は、ずいぶん詰めてしまったな」
「いえ」
「半年前、お前は確か、この設計に反対していたな」
如月は、少し驚いた。黒田が、それを覚えていたことに。
「はい。ですが、今それを言っても、誰も救われません。今は、復旧が先です」
黒田は、小さく頷いた。
「そういう判断ができるところが、お前の強さなんだろうな。俺には、たぶんできない」
それは、初めて聞く、黒田からの言葉だった。
その週の終わり、如月は東海林との打ち合わせを設定した。会議室ではなく、あえて小さなミーティングブースを選んだ。人数を減らし、記録も最小限にする。郡司の助言の一つだった。
「証明する場じゃなく、決める場にしろ。人を大勢入れるほど、相手は保身に回る」
「今日は、責任の話をするつもりはありません」
如月は、席に着くとすぐにそう切り出した。東海林は、少し意外そうな顔をした。
「先週の会議では、仕様通りだと明言されていました。それについて、私はもう議論しません。ただ、今、突合作業のために、契約番号・取引先名・契約締結日といった複数項目でのマッチングを進めています。この作業量は、当初の契約範囲を超えています」
「……それは、まあ、そうですね」
「御社の技術者の方に、この突合作業のロジック部分だけ、二週間、優先的にアサインしていただけないでしょうか。費用については、追加の変更依頼として、正式に発行します」
東海林は、意外にも早く頷いた。
「分かりました。……正直に言うと、あの会議のあと、社内でも突合作業への協力は検討していました。ただ、御社側から責任の所在を問われる空気だったので、こちらから申し出るタイミングを逃していました」
「今回のことで、御社の設計判断が正しかったとは、私は思っていません。ですが、それを今、蒸し返すつもりもありません。直すべきものを、一緒に直したいだけです」
東海林は、少しの間、如月の顔を見ていた。
「……如月さんは、変わりましたね。半年前は、もっと、正しさを主張するタイプだと思っていました」
「今も、正しさは大事だと思っています。ただ、正しさを主張することと、正しさを役立てることは、違うんだと知りました」
東海林は、小さく笑った。今度は、免罪を求める笑いではなかった。
「分かりました。うちのエンジニアを二名、突合作業に専任でアサインします。来週から動けます」
交渉は、それだけだった。誰かを断罪する場面もなく、誰かが頭を下げる場面もなかった。ただ、必要なことが、必要な形で進み始めた。それだけのことだった。
突合作業が動き始めてからの二週間は、如月にとって、これまでのプロジェクトの中でも、最も静かな二週間だった。
毎朝、進捗確認のミーティングを短く行い、契約番号・取引先名・締結日の三項目からのマッチング精度を、一件ずつ地道に上げていく。オペレーターの氷室も、現場の知見を惜しまずに提供してくれた。
「この取引先、名前の表記が二パターンあるんです。カタカナと、アルファベット表記」
「この時期の契約は、契約更新のタイミングで担当者が変わっていることが多いので、注意してください」
データだけでは分からないことを、現場の人間が知っていた。逆に、如月たちが持っているデータの構造は、現場の人間には見えていなかった。両方が揃って、初めて一件ずつの契約が「取り戻されて」いった。
東海林のチームも、当初の淡々とした態度から一転、如月のチームと同じ熱量で作業に加わるようになっていた。誰かが指示したからではなく、目の前で少しずつ数字が良くなっていくのを見て、動かずにはいられなくなったのだろう。
乱世の中でも、人は、目の前の小さな前進には、無関心ではいられない。
二週間後、復旧作業は八割を超えたところで、一つの節目を迎えた。完全な解決には、まだ時間がかかる。東海林のベンダーとの契約見直しも、これから本格化する。乱世は、まだ終わっていない。
その夜、如月は郡司と、また同じ喫茶店にいた。
「どうだ、乱世は」
郡司が、いつもの皮肉っぽい笑みで聞いた。
「まだ、終わっていません」
「終わるわけないだろう。乱世ってのは、そういうもんだ」
郡司は、コーヒーを一口飲んで、続けた。
「荀彧は、最後まで理想と現実の間で苦しんだ。曹操に協力しながら、曹操が皇帝の座に近づくことには最後まで反対した。理想を通せば、曹操に切り捨てられる。現実に従えば、自分の理想を裏切る。どちらを選んでも、何かを失う。それでも、荀彧は最後まで、自分の名前で、自分の立場を貫いた」
「……それで、報われたんですか」
「報われたかどうかは、歴史が決めることじゃない。本人が、自分がどう生きたかを知っているかどうかだけの話だ」
如月は、その言葉を、しばらく黙って受け止めた。
「乱世こそ、人が試されるんですね」
「そうだ。正しさだけでは、乱世は生き抜けない。正しさに、名前を与えられる人間だけが、乱世を生き抜ける」
窓の外は、もう夜が深かった。だが、如月の中には、半年前には持てなかった何かが、確かにつ増えていた。
それは、正しさを証明することではなく、正しさを、誰かの名前のために使うということ。
乱世は、まだ終わらない。だが、如月はもう、以前のようには、一人で戦おうとはしなかった。
<次回の話し>