新米武装派フリーランスプログラマ男子(0x1d歳)

コミット二郎

»

 俺が先週末までいた現場での話。

 「もう今年も終わりか……早いもんだな……」などと人並みの灌漑にふけったりする暇もなく、俺たち開発部隊は期末納品を目指し、不眠不休で開発作業に取り組んでいた。

 スケジュールは3週間遅れ。崩しても崩しても、新しく飛んでくるバグ票。積み重なる栄養ドリンクの瓶。なにが正しいのか、誰にもわからない仕様書の山。そして1人、また1人と倒れていくメンバー。

 昨今の景況を踏まえてか、ひたすらに薄暗い開発室の中で、墓標のように横たわっている古びたCRTディスプレイのブラウン管だけが、機械的にビルドの途中経過を映しだしていた。

 斬りつけられるような寒さの中、室内だというのに秋用のコートを着こんだ俺は、手近にあったダンボール――おそらく追加人員の機材が入っていたものに違いない――にくるまり、フリーアクセスの床へと寝そべる。

 何もないよりはマシだろうと思い選んだ手段だったが、これが思った以上に温かい。ささやかなぬくもりに、思わず湯船というものが恋しくなった。最後に風呂に入ったのは、いつ頃だっただろうか。おそらく月までは変わっていなかったとは思うが……。
 
 まあ、今となってはどうでもいいことだ。気休めに寝返りをうつと、不規則に点滅する開発マシンのLEDが偶然目に入ってしまい、なんとも気分を害する。改めて元の体勢へ戻った。

 上からは規則的に、少し鼻にかかった寝息が聞こえていた。「偶数日は並べた椅子の上で、奇数日は床。」それが俺たちの間で交わされた、暗黙の取り決めだった。

 夏も終わる頃、同時期にこのプロジェクトへと配属され、ここ数カ月の間、ほぼ毎日隣でキーボードを叩き続けてきた男――俺と同じく外注の傭兵として、「SES」という、砂の城にも似たあやふやな取り決めの中、「人月」とかいうふざけた単位で働かされつつも、文句も言わずに黙々とディスプレイに向かっていた男――それが、あいつだった。

 名刺交換の場で「本来の所属会社ではないんですが」と断ったときや、珍しく仕事が早く終わったときに立ち寄った飲み屋で見せる、困ったような、そしてどこか達観したような笑顔が、妙に印象に残る――そんな男だった。

 だが今では、眼鏡の奥の青白い顔に、その面影すら見ることはできない。それほどまでに憔悴しきっているのだ。「サイズが合わなくなってしまって」と、苦笑しながら机にしまいこんだ指輪の、もう1つの持ち主は、いったいどうしているのだろうか。子供の話を聞かなかったことだけが、今となっては、唯一の救いのように思えた。

 俺は小さく首を振った。こんなことは考えていてはいけない。他人のことなどを考えている余裕など、この現場にはない。ただ明日という日を生き延びるために、今するべきことをする。それしかないのだ。

 疲れきった体に引きづられるように、俺の意識は一瞬で、漆黒の闇へと堕ちていった。

 ……

 翌朝。俺は始業をつげるチャイムによって、心地よい眠りから引き戻された。

 我々の開発チームでは、朝一番に各自ソースコードをアップデートし、割り振られた問題票を定められた時間内に解決し、一定時間ごとにコミットしていくというルールになっている。

 というのも、開発とシステムテストが同時に走っているような状態になっているので、修正したソースを反映させたビルドファイルを、即テスターに提供しなければならないのだ。そのため、コミット時間を区切りつつビルドを走らせなければならない、ということらしい。

 今揃っている、ファーストメンバーを見て戦慄した。

 左端に座っているのは、10メートル先の廊下にまでメカニカルキーボードの打鍵音を響かせる、エンター山田!!

 奥には、トラックボールを自在に操り、マウスジェスチャーにすべてのショートカットキーをマッピングしているという、ボーリング竹中!!

 右には、アニメ絵背景にカスタマイズされたターミナルと、胸部特盛マウスパッドが圧倒的な存在感を放つ、ディメンション大村!!

 そして俺は知っていると思うけど、私物ディスプレイ2つを持ち込み、合計3つの画面を縦横無尽に駆け巡る、狂犬ケルベロス!!

 オールスターさながらのメンバーだ。俺以外の3人も、威嚇的な鋭い視線を、容赦なく体中へと浴びせてくる。今日のバトルは、このプロジェクト最強のコミッタを決める、事実上の王座決定戦になる……俺は、そう直感した。

 そして皆のチェックアウトが終了するのを合図に、バトルが始まった。このプロジェクトではリポジトリが1つしかなく、しかも1つのソースファイルに大量のコードが書かれているため、コンフリクトが非常に起きやすい。

 そこで始まるのが、自らのソース変更を他者より一刻も早くコミットするという、通称「コミットバトル」だ。素早く問題票の中身を理解し、ソースコードへと修正を反映させ、問題票番号をメッセージに含めてコミットすると共に、チーム内にコミットが発生したことを「コール」する――この一連の作業が滞りなく通ったときの爽快感は、俺たちコミッターにとって、他の何物にも耐え難い快感だ。

 「コミットしました!!」スパーン、という甲高い打鍵音と共に、ファーストコールを上げたのはエンターだった。

 ――早い!!

 流石に最初期からプロジェクトに入っているだけのことはある。コミットからコールまでの一連の動き――通称「フィニッシュムーブ」も滑らかで、まったく隙がない。俺はファーストコミットを奪われた屈辱を噛み締めつつ、プロジェクトファイルをアップデートした。
 
 幸い、いま俺が取り掛かっているソースとのコンフリクトはない。これならタイムロスは微小だ。俺は3つの画面上を素早く見比べながらコンパイルし、テストプログラムを走らせた。問題なし。俺は素早くクリップボードに保持していた問題票番号をペーストすると、コミットメッセージに含めた。

 しかし、耳に入ってきたのは「コミットしました!」という、ディメンションのコールだった。まさか、一瞬の差で……!? 慌てて画面を見ると、俺のコミットは成功している。

 逆に戸惑っているのはディメンションだ。おそらく俺のコミットの方が一瞬早く入り、それによってコンフリクトを起こしたのだろう。これは「フライングコール」と呼ばれ、重めのギルティが課せられる。

 顔を真っ赤にするディメンションを横目に、俺は内心ほくそ笑んだ。ギルティを受けてコンディションを崩してしまっては、このコミットバトルは勝ち抜けない。ディメンションは自滅したのだ。

 堂々と立ち上がると「コミットしました」と言い放ち、満ち足りた気持ちで次の問題票をめくる。この問題もさほど難しくなさそうだ。エンターに追いつくのも時間の問題……そう思った矢先に、ボーリングのコミット宣言が入った。さすがに歴戦の強者たちだ。一瞬たりとも油断はできない。

 自らを戒めつつも、プロジェクトをアップデートし、次のソースをコミットしようとしたときに、異変は起こった。
 
 『このファイルは◯◯によってロックされています』 

 一瞬、何のことだかわからなかった。他のメンバーも同様のようだ。明らかに異質の空気が辺りに漂う。「……ありえない……」ボーリングがそう呟くのが、俺の耳にも入った。

 その通りだった。この「コミットバトル」という聖域において、「ファイルに専有ロックをかける」などというきわめて無粋な行為は、ルール違反中のルール違反――最大級のギルティである。

 ロックをかけた男にメンバーの視線が集中する。たしか、先週末に入ってきたばかりの新入りだ。奴はまだ、このコミットバトルという、コミッタにとって不可侵な、純粋で神聖な領域について、まったくもって理解していなかったのだろう。

 俺の頭の中は一気に真っ赤になり、心の奥底から溶岩の濁流のように、熱く、そして激しい怒りがこみ上げてきた。

 俺は感情の高ぶりをこらえきれずに、己の拳を高々と突き上げると、叫んだ。

 「ギルティ!!」

 他のメンバーも同調するように、拳を振り上げて叫ぶ。

 「ギルティ!!」

 「ギルティ!!!!」

 「ギルティィィィ!!!!」

 こうして今回のコミットバトルは、なんとも納得のいかない形で、唐突に幕を閉じたのだった。俺は土下座させられる新入りの姿を横目に、「こんなメンタリティで開発を続けるのは、リポジトリに対する冒涜だ」と言い放つと、数日ぶりに会社を後にした。
 
 そして、いつも混んでいるので敬遠していた、あの黄色い屋根の店で食べたラーメンの味は、電車内で中身をrevertしたときの光景とあわせて、二度と忘れることはないだろう。

 以上、レポっす。

参考資料:二郎ペディア 

Comment(1)

コメント

匿名

エンター山田wwwwwwwwwwwwww
非常に読み応えがありました。

コメントを投稿する