第一章:静かに始まる歪み
- 不動産管理システムのリプレイス(ベンダー交換)
- 開発スタイルは王道のウォーターフォール
- チーム規模は100人弱
このプロジェクトに参画したとき、私はただの修復作業だけだと思っていた。
「大変そうだけど、少し歯ごたえのある案件かもしれないな」
──そんな軽口を叩いた記憶すらある。
実際、当初の役割はそこまで重くなかった。
基本的にドキュメントの不整合をリバースエンジニアリングで潰す“修復屋”のような立場。
エンドユーザーとの接点もない。二次請けSEとして、こつこつと矛盾を潰していくだけの日々。
淡々と矛盾点を整理して報告していると、
なぜか私もリーダー層のMTGに参加するようになっていた。
しかし、私は知らなかった。
その“矛盾”が、静かに私を侵食するものであるということを。
そして、事件は唐突にやってきた。
「機能単位で性能テストがしたい。サーバーはないから、ローカルでいい。1.5ヶ月でやって」
頭の中に、ぬるい警報が鳴った。
嫌な予感。とても嫌な、いやな、よかん──
テストコードもなければ、正しいER図すら存在しない。
リレーション? 作ってる暇はない。そもそも設計図が矛盾している。
──それでもやるというのか?
第二章:予兆と崩壊、沈んでいく“チーム”
テスト要件のデータ量は“5年分”。
だが、具体的な件数も、データ構造も曖昧だった。
とりあえず、どの程度のテストを求めているのか要件を確認してみる。
するとクライアントからの返答は、
「各テーブルに5年分を入れてくれればいい。厳密でなくて良い」
「リレーションは考慮なしで5年相当のデータ量を各テーブルに入れて、各画面全アクションとバッチの実行時間をローカル環境で確認できれば良い」
「メンバーは製造工程担当した人を最大で10人使って良い」
──これは、罠か?
それとも、ただの甘さか?
この条件であれば、私の采配がアホでない限りは余裕で終わる。
そして、私は言ってしまう。
「わかりました。やります。」
「ただし、テスト終わったらPJ抜けてしまうので不具合対応は他の人建てて下さい。」
ここから地獄の火蓋が落ちていく。。。
ひとまず、私はテスト方針・WBS作成・データ定義を3日で片付けた。
しかし、その翌日、チームの歯車が突然外れた。
ナレッジを持つメンバーが、全員、別アプリの火消しに連れていかれたのだ。
とりあえず、足りないので他のチームからかき集めてもらう。。。
そして、私の手元に残ったのは──
- 当月参画のベテラン2名(PJ知識ゼロ)
- スキル不明のJrSE(PJ知識ゼロ)
- PJにいたことはあるが新卒のプロパー4名
「……また、これか」
そう呟くしかなかった。
そう、これはよくある崩壊だ。
第三章:Oracleとの戦い──対応できない新卒達
私は覚悟を決めた。
恩のあるPMだったから、なおさらだ。
“やれることを、やれるだけ、やってみる”
まずは人員のスキルに合わせた最適配置を始めた。
• 新卒:簡単な画面のみ
• ベテラン:難易度MAX画面から着手して仕様を逆算
• JrSE:……新卒より少し難しめの画面(ベテランSEに片手間で様子見てもらう)
後半にはナレッジを持っているSE6名を追加予定。
この構成なら、ギリギリ乗り切れる。
データ投入のフェーズが始まった。
が、新卒勢は手順書すら読めない。
やらせても1時間後に止まっている...
仕方がないので、私とベテラン2名で肩代わり。
もはや、何のための7人チームなのか。
そして、次にやってきたのは、
Oracleシーケンス地獄だった。
新規登録画面はすべて、エラー。
別働隊のインフラ担当者が作ったテスト用のスキーマと、アプリケーションが食い違っている。
私はテンプレPLSQLを作り、エラー対応手順を整備した。
が、新卒では対応できない。リアルタイムで私がすべて手動修正する羽目になった。
修正テーブル数、100を超える──
第四章:焼かれていく脳──リミットが近づく残業時間
後半戦になっても、JrSEは成長しない。
コードを読まない。見ない。
見えないのだ。たぶん。
ベテランにも手を焼かせ、完全にマイナス影響を与えている。
私は静かに決断する。
「この人は、戦力になりません。来週からいなくて大丈夫です」
私は鬼になった。感情を捨てた。
それでもまだ、プロジェクトは続く。
そして、新たな問題が起きた...
ナレッジを持つメンバーが予定通り戻らない。
私は脳内で、3つのシナリオを同時に走らせ続けた。
• 誰が戻るのか
• どのパターンなら完遂できるのか
• 誰をいつ動かすのか
毎日毎日、脳が熱い。焼けるようだった。
その中で、希望の芽もあった。
ベテランの1人 Hさんが、1ヶ月でPJのコア仕様を把握したのだ。
彼なら、私の代わりになれる。
PM経験も豊富。DBにも強い。
彼にすべてを託し、私は去る──
そう、私の残業時間は超過寸前だった。
過去の地獄から、
規定時間を超過した瞬間にリミッターが外れ
何時間でも働いてしまうのは目に見えていたので今回は絶対にやりたくなかった。
そして、
私はこのテストを完遂したらプロジェクトを去ることが決定していたため、
それが私の描いたラストだった。
終章:正しかった怒り、という皮肉
その計画は、順調に進んでいた。
私の設定した本当の本当のボーダーラインでポツポツと人が戻ってきて
さらに皆んなが予想以上に頑張った成果で少しだけ前倒しに進んだのだ。
当然テストが終わったら原因究明と修正の工程に進む。
そこで、Hさんのテストを他のメンバーに分担して
HさんにはNG項目の原因究明と修正スケジュール立案を依頼した。
あとは、ある程度まとまったらHさんを上位役職者と会話させて、
その後に私との役割交換を提案すれば平和に離プロできるだろうという絵図を描いていた。
しかし──それを壊したのは、上位役職者(PL)の一言だった。
「Hさんの進捗を把握してないのは怠慢だよね?」
テストは今さっき完了したばかりだった。
3日後にHさんを含め報告する予定も伝えている。
なぜ、今、その言葉を?
私は、何かを踏みにじられた感覚を覚えた。
昨日、10年選手のSEがバッチの仕様わかんないって泣きついてきて私もわからないから23時まで一緒に格闘してたんだよ??
一昨日、Oracle入ってるサーバー環境でしかテストできないバッチどこで実行すればいいですかって聞いたら、あなたはOracleの入ってないサーバーに案内して私の時間を4時間も奪ったんだよ??
メンバーの入退場異常すぎてキックオフミーティング10回もやってんだよ??
こんだけの悪条件揃って期日前倒しでテスト完了めどついてんだよ??
そもそも、Oracleシーケンス噛み合ってないの、あなたの怠慢だよね??
……怒りで、何も聞こえない
私は怒鳴った。冷静さを失っていた。
「テストの進捗管理を優先してる中で、Hさんの進捗を細かく把握するとか無理です。要求が高すぎます。」
字面にすると普通な感じだが、かなりの怒気を含めて放った。
PLも応戦してきて3手ほど怒気のキャッチボールが続き、PMがその場をイナしてくれた。
MTGが終わって冷静になって考えた。
「流石に社会人としてキレたのは良くないから謝らないとな...」
だが、この事件により別の選択肢が見えた。
PMからは、このPJ内でこの条件で完遂できるのは他にいないと言われている
つまり、私は既に単価分の仕事は完遂している
よって、このまま離脱してもクレームにはなりようもない
PMにもPLにも前もって残業時間は超過しないと何度も伝えている
あと、3時間で残業時間は超過する
これは今すぐマネジメントから離れる理由にできる
というかPLと話したくない
テストは既に終わっている
事後対応はHさんに全て任せるレールは完全に敷けている
というか今すぐにでもHさんが旗振ったほうが離脱寸前の私よりも健康的だ
「謝れば、私は続投。
だが、今ここで突き放せば、交代が実現する──」
私は、PMにチャットを送った。
「もう残業時間が上限を超えそうなためこれ以上のマネジメントは致しかねます。
Hさんをご検討ください」
そして、その通りになった。
私は、月残業17時間のまま静かに去った。
引継ぎも、Hさんが困ったときだけ相談に乗る形で完了させた。
──あのとき私が怒らなければ、終われなかった。
あのままYesマンだったら
不具合修正まで対応して残業時間を大幅超過していたことだろう。
怒りが、唯一の正解だった。
社会人が絶対にやっちゃいけないことが正着だったとは、
なんて怖い話なのだろう。