ふつーのプログラマです。主に企業内Webシステムの要件定義から保守まで何でもやってる、ふつーのプログラマです。

大竹ツカサのナラティヴ (1)

»

 2007 年10 月17 日。
 午前8 時過ぎ、マーズネット株式会社ソリューション開発部の大竹は、株式会社サガラ電装のシステム部に入った。サガラ電装の社員は誰も出社していなかったが、「外注さん島」と呼ばれる一角には、一人の男性が座っていた。大竹が自席に近付くと、その男性は顔を上げた。
 「おはようございます」
 「おはよう」大竹は座りながら挨拶を返した。「早いな」
 「すいません」諸見ヨウジは必要もないのに謝った。「Items 現象がどうしても解消しなくて」
 「棚橋がやってたんじゃなかったか?」
 「そうなんですけど」諸見は肩をすくめた。「あいつは他にも抱えてるんで」
 「ああ」
 押しつけられたか、と思ったが、大竹は口にはしなかった。こうしたことは初めてではない。
 カバンを置いてPC の電源を入れると、大竹は席を立って諸見の横に移動し、モニタを覗き込んだ。
 「どこだ?」
 「ここです」諸見はhtml テンプレートの一部を指した。「こっちのボタンを押すと、このテーブルが1 行増えるんですけど、サブミットしたときにサーバ側で見ると、最初の読み込み時の状態から変わってないんです」
 「Java の方を見せてくれ」
 エディタが切り替わった。大竹は手を伸ばしてマウスを握ると、ソースをスクロールして該当部分を読んだ。
 「合ってるみたいだがな」
 「そうなんですよ」
 「フレームワークの方なんじゃないか?」
 「棚橋がメーリングリストに質問投げたんですけど、まだ回答がなくて......」
 「どの画面だ」言いながら大竹は、ソースの先頭にジャンプした。「PRY071D か。明日、テストに回すはずだったな」
 「はい。だから今日中にユニットテストまで終わっておかないと」
 手伝ってやりたいのはやまやまだったが、大竹自身も早めに出勤してきたのは、午後一番に予定されている進捗会議のアジェンダをまとめておく必要があったからだ。とはいえ、このまま諸見に任せておいて、結局、解決しなかったという事態も避けたい。
 「わかった。そのままトライして」大竹は指示した。「10 時のミーティングで、進捗を教えてくれ」
 「わかりました」
 諸見は頷くと、頭をかきながらモニタに視線を戻した。自席に戻った大竹はWord を開きながら、苛立ちと憐憫が混合した複雑な思いで諸見を見た。諸見が悩んでいる問題は、先週の金曜日、別のメンバーの実装中に発覚したものだ。最初に棚橋が調査を買って出ていたが、思ったより時間がかかるので、諸見に振ったらしい。アサインされている実装タスクが一番少ない、という理由によるものだろうが、火曜日の朝になっても解決していないところをみると、諸見の手には余る問題だったようだ。
 先輩プログラマとしては、このまま調査を続けさせ、何とか成功体験をプラスしてやりたいところだが、チームリーダーとしては早めに対処すべきだ。10 時までに目処が立っていなければ、別のメンバーに引き継ぎを命じよう。大竹はそう決めると、アジェンダ作成に意識を向けた。
 大竹と諸見が、それぞれの作業を黙って進めていると、サガラ電装の社員や、常駐しているベンダーの社員らが、ポツポツと出勤してきた。今回の生産管理システム導入にベンダーとして参加しているのは、マーズネットを含めて3 社。マーズネットからは6 名が常駐している。ベンダーの中では人数が最も多く、マーズネットのリーダーである大竹は、そのまま開発チームの代表者の位置づけだった。
 「おはようっす」
 威勢のいい挨拶とともに、入ってきたのは棚橋レンだった。諸見とは同期入社だが、性格やスキルはかなり差がある。
 「お、モロやん」棚橋は諸見の席に直行すると、モニタを見た。「例のItems 問題、まだやってんの?」
 「おお」諸見は申し訳なさそうに答えた。「すまん。どうもフレームワーク側のバグじゃないかと思うんだが......」
 「ああ、そうだと思ってたんだ」棚橋は顎ヒゲをつまんで思案した。「てっきりItems を使わない方法に切り替えたのかと思ってたんだけどなあ」
 大竹は声をかけようとしたが、棚橋が「オッケー」と陽気な声を出したので、そのまま見守った。
 「じゃ、Items を使わないやり方に変えるよ。あれこれ悩んでるより、その方が早いだろうし」
 「本当か」諸見は棚橋を見上げた。「明日までに間に合うか?」
 「何とかするよ。じゃ、いったん、コミットしといてくれ。俺の方で修正するから」
 棚橋が同意を求めるような視線を向けてきたので、大竹は指で小さくOK サインを出した。内心では、自分が指示するはずだった言葉を、棚橋が代わりに言ってくれたことに安堵していた。おかげでアジェンダに集中できる。
 10 時少し前になったとき、大竹は手を止めた。10 時からはチーム内の進捗確認ミーティングだ。全員参加が原則なので、他のメンバーも、それぞれの作業を中断している。メンバー全員が顔を上げたのを確認して、大竹は立ち上がり、ミーティング開始を宣言した。
 ミーティングといっても、タスク毎の進捗はRedmine に入力されているし、共有フォルダに置いてあるWBS にも反映されているので、入力漏れがない限りは「差違なしです」で終わってしまう。この日も全員が同じ言葉を繰り返した。
 「よし、じゃあ、他に何かある人?」
 大竹が全員の顔を見回しながら訊くと、棚橋が勢いよく挙手した。棚橋が最初に口火を切るのが、ほぼ定番となっている。
 「先週の金曜日に出た、在庫サブのItems で増やした行が反映されない問題ですが、さっき修正しました。結局、原因はよくわからんのですが、明細行を増やすときと削除するときに、サブミットしてるのをやめて、Ajax でセッションの中身を更新する方法に変更しました。テストした限りでは、正常に動作しています」
 メンバーたちが「へえ」とか「すご」などの感嘆の声を上げた。諸見は無表情だった。やはり面白くないのかもしれない。
 「それから」棚橋は手元のメモを見て続けた。「フローサービスのコーディングを見てて気付いたんですが、メールの送信先を決めるロジックで、CDD161F に似たようなメソッドが3 つぐらいあります。コピペで作って、中を少し変えてるぐらいのやつが。共通ロジックに切り出した方がいいんじゃないかと思います」
 CDD161F は諸見が担当したクラスだった。諸見は棚橋と大竹を交互に見た後、仕方なさそうに言った。
 「やっておきます」
 「それから」棚橋は続けた。「JBR271Gで、日付を文字列に変換してるんですが、Calendar に変えてから、年、月、日を取得して結合してます。これ、DateFormat を使わないのは、何か理由があるんですかね」
 JBR271G も、やはり諸見の担当だ。諸見は首を傾げて訊いた。
 「それ、バグ?」
 「いや、バグというほどではないけど」
 「動いてるなら、そのままでいいんじゃないかな」
 「DateFormat 使えば、1 行で済むじゃん」
 「動いてるものを変える必要はないと思うな」
 これが、諸見の欠点だった。ある方法で目的を達成できることがわかると、そこで満足してしまう。他にもっと効率的な手法があるのでは、と考えないのだ。常にリファクタリングを意識しながら実装し、新しい言語仕様などを積極的に試している棚橋とは真逆の姿勢だ。どうやら新しい技術を使って試行錯誤するより、過去に実績がある手法の方が安心できる、と思っているようだ。
 たとえば、諸見には何週間か前に、ジェネリクス指定なしでList を記述し、テストでClassCastException を出した前科があるが、それ以後もジェネリクスを忌避し続けていた。諸見に言わせれば、注意してキャストすれば避けられることはわかったので次は間違えない、ということらしい。間違えないように注意し続けるよりも、普通にジェネリクスを使えば確実なので、大竹も棚橋も何度も指摘しているのだが、諸見は「よう使わん」などと言うだけで、一向に自分のやり方を改めようとはしなかった。その頑迷さによって、すでに数度にわたって不具合を出している。最近では大竹も指導を諦め、諸見にアサインするのは、難易度の低いタスクに限るようにしていた。その事実は、諸見よりも経験年数の少ないメンバーにも知れ渡っていて、最近では軽んじる態度を隠さなくなっていた。
 ただ、諸見も自分が実装フェーズで十分なパフォーマンスを発揮できていないことは自覚しているのか、ドキュメント作成や、元請け・クライアントとの交渉、時間のかかる調査などを積極的に引き受けていた。今朝、やっていたItem 問題の調査も、自分から申し出たのかもしれない。
 棚橋が裁定を求めるように視線を合わせてきたので、大竹は「DateFormat を使うように」と言い渡して平行線を辿るだけの議論を終わらせた。諸見はやや不満そうな表情を浮かべたものの、「わかりました」と了承した。
 次に別のメンバーが「タスクとは直接関係ないんですが」と前置きした上で、問題が提起された。サガラ電装システム部の社員から、データ加工や資料作成など、明らかに業務範囲から外れた作業を頼まれることが、最近、頻発しているという。
 「それで」岩名ユウコというメンバーは不満そうに訴えた。「遠回しにですけど、忙しいのでとお断りしたら、諸見さんは何でもやってくれるんだけどなあ、って言われて」
 「モロやんさあ」棚橋が苦笑した。「あんまり気軽に、ホイホイ何でも受けないでくれんかなあ」
 「そうは言っても、お客様からの頼みをむげに断るわけにもいかんしな。それで円滑なコミュニケーションが取れれば、最終的にはうちのメリットになるわけだし」
 「そうかもしれませんけど」岩名が語気を強めた。「諸見さん、うちのタスクより、そっちの作業を優先してやってるじゃないですか。Items 問題だって後回しにしてたんですよね。それってどうなんですか」
 大竹は密かにため息をついた。実は、今、岩名が指摘した問題は、半月ほど前に、大竹自身が諸見に注意している。ただでさえ、諸見にアサインされているタスクは滞りがちだというのに、クライアントからの業務範囲外の作業を割り込ませているために、さらに遅れを生じさせている。諸見が気軽に引き受けているので、クライアントの担当者は罪の意識も感じていないのだろうが、生産管理システム開発という本来の請負業務のスケジュールが大幅に遅延したら、非難してくるに決まっている。大竹はそう説明し、断り切れなければ自分に相談しろ、と命じたのだが、諸見はその後も態度を変えなかったようだ。
 「それにですね」岩名は声を潜めた。「うちだけじゃなくて、サードアイさんやジョイシステムさんにまで、被害が及んでるんですよ」
 サードアイとジョイシステムは、どちらもこのプロジェクトに開発ベンダーとして参加している会社で、それぞれ3 名ずつのプログラマが常駐している。
 「そりゃ、ちょっとまずいんじゃないか」棚橋が真剣な口調で言った。「うちに文句が来るぞ、そのうち」
 「諸見」大竹は苛立ちを隠し、できるだけ抑えた口調で言った。「俺たちはシステム開発のために常駐してるんだ。クライアントの頼みを断るのが難しいのはわかるが、そのために本来のタスクが遅れているのでは本末転倒だ。今後は断ってくれ。いいな」
 諸見は小さく頷いた。大竹はメンバーを見回した。
 「他には?」
 「あ、ぼくから一ついいですか」
 そう言って挙手したのは諸見だった。大竹が促すと、諸見は手元のメモを見ながら言った。
 「システム部の野畑さんから、搬入スケジュールマスタのメンテ画面に、リアルタイムに各配送車の空き状況を表示できる機能を追加してほしいと要望がありました」
 諸見は仕様の詳細を説明した。なぜ、話があった時点で報告しないのか、と大竹はまた苛立ちを感じたが、それは口にしなかった。
 「......こんな感じですね。あ、先に言っておくと、もちろんやりますとか言ったわけではないですよ」
 大竹はメモした仕様を見直した。
 「うーん......これを割り込ませるのは、今からじゃ難しいな」
 「私もそう思いますよ」岩名が同意した。「二次開発に回してもらった方がいいです」
 他のメンバーも口々に同意の言葉を呟いた。その中で、棚橋だけはじっと考えている。
 「何とかなりませんかね」諸見は食い下がった。「他の機能のどれかの優先順位を下げてでも、これを入れて欲しいみたいな口ぶりだったんですが」
 「スケジュールはギリギリだし、全員、タスクをキャパオーバー気味に抱えてるからな」
 諸見以外の全員が頷いた。何人かは不穏な視線を諸見にぶつけている。あんたがもう少しまともにタスクをこなしてれば、少しは余裕も出てくるんだよ、とでも言いたそうな表情だ。誰かが言語化する前に、大竹は素早く言葉を発した。
 「これは断った方がいいだろうな」
 大竹の意思表示に、安堵の空気が流れた。だが、手元の裏紙を見ながら顎ヒゲをつまんでいた棚橋が挙手した。
 「確かに面倒ですけど」棚橋は思案する口調で言った。「データとしては、配送のインとアウトのレコードがあるから、それを加工して出すだけなんじゃないですか」
 「そうは言ってもな」大竹は唸った。「やるとなると、詳細仕様を作って、キヨドメに承認をもらう必要があるんだぞ」
 生産管理システム開発プロジェクトは、K自動車の100% 子会社である、キヨドメ情報システムズが元請けだった。業界大手SIer のエースシステムは、この程度の規模の案件には手を出さないことが多く、大抵の場合は、半ば慣習でキヨドメが元請けになる。社名に「システムズ」と入っているにもかかわらず、キヨドメは開発プロセスに口も手も出すことはないが、形式的にせよ、ウォーターフォールとしての承認プロセスは必須なのだ。
 「詳細仕様ぐらいなら作りますよ」棚橋は請け合った。「せっかく諸見を信頼して落としてくれたんですから」
 「キヨドメへの説明なら」諸見も言った。「ぼくがやります」
 キヨドメのSE への説明は、大抵のメンバーが嫌うプロセスだった。相手が業務知識もシステム開発の知識も持っていないため、毎回、説明が長時間になるからだ。そんなことに時間を費やすなら、一行でもコードを書きたい、というのが本音だった。例外は諸見だけで、他のメンバーに代わってキヨドメに説明のために出向くこともしばしばだった。
 「本当にできるか?」大竹は諸見に確認した。「お前もたくさん抱えてるんだぞ」
 「こういう仕事の方が合ってるんで」諸見は答えた。「実装の方じゃ、ご迷惑をおかけしてますから」
 その自嘲気味の言葉に、メンバーたちは目を逸らした。面倒な作業を押しつけている、という後ろめたさからだ。とはいえ、「では自分が」と申し出るメンバーは一人もいなかった。やはり実装に集中したい、というのが、諸見以外の本音だ。
 諸見としては、積極的にメンバーが嫌がる仕事を引き受けることで、実装での力不足の埋め合わせをしているつもりなのだろうが、逆にその負荷は増えつつある。自重で潰れるようなことにならなければいいのだが、と大竹は案じていたが、これが現状では最善の配分であることもわかっていた。
 「よし、いいだろう」考えている時間が惜しい、という理由から、大竹は決断した。「二人に任せる。報告は細かく頼む」

 (続)

 この物語はフィクションです。実在する団体名、個人とは一切関係ありません。また、特定の技術や製品の優位性などを主張するものではありません。

Comment(16)

コメント

ちゃとらん

ついに、大竹専務の過去が明らかになる…ワクワクですね。


一応、気になったので。
> 大竹と棚橋が、それぞれの作業を黙って進めていると
大竹と諸見が、ですね。
# まだ誰も出社していないので。

のり&はる

> 「諸見がメーリングリストに質問投げたんですけど、まだ回答がなくて......」

ここは棚橋かなと

匿名

なんで進捗を確認する場でコードレビューの指摘が…
個々のコードレビューで指摘すれば良いのに…

yupika

ここでバッドエンド確定の物語を挟むのか…。
悲しすぎる。

h1r0

まさかの大竹さん編!
この一連の作品は超大作になりそうですね
書籍化期待!

匿名

フラグでしかない

N

あれ? 新しい話?と思ったら大竹さん編だったんですね。
内容的には諸見って人だけがうまくいくとかかなぁ。

続きが楽しみです!

さかなでこ

棚橋君のイメージがどうしても100年に1人の逸材だわ。

匿名

ナラティヴと聞くと、魔女の刻を思い出すけど、第1話が2017年9月という衝撃。

匿名

> 「......こんな感じですね。あ、先に行っておくと、
言っておくと かな

匿名

指摘しようとしたら3つとも出てたw

匿名

台場さんとかぶる…

匿名

大して自分のタスクを進めず周りに押し付けて、顧客が表面的に要望することばかり対応してたやつが評価されて待遇が上がっていき、それに嫌気が差したみたいな展開かなあ

匿名D

さて誰が潰れるのかね。
諸見氏じゃ、むしろ自業自得という感じ?
あるいは上の匿名氏の指摘の通りなのかな。

リーベルG

ちゃとらんさん、のり&はるさん、匿名さん、ご指摘ありがとうございます。
名前がごっちゃになってしまいました。

なんなんし

2007年かぁ
新卒が売り手市場になった頃だね
この後一念足らずでリーマンショック
仕事なくなったエンジニアも多いね

コメントを投稿する