魔女の刻 (22) スペインの雨は主に平地に降る
白川さんの復帰予定日が9 月 18日に決まった、と発表されたのは、8 月28 日の朝だった。それは私たちが期待していたよりもかなり遅い日付だったが、遅くても来ないよりまし、ということわざがあるように、いい知らせには違いなかった。私たちに吉報を伝えたのはサブリーダーの佐野さんだ。いつもは、仕事そのものに関心を持っていないのではないか、と思わせる態度の佐野さんだが、このときばかりは安堵の表情を浮かべていた。今枝さんの行き当たりばったりのマネジメントは、私たちプログラマのみならず、エース社員の人たちにも少なくない被害を及ぼしていたから、さすがに辟易していたのだろう。今枝さんは朝から不在だった。市役所で打ち合わせ、とのことだったが、それは口実だったのかもしれない。
「では」佐野さんは、他の業務連絡を行った後で締めくくった。「来月18 日まで何とかしのぎましょう。解散」
「しのぎましょう、だって」チハルさんが含み笑いをしながら囁いた。「白川さん復帰したら、プロジェクトの惨状見て、また入院したくなったりして」
チハルさんが言っている「惨状」とは、スケジュールの遅延のことだった。少しずつ改善してきてはいたものの、今枝さんが出す仕様は相変わらず不備や抜けが多く、私たちは一カ月前に単体テストを終わらせ、結合テストに組み入れられているはずのコンテナを、まだ実装している有様だった。
私たちプログラマはスケジュールの遅れを心配していたが、エースシステムが抱いている危機感は、より逼迫したものだったのだろう。サブリーダーの3 人が、ブレイクルームで深刻そうに鳩首協議をしている光景が、特に8 月後半になってから頻繁に見られるようになっていた。会議室でやればよさそうなものだが、東海林さんなどに言わせると、業務の一環として対策会議をやると、今枝さんを参加させないわけにはいかなくなるからだそうだ。
サブリーダーたちから距離を置かれていることに、今枝さんが気付かないはずはない。加えて、成果を出せない現状にオーブンで炙られているような焦燥を感じてもいたのだろう。高杉さんから説教ぐらいされたのかもしれない。白川さんが言ったように、このプロジェクトに対する直接の責任は今枝さんにはないが、ここまで遅延させてしまうと、オーダーテイカーとしての職務を満足にこなせていない証明になる。上級SE を目指すエース社員の経歴にはマイナスだが、それだけではない。エース社内の派閥争いによってオーダーテイカー制度を発足させ、このプロジェクトに今枝さんを送り込んだ役員だか事業部長だかの顔に泥を塗ることにもなりかねない。
下手な手を打つより静観していた方がいい場合もあるが、激しい生存競争が繰り広げられている環境では、何も行動しないという選択はそれだけで罪となる。エースシステムにおいて、現状維持では加点をもらえないのだ。もちろん今枝さんは打開策を講じ、実行に移した。それ自体は責められることではない。ただ、打った手は最悪だった。
◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇
8 月31 日の朝、細川くんが会議室に呼ばれた。他に3 名のプログラマも一緒だ。通常の作業連絡なら、グループウェアでやり取りされるし、質問などはそれぞれの席で行われるので、わざわざ呼び出すのは珍しい。何か、特別な作業の依頼か、そうでなければ影響が大きいバグでもあったか、と思っていると、30 分ほどで細川くんが戻ってきた。手に1 枚のプリントアウトを持っている。
「何だったの?」
そう訊くと、細川くんは黙って、プリントアウトを差し出した。「教育担当」のタイトルの下に3 人の氏名とID が載っている。いずれも知った名前ではない。
「何、これ」
「来週の月曜日から」細川くんは沈んだ声で答えた。「新しくプログラマを入れるそうです。分担して、開発の進め方なんかをを教えろと言われました。ぼくの担当が、その3 人です」
聞きとがめた東海林さんが席を立ってきた。
「人を入れるって何人だ」
「12 人だそうです。他に3 人、教育担当になりました」
「今から人を増やすの?」私は首を傾げた。「なんで?」
「何社かプロジェクトからドロップアウトして」細川くんは声を潜めた。「当初より人が減ったじゃないですか。今枝さんによれば、スケジュールの遅延は、そのために人員に余裕がなくなっていて、一人一人に過大な負荷がかかっているためだそうです」
「それはおかしいんじゃないか」東海林さんが険しい顔で言った。「白川さんが管理していた頃は、この人数でも普通にオンスケだったんだから」
「ぼくもそう思うんですが」細川くんは悲しそうに言った。「実際、岡沢さんもそう言ってくれたんですが、今枝さんは、とにかくやれ、の一点張りで。もう、どうしようもなくて」
それを聞くと、東海林さんは手を止めて立ち上がると、まっすぐに今枝さんのデスクに向かった。私も慌てて後を追いかけた。これ以上、余計なトラブルを生み出さないためだ。
「今枝さん」東海林さんは前置き抜きで言った。「来月から人を増やすというのは本当ですか」
今枝さんは、それがどうした、という顔で東海林さんを見返した。
「事実だよ。このままだとスケジュールが遅れるばかりだからね」
「プロジェクトへの参加ベンダーを新しく追加する、ということですか?」
「いやいや」今枝さんはヒラヒラと手を振った。「そんな時間はないからね。派遣会社のいくつかに声をかけただけだ。1 カ月から2 カ月の短期契約でね」
「なんでまた」
「なんで? おいおい、君の目には今の状況が見えないのか。スケジュールがどうなってると思う」
「遅れてます」東海林さんは無機質な声で答えた。「でも、それは人が足りないせいではないと思いますが」
本音は、あんたが無能だからだよ、ぐらい言いたいところだろうが、さすがに直接的な表現は使わなかった。だが、その配慮はムダだった。
「ああ、わかってるよ」今枝さんは自嘲気味に言った。「みんな、ぼくが悪いって思ってるんだろ。それぐらいわかってるよ。ぼくは成果を出せなかった。ぼくがオーダーテイカーとして管理を始めてから、スケジュールが遅れだしたことぐらいわかってるよ。だから、それを何とかしようとしてるんじゃないか。それが悪いのか」
東海林さんはため息をついた。
「悪くはないです。ただ、この時期に人を増やしてもオンスケに戻す効果はないと思いますが」
「ぼくはそうは思わんね。人が多いに越したことはないからね。そうすれば、君たちの負担も少しは減るんじゃないか」
この人にブルックスの法則の話などは通じないだろう。東海林さんもそれはわかっているらしく、別の言い方で説得を試みた。
「うちの細川の他、何人かを教育に当たらせるそうですが」
「そりゃあ、誰かが開発の進め方を教えなきゃならんからね。ぼくがやるわけにもいかんだろう」
なぜ、今枝さんではダメなのか、という質問を、東海林さんはしなかった。時間のムダだと思ったのだろう。
「サブリーダーの方々では?」
「彼らは彼らで仕事があるからね、いろいろと」
「細川たちにも仕事はありますが。いろいろと」
「システムエンジニアほどじゃないだろ」
聞き耳を立てていたプログラマの何人かが、ムッとしたのがわかったが、今枝さんは気に止めていなかった。
「あのですね」東海林さんの声が次第に尖ってきている。「プロジェクトの終わりまでずっといるならともかく、1、2 ヵ月程度では、教育担当の時間をムダに消費するだけになりませんか」
「そうかな」
「そうです。全くの未経験者が、私たちと同じぐらいのレベルになるまで、半月ぐらいはかかりますよ」
「でも、君たちは1 月終わりにトレーニングを終えて、2 月1 日からチケットをアサインされてたじゃないか」今枝さんはタブレットを指で叩いた。「ぼくはちゃんと調べたんだからね」
「2 月の最初の頃にアサインされていたチケットは、難易度が低いコンテナばかりでした」東海林さんは辛抱強く説明した。「簡単なコンテナを実装することによって、私たちはVilocony 独特のコーディングに習熟していったわけです。でも、結合テストフェーズが並行しているぐらいだから、そんなシンプルなコンテナの実装は、もう残っていないはずです」
ここ最近、私たちにアサインされているチケットで、一つの部品だけ、というような単純なコンテナは皆無だった。実装時間も1 日以上を要している。これは、白川さんが作った実装・テストスケジュールが、私たちの習熟度に合わせて難易度を増すように、慎重に計画されているためだ。
「ああ、そうなのか。それで?」
「......つまり、半月ぐらいは戦力にならず、やっと戦力になっても、人によっては半月でいなくなる。スケジュールの遅れを取り戻すことにはならないじゃないですか」
「半月だっていないよりマシだろう」
「教育担当のプログラマの戦力とトレードオフになるんだから、スケジュール的にはむしろマイナスですよ」
「おいおい待て待て」今枝さんは首を傾げながら言った。「トレードオフって何だよ。教育担当だってこれまで通りチケットはアサインするよ。当然だろう」
「は?」東海林さんはまじまじと今枝さんの顔を凝視した。「それじゃあ教育担当の負担が増えますが」
「まあ多少はね。それぐらいは、何とかやりくりしてもらえないかな」今枝さんは時計を見ながら言うと、タブレットをつかんで立ち上がった。「打ち合わせの時間だから、ぼくは行くよ」
今枝さんが出て行った後、東海林さんはサブリーダーの新美さんに撤回を頼んでみたが、色よい答えはもらえなかった。
「一応話してはみますが」新美さんの返事は歯切れが悪かった。「私たちの言うことなんか、あの人は聞こうとしないと思います。それにもう派遣会社と正式に契約してしまったようなので、受け入れるしかないです。受け入れた以上、遊ばせておくわけにもいかないですしねえ」
「せめて教育担当を集中させないで、広く分散させるようにできませんか」
「......それも話してはみますが、たぶん難しいでしょう」新美さんは小声で言った。「来月になれば白川が復帰するので、それまで待った方が早いかもしれません」
いかにも面倒なことを回避したがっている口調だった。新美さんはエース社員の中では、私たちプログラマの話を聞いてくれる方だが、真っ向から上長に反抗するほどではない。東海林さんは、なおも言葉を変えて説得を試みたが、覆ることはなかった。
◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇
予告通り、9 月4 日の朝、12人の補充要員が開発センターに現れた。全員が男性で、年齢は20 代から50 代と幅広い。今枝さんは誇らしげに紹介し、私たちも拍手で迎えたものの、どこか白けた雰囲気が漂っていた。
細川くんを含む4 人のプログラマたちは、仕方なく補充要員の指導を始めたが、表情にも態度にも熱意が欠けていたのは致し方ない。アサインされるチケットの数も難易度も維持されたまま、意味があるとは思えないタスクを追加されているのだから無理もない。
指導方法は特にガイドラインがあるわけではなく、教育担当に一任されていた。細川くんはトレーニングで使った資料を引っ張り出し、フリースペースで午前中いっぱい説明をした後、単純な仕組みのコンテナを作成する課題を与えた。午後からは自分にアサインされているチケットの消化に戻ったが、予想通り、ほとんど進めることはできなかった。5 分おきぐらいに、生徒の誰かが質問しに来て、その都度、細川くんは席を離れて説明に行かなければならなかったからだ。過去に抜けたプログラマたちの席はそのままにしてあり、補充要員たちが空いた席に座ることになったことも、時間のロスの一因だった。東海林さんは、一時的にでも席替えをして、教育担当のプログラマと補充要員の席を固めてはどうか、と今枝さんに提案したが、席替えにともなう時間がムダになる、という不思議な理由で却下された。
その日、細川くんの退社時刻は日付が変わる寸前だった。補充要員は18 時までという契約になっているらしく、17 時50 分になると作業を中断して帰り支度を始め、18 時と同時に一斉に席を立って退社していった。細川くんが本来の作業を開始できたのは、その後になったからだ。その状況は次の日も、その次の日も続き、木曜日にはとうとう2 階に泊まるはめになった。これまでどんなに遅くなっても帰宅するようにしていたというのに。
見かねた東海林さんが、再び今枝さんに直談判し、細川くんの代わりに教育担当を引き受ける、と申し出たが、今枝さんに「もう決めたことだし、慎重に計画されたスケジュールを崩すことになるから」と、にべもなく却下された。東海林さんは舌打ちする寸前で引き下がったが、自席に戻る際、細川くんの肩をポンポンと叩いた。
「すまんな。力は尽くしたんだが。帰りにビールでもおごってやるから元気出せ」
「お忘れかもしれませんが」細川くんは力なく答えた。「ぼくたちは車通勤なんですよ」
「おお、そうだったな。じゃあ、3 月で一段落したら、飲み放題、食べ放題でパーッとやろう。会社のおごりにしてもらうから」
「それまでに過労で死ななければお願いします」
「まあ、2 階に泊まる場所があってよかったじゃないか」
「それが問題なんですよ」細川くんの頭がガクリと垂れた。「彼女が、いい加減、苛々してきてるんです」
「事情は話してあるんでしょ?」私は訊いた。
「ありますけど。本当に仕事してるの、とか訊かれて......向こうは同じ業界といっても、うちよりはずっと大きいし、彼女も事務なんで定時で上がってるから、こんな遅くまで仕事をしなきゃならない状況が想像できないんですよ」
「ああ、なるほど」東海林さんは面白そうに言った。「浮気してるんじゃないか、とか疑われてるわけか」
「笑い事じゃないですよ」
「俺か、社長から話をしようか」
「うーん......」細川くんは少し考えて首を横に振った。「いや、遠慮しておきます。アリバイ作りで口裏合わせてると思われるだけです」
「じゃあさ」ちょうど通りがかったチハルさんが割り込んだ。「あたしから、奥さんに電話しておこうか。マモルくんは、毎晩、あたしと仲良く、一生懸命お仕事してますよ、とか」
「......面白がってますか?」
チハルさんがケラケラ笑いながら行ってしまった後、細川くんは大きなため息をつくと、ちらりと後ろを見て囁いた。
「せめて、あいつらがもうちょっとマシだったら、まだよかったんですけどね」
細川くんの言う「あいつら」とは、教育を担当している補充要員のことだった。ろくに条件も設定せずに急に集められたせいか、スキルはそれほど高くはないようだ。同じく教育担当に指名された、蜂須賀テクノロジー株式会社の岡沢さんもブツブツ言っていたから、細川くんだけが不幸だというわけではない。だからといって細川くんの慰めにはならないだろうが。
「何度説明しても」細川くんは忌々しそうに呟いた。「vilocony envelop用のパラメータオブジェクトのinitialize を呼ぶのを忘れて、動かないんですけど、とか言ってきやがるし、A フレの記述でわからない部分があっても、ヘルプを見ないでぼくを呼びつけるんです。そもそも、メソッドチェーンにするのを必ず忘れるんです。中学校の頃、化学の教科書の硫黄って漢字が読めない奴がいたんです。同じページに5 回ぐらい出てきて、そのたびに先生に訊いてたんですけど、そいつを思い出しましたよ」
「辛抱強く、何度も何度も教えるしかないわね」私は笑った。「反復に勝る勉強方法はない、っていうでしょ。ヒギンズ教授方式よ」
「誰ですか、それ?」
「スペインの雨は主に平地に降る、ってやつ。知らない?」
「知りません」
「マイ・フェア・レディよ。たまには昔のいい映画を観なよ。アニメばっかり観てないで」
「アニメだって名作は多いんですよ」細川くんは反論した。「それに、アニメは役に立つんです。ぼくが彼女と知り合ったのだってアニメが縁なんですから」
「うん、その話はもう耳にできるタコでたこ焼き屋が開けるぐらい聞いたから、言わなくていい。まあ、ともかく、白川さんが復帰するまでの辛抱だと思うよ」
細川くんに限らず、私たちが何とか今枝さんに耐えているのは、白川さんによって状態が復元される、という希望があったからだ。そうでなければ、東海林さんなどは、とっくに状況を改善すべく、やや過激な行動に出ていたに違いない。
「そう願いますよ。心から」
細川くんが言ったとき、後ろからか細い声が呼びかけた。
「あのー」
振り向くと、補充要員の一人が立っていた。私より年長の、頭が薄くなった男性だ。タブレットを細川くんに差し出している。
「ああ」細川くんは不機嫌さが滲む声で答えた。「なんですか」
「あの、途中までできたんですが、その、進まなくなってしまって」
細川くんは、またかと言いたげにため息をついた。
「見せてください」
タブレットを受け取った細川くんは、険しい顔でソースを見ていたが、心配そうな顔の男性を手招きした。
「いいですか、前にも言いましたが、引数が足りないんですよ。これはシンプルパーツパターン3 ですから、envelop テンプレートは、RT03Xか、RT04F にする必要がありますよね。ラジオボタンのコンテナってことは、単一選択肢が必要だから、RT04F になります。ってことは、引数は4 個になるじゃないですか。なんで2 個しかないんですか」
「すいません」男性はぺこぺこと頭を下げた。「ちょっと混乱してしまって」
「API リファレンスと、Vilocony のサンプル見て下さいね。あと、このあたりなんですけどね」
「はい、すいません。何か違ってますか?」
「いえ、バグではないんですが、変数を全部ソースの先頭で定義すると、何かいいことがあるんですか?」
「あ、その、いいことというか」男性はまた頭を下げた。「ずっとそうやってきたんですが、何かまずかったでしょうか」
「まずいというか......まあ、どっちでも......」
おそらく「どっちでも動けばいい」のような言葉を続けようとした細川くんは、東海林さんの警告するような視線に気付いて、心を決めたように男性を見た。
「動くことは動くんですが、変数のスコープはできるだけ狭くしておいてもらえますか。別の人がメンテナンスするとき、追いづらいですから」
「はあ。そうですか。C ではこうだったんですが」
ああ、なるほど。私は昔、少し触ったことがあるC 言語の仕様を記憶から呼び起こした。確か、C 言語では変数宣言は先頭に書かなければならなかったはずだ。きっと、この男性は、ずっとC 言語のシステムばかりに携わってきたのだろう。
「Java では変数は使用する前なら、どこでも宣言できるんですよ」私は横から説明した。「先頭で宣言してしまうと、何か意味があって先頭に置いているのかと思うから、避けた方がいいんです」
「ははあ、そういうもんですか」男性は頭を掻いた。「すいません。本当に。Java はこれが始めてなもんで」
男性が戻っていくと、細川くんは東海林さんと私に向かって弱々しく微笑んだ。
「ぼくの苦労、わかりますよね」
慰めの言葉をかけてあげる時間はなかった。細川くんの席に、別の補充要員が近付いてくるのが見えたからだ。細川くんは、またため息をつくと、補充要員に向き直った。私は細川くんの心と身体の健康のためにも、白川さん復帰の日を待ち望んだ。白川さんが再び開発センターで指揮を執れば、全ての状況がいい方向に向かうに違いない。それは、全てのプログラマの共通した思いだった。
残念なことに、私たちは間違っていた。
(続)
この物語はフィクションです。実在する団体名、個人とは一切関係ありません。また、特定の技術や製品の優位性などを主張するものではありません。本文中に登場する技術や製品は実在しないことがあります。
コメント
K
細川くんの気持ちがものすごくわかる
毎週楽しみ
スピンアウトじゃなくてドロップアウトではないかと
匿名
追加の人員の素性が気になるな。
それと、いい方向に向かうにしても、
今、足元に空いている穴をどうにかしないとね。白川さんが。
期待が外れたってのは、そういうことなのかな。
dai
細川くんが「彼女が、いい加減、苛々してきてるんです」と言ってるけど、新婚さんだとパートナーのこと彼女って言うのかな?妻とか、多少くだけても奥さん、嫁さんとかがよく聞くけど。
aoi
新人の教育なんて契約違反になりそうなもんだけど
匿名
>妻とか、多少くだけても奥さん、嫁さんとかがよく聞くけど。
初々しくていいじゃないのよ。
しかも、新婚早々デスマーチに巻き込まれて、
夫婦としての年季を積む機会すら奪われている。
辞書通りの記述じゃないのはおかしいってんなら、
辞書でも読んでなさい。
user-key.
「すいません。本当に。Java はこれが始めてなもんで」って…?
少なくとも、今やっている人が初期に受けたトレーニングはエースで行って、トレーニング期間中にふるい落とすことはできなかったんでしょうか?
匿名
細川くんの恋人時代からをみんな知ってるのに「妻が…」なんて気恥ずかしくて言えないという心情なのかも
3STR
スキルテストもしないまま頭数だけ増やして仕事した気になるのは、なかなか罪深いというか
予算費やして遅延を広げるって泥塗るどころかガソリン撒いて火をつけてませんかね
匿名
派遣社員が工作員とか…ないか
安堵を浮かべるってあまり聞かない表現ですね。
kei
> 初期に受けたトレーニングはエースで行って、トレーニング期間中にふるい落とす
それだけの頭があれば、短期の追加要員なんて悪手は使わないでしょう。
匿名
今のC言語って、冒頭じゃなくても宣言できるんじゃなかったっけ?
リーベルG
毎週楽しみさん、匿名さん、ありがとうございます。
安堵の表情、ですね。
匿名
C の変数は C99 あたりから 先頭で宣言しなくても大丈夫ですよ
20年近くたってますね
匿名
20年振りのコーディングかぁ。ちんぷんかんぷんだろうなぁ。
匿名
現場によっては、Javaとかでもローカル変数は冒頭で宣言しなきゃダメよって
規約になってるところもあるね
俺が以前いたところもそうだった(みんな公然と無視してたけどw
匿名
C89であってもブロックに分けてスコープ小さくするのが常識。
ある程度処理がまとまっていたら関数にした方がいいですが。
SIG
白川さんは白い魔女。
最初から予告されていたデスマーチ。
避けられるデスマーチならば全体最適化で避けるべく最善を尽くすけれど、
遅延挽回のためならば労働基準法すれすれまで……
白い魔女の黒魔術、ついに発動か?
匿名
C89であってもブロックに分けてスコープ小さくするのが常識。
ある程度処理がまとまっていたら関数にした方がいいですが。