孤独のグラマ
……とにかくコードが書きたかった……
俺は営業にねじ込まれる形で炎上しかけたプロジェクトに放りこまれ、来る日も来る日もスクリーンショットを表計算ソフトに貼り付ける単調な作業をやらされていた。
(焦るんじゃない 俺はコードが書きたいだけなんだ)
タブすらないレガシーなブラウザに辟易する俺の耳に、ボソボソとしたつぶやきが耳に入ってくる。
はす向かいで、SEが仕様書片手にプログラマに何かを頼み込んでいるようだ。
「そうは言っても、これ以上の機能追加は……」
「そこをなんとか……お願いしますよ……」
(追加仕様か? うん よしこれだ これはいい 追加実装とは渡りに船じゃないか)
「あの……私やりましょうか」
「え……?」
「あ……先週からアサインされている……」
「あ、はい 既存ソースも概ね把握できましたし、手持ちの作業に余裕があるので」
「そうですか! ぜひともお願いします!」
軽い足取りで去っていくSEを見送ると、俺はかぶりつくように仕様書をめくった。
「うん いかにもって仕様だ いかにも業務系って仕様だ」
俺はできるだけ既存ソースには触らずに新しいクラスを作る。コード修正でバグを作り込むのはやっかいだ。
(うん……? addXXXX()とappendXXXX()でメソッドがかぶってしまった……既存ロジックの命名規約にも統一性がない……)
「ウン こうだな」
俺は素早く修正を済ませると、コンパイルして動作を確認する。期待どおりの動作だ。
「上等 上等」
(このenum化は正解だった public static finalづくしの中ですっごく爽やかな存在だ)
俺は手早くリポジトリにコミットすると、続けてコマンドを叩き、ソースのコメントからドキュメントのHTMLを生成する。
間髪入れずにw3mで開くと、見事にエディタ上に美しいAPIの花が開いた。
(こういうの好きだなシンプルで Emacsのキーバインドって男のコだよな)
俺は次の実装機能を求め、仕様書に目を走らせた。
(帳票出力! そういうのもあるのか!)
「スイマセン、ここに書いてある『帳票ライブラリ』をリンクさせてください」
向かいに座っている、小太りの男がすまなそうに言う。
「あ……ごめんなさい それスタブなんですよ」
がーんだな……出鼻をくじかれた……
「じゃ……この『帳票プレビュー』を」
「ですからごめんなさい 帳票試験は来週からなんですよ 開発が1週間押しでして、どうも」
「……」
(そうか……どうしよう 結局実装できるものがないってわけか……まいったなぁ……ピーンときたのになぁ……あとはソースレビューか……朝からソースレビュー……それでもいいけどなあ……)
その直後、背後で $ find . -print | xargs grep していたコンソールが、プロジェクト内の膨大なソースコードの固まりを映し、俺は思わず声を漏らした。
「お……」
共通ライブラリがあるのか! うん! そうかそうか そうなれば話は違う! ここに並んだ大量の自家製ライブラリが、すべてテスト対象として立ち上がってくる!!
(ふむ 画面側ライブラリか 文字列処理ユーティリティもあやしい validate用か? 終端処理だってあやしいぞ そこにCSV出力などつけるか こりゃあご馳走だ ページングクエリ生成も渋いな)
- StringValidateUtilクラス……4000行あまり ドキュメント・コメント・テストケースなし
- validate(String str, int length)……本クラスのメインメソッド 何をどうvalidateするのかは不明
- isEnableEmail(String email)……メールアドレスの妥当性チェック どこかWebサイトからコピペしてきたような正規表現が使われている
- putCSV(List data)……CSV出力用と思われるが用途は不明 ライブラリを使わない実装がなんとも豪快
- getSelectQuery(int page)……ページング用のSELECT文を生成(???)
……エトセトラ。
「ほー いいじゃないか こういうのでいいんだよ こういうので」
俺は軽快に自前のHHKを操ると、テストコードを書き始めた。
(うぉォン 俺は人間コード生成機だ)
だが、コーディングに没頭するのもつかの間、俺のフロー状態は目と鼻の先で始まった、プロジェクトマネージャらしき中年男の説教によって妨げられた。
「おい、ここの文言がまた違ってるぞ!! まったく何度言ったらわかるんだ!?」
「ハイ スイマセン」
「それとお前、あっちのプログラマに画面のクロスブラウザ確認を徹底させろって言っただろ? こことここ、また表示が崩れてるじゃないか!!」
「あ……スイマセン」
ブリッジSEと思しき青年は、ただ平身低頭するばかりだ。
「……」
俺のキーボードを叩く手が、止まる。
「まったく うちの会社のウリはユーザビリティだって 何回言ったらわかるんだ!? とにもォ……」
「スイマセン」
PMらしき男の小言を遮り、男のポケットからけたたましい着信音が響く。男は携帯の発信者を確認すると、今まで怒鳴っていたのが嘘のような声で電話に出た。
「ハイ あ……◯◯さんですか? あ……それは簡単ですよ すぐにでも実現できます 詳細はメーリスに添付の資料で ハイ了解です」
ピッ
「おいほら 仕様変更だぞ」
「しかし…… 工数……」
「そんなのいくらでも残業で作業させろ!! こっちは高いカネ払ってんだ!!」
「…………」
「蜀さんよォ、国でどうやってたか知らないけどさ 日本じゃそんなテンポじゃやっていけねぇんだよ!!」
「……ハイ スミマセン」
「………………」
「こっち来て勉強しながらで そりゃあ大変だろうが、こっちは、な!!」
「スミマセン スミマセン」
「……………………」
俺は無言で立ち上がり、プリンタに出力された紙束をつかみとると、PMらしき中年男の机へ、両面2UP行番号付きで印刷されたソースコードを叩きつけた。
「……人のコーディングしている前で あんなにどならなくたっていいでしょう」
「え?」
「今日はものすごくコーディングしたいはずなのに、見てください! これしかコードが書けなかった!!」
「なんだァ? あんた文句あんのか」
「ある」
「あんたみたいな外様がどうソースを書こうが、うちのプロジェクトには余計なお世話だ! 口出しすんな!」
「……あなたはプログラマの気持ちを全然まるでわかっていない!」
俺はきっぱりと言った。
「コードを書く時はね 誰にも邪魔されず 自由で なんていうか 救われてなきゃあダメなんだ 独りで……静かで……豊かで……」
「なにをわけのわからないことを言ってやがる…… 出て行け! ここは俺のプロジェクトだ! 出ていけ!!」
PMらしき男は一瞬唖然としたが、我に返るなり俺の胸を小突いた。
俺は反射的にその腕を取ると、『腕がらみ』、いわゆる『チキンウイング・アームロック』をキメていた。ミシリと骨の軋む、嫌な音が響く。
「があああ…… 痛いッッ!! お……折れるう~」
「あ……やめて!」
ブリッジSEが、嘆願にも似た眼差しを向ける。
「……それ以上いけない」
「……………」
……
そして、俺は都度何回目かになる自宅待機を命じられると、独り、駅へと抜ける商店街を歩いていた。
「はぁ……」
(あいつ……あの目……故郷にはきっと家族がいて……わざわざこんな島国まで来て……いろいろ我慢しながら……それでも金を稼ぎ……)
(あーいかんなあ……こんな……いかんいかん……)
参考文献: 孤独のグルメ
コメント
tom
このネタは..!
と思ったらちゃんと最後に書いてあったww
sa
まさかこれ実話?
「俺」の気持ちよくわかります。
ここまで言ってみたいですね。
terukizm
参考文献は皆様、是非御覧ください……「事実を元にしたフィクション」とだけ言っておきたいです……