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

レインメーカー (24) リファクタリングとリスケジュール

»

 2020 年6 月。
 「滝沢さーん」リオが明るい声で手を挙げた。「ちょっと教えてほしいんですけどお」
 滝沢が頷いて立ち上がるのを見て、迫田が不満そうな顔をした。
 「おいおいリオちゃん。質問あれば、俺に訊けよ。担当なんだからさ」
 「あ、すいませーん」リオは可愛らしく頭を下げた。「前に滝沢さんに質問したロジックだったんで。次からはちゃんと迫田さんに訊きますってば」
 「で」滝沢が促した。「どこ?」
 「あ、ここです」モニタを指しながらリオは上目づかいで滝沢を見た。「このEstCalcGen がどうしてもヌルポで落ちてしまって」
 「ああ、これか」ソースを見た滝沢は即答した。「これインターフェースだから。具象クラスをDI してやらないと」
 「new してやればいいんですか?」
 「いや計算のパターンで実装が変わってくるから。この前、教えなかったっけ」
 「聞いたような気がしますけど」リオはエヘヘと笑った。「どうやるんでしたっけ」
 「resources の下にestCalcGenerators.properties があるから、そこにクラス名を追加してやればいいんだよ。ちょっと開いてみて」
 「りょーかいです」
 人は変わるもんだな、と田代はある種の感動とともに、二人のやり取りを見ていた。無口だった滝沢は、この数日だけで、緊急事態宣言前の一カ月分に相当する量の言葉を話している。ただし、会話の相手はリオに限られていたが。
 立っていた滝沢がリオの横にしゃがみこみ、説明しながらキーボードに手を伸ばしている。それを見た迫田があからさまに苛立ちを浮かべた。
 「おーい滝沢くんよ。頼んどいたテストケースどうなってんだ」
 「途中です」
 「急いでくれると助かるんだけどな」
 「今日中ってことだったんで」滝沢はぶっきらぼうに答えた。「夕方までにはアップしときます」
 「まあ、そんならいいけどさ」迫田は必要以上に音を立ててキーボードを叩いた。「いつもギリギリだからな。たまには余裕を持って上げてくれよ」
 「それなら」滝沢は迫田を見ずにボソッと呟いた。「指示するときにそう言ってくれればいいのに」
 「あ?」
 険悪になりかけた雰囲気に、田代が何か注意すべきか、と考えたとき、リオが立ち上がった。
 「ごめんなさい、迫田さん」深々と頭を下げる。「あたしが滝沢さんの負荷も考えずに、気軽に頼んじゃったのがいけないんですよね。これからは気を付けますから」
 「ああ、いや」気まずくなったのか、迫田は視線をそらせた。「リオちゃんが謝るようなことじゃないよ」
 「だったらいいんですけど。あ、そうだ、迫田さんに教えてもらったExcel のセルに時間だけ出力するやつ、あたしがやってもうまくいかなかったんで、後でもう一回教えてもらっていいですか」
 「おお」たちまち機嫌を直した迫田は陽気に笑った。「いつでもオッケーだよ。好きなときに来な」
 「あざーす」
 この見る者を虜にする眩しい笑顔は強力な兵器だな。田代は苦笑した。迫田も滝沢も、それを理解しているのかいないのか。とにかくチーム内の雰囲気作りに、リオが一役買っていることは確かだ。
 「戻りましたー」
 ドアが開き、営業の福島を先頭に、西久保と雨宮が入ってきた。福島は田代のデスクに来ると、やや気落ちした表情で報告した。
 「本番稼働は10 月まで延期ということに正式決定しました」
 「そうか」
 2 月にダイヤモンド・プリンセス号が横浜港に入港したときは、まだ国内で死者が確認されていなかったこともあり、深刻ではあるが、どこか他人事だと捉えていた新型コロナは、その後、急激に拡大し、4 月には緊急事態宣言が発令されるまでになった。田代の職場では、会議が全てリモートに切り替わったぐらいで、周囲に感染者が出てもいなかったのだが、ミノカモ精機では工場の一つでクラスターが発生し、操業が中止される事態になった。社員は数週間にわたって自宅待機を命じられ、当然のことながら、開発中の調達システムリニューアル案件も、完全にストップしてしまった。
 要件定義もシステム設計も終わっているのだから、開発自体は進めてもいいのでは、と田代などは思ったのだが、システム開発にはどうしても手戻りというものが避けられず、エンドユーザとエースシステムの間で、定期的に仕様の調整などが続いていた。それらの打ち合わせが全てキャンセルとなった結果、ジェイビーからグルーに問い合わせを投げても、一向に返信がない、という状態になってしまったのだ。
 当初のスケジュールでは、GW 明けに本番稼働が予定されていたが、緊急事態宣言発令と同時に延期になった。工場の操業自体は、5 月末の緊急事態宣言解除と同時に再開されたが、システム部門を含む事務部門は一部が自宅待機のままだった。リモートでの打ち合わせは「細かいニュアンスが伝わらないから」という理由で忌避され、4 月から5 月はどのマイルストーンにも、全く到達できずに過ぎ去っていった。
 今日は久しぶりに関係者が集められ、営業の福島が西久保を連れて参加していた。スケジュールの線引きをやり直した結果が伝えられる、ということだったので、雨宮もPMO として同行した。
 「10 月か」田代は渡されたスケジュール表を眺めた。「とにかく、やっとゴールが再設定されたわけか」
 ジェイビーではプロジェクト毎にチームが結成され、終了と同時に解散する方式を採っている。特定のメンバーに、スキルや実績が偏るのを防ぐためだ。カットオーバー後に発生する不具合対応や、微修正は元メンバーの誰かが対応する。これまで、この方式は特に支障なく機能していたが、感染症の流行によって経済活動が停滞する、という事態を想定しているはずもない。ミノカモ精機プロジェクトは、数ヶ月にわたって開発そのものが宙に浮いた状態になり、メンバーは手持ち無沙汰になってしまった。プロジェクト自体は継続中のステータスのままなので、チームを一時解散することもできない。
 やむなく田代は、作成済みのソースに対して、リファクタリングをかけることにした。納品物のクオリティは上がるし、メンバーのスキル向上にも役立つ。残業はしないこと、という条件で、田代が選んだクラスを各メンバーに割り当て、ソースの改善を命じたのだ。
 時間稼ぎの作業だと非難が上がることは覚悟の上だったが、意外にも、この作業に一番真面目に取り組んだのがリオだった。リオなりにマスコットガールからの脱却を目指しているのか、と最初は感心したものの、日が経つにつれて、そればかりではないことがわかってきた。
 リオのスキルはチームの中で最も低い。だから不明点が多いのは仕方がないことだ。問題は、その解を得る方法が、ネットや書籍を検索するのではなく、他のメンバーに質問するという手段であることだった。
 質問の対象になったのは、迫田と滝沢だった。理由は明白だった。西久保はリオの同期で、まだ経験も浅く、自分の作業だけで手一杯だ。それに以前、リオのタスクを抱え込んで問題になったこともある。東浦は穏やかな性格ではあるが、仕事に対しては厳しい面があり、自分で努力しないプログラマに対しては嫌悪感すら抱いている。リオに対しても例外ではなく「ググレカス」の意味の言葉を投げかけたのも一度や二度ではない。田代はマネジメント業務で多忙なので、必然的にリオは迫田と滝沢を相手にすることになった。
 最初はプログラマとしてリオの質問に答えていた二人だったが、奇妙な競争心のようなものが生じるのに、それほど時間を要しなかった。若くて綺麗な女子に質問されるのは悪い気はしない。しかも上っ面だけの質問ではなく、きちんと理解しようとさらに突っ込んだ問いを重ねてくるとなれば、教育欲が刺激されるのは当然だ。二人ともリオを相手にする時間が次第に長くなり、その時間を楽しむようになってきたようだ。同時に、自分ではない相手にリオが質問しに行くことが、面白くないと感じているのが傍目にも明らかだった。
 リオが意図的に二人の先輩社員の嫉妬心を煽っている、とまではいかなくても、二人の好意を理解した上で利用しているのは明らかだったので、田代は何度となく注意すべきではないかと考えた。だが、リオが質問することで二人の業務に支障ができるわけではない。職場の風紀を乱している、というほどではない。田代こそが嫉妬しているのでは、などと勘ぐられるのもごめんこうむりたい。そもそも、後輩が先輩に指導を仰ぐのはごく当たり前のことだ。たとえば迫田が指導という名目でリオの時間を拘束したりしていたら、注意すべき状況だといえるが、リオの方から二人に足を運んでいるのだからどうしようもない。
 それもこれも、と田代はスケジュール表に書き込みを入れながら考えた。開発スケジュールが宙ぶらりんの状態なのが原因だ。小人閑居して不善を為す。人間、ヒマだとろくなことを考えない。開発が再開して、マイルストーンを意識する日々に戻れば、各自のタスクに精一杯で余計なことを考えることもないだろう。
 「これは確定スケジュールなんですね」田代は福島に確認した。
 「カットオーバーとしてはそうだね」福島は頷いた。「ただ、ベンダー間で進捗の差が出ていることは考慮してくれていて、二次開発分になっていた機能のいくつかを、可能なら引き受けてもらいたい、ということも言われた。もちろん、追加見積ということになるんだが。どうかな」
 「内容にもよりますが、今のところ手が空いている状況なんで、タスクを増やせるのはありがたいと言えますね」
 「だろうな。うちの割り当て分を一覧でもらってきたから、早めにやれるぶんを決定して回答したい。どれぐらいかかるかな」
 「今日は水曜日ですね」田代は卓上カレンダーを指で弾いた。「今週中にアサインを決めて、月曜日に回答ってことでどうですか」
 「それでいこう」
 「よし、みんな聞いてくれ」田代は手を叩いて、メンバーの注意を引いた。「もう一度、タスクを再定義するから、今やってるリファクタリングは今週中に完了してくれ。今週中に終わりそうにないソースは、元の状態に戻す。いいかな」
 メンバーたちはそれぞれ頷いた。迫田と滝沢はつまらなそうだ。
 「雨宮さん」田代は隣の席に顔を向けた。「何かありますか?」
 「いえ」雨宮は無表情で首を横に振った。「特に何も」
 だろうな。と田代は声に出さずに呟いた。開発が停滞し始めて以来、雨宮の仕事もほとんどない状態で、毎日、律儀に出社はしているものの、一言も発言しないで退社することも多い。開発にも口を出すことはなくなっていた。ただ、リオとはたまに外で待ち合わせて飲みに行ったりしているようだ。偶然、その光景を見かけた田代がそれとなく聞いてみたところ「女子会みたいなもんです」と答えが返ってきた。「でも、やっぱコロナで盛り上がらないんで、早々に解散しちゃってますけどね」とリオは笑っていた。

 ◇ ◇ ◇ ◇ ◇

 翌日、田代がランチから戻ると、争いが勃発していた。
 「......double でやれって言っただろうが」迫田が怒鳴っていた。「なんで勝手にBigDecimal なんか使ってやがんだ」
 「double だと小数点以下の数値が狂うことあるって知らないんですか」滝沢が言い返した。
 「このクラスじゃ、そこまでの精度は要求されてねーよ」
 「精度の問題じゃないでしょう」
 「アホが」比較的冷静な滝沢に反比例するように、迫田は激昂していた。「仕様がdouble になってるだろうが。字も読めねえのか」
 「内部的にBigDecimal を使うなとは書いてませんよ」
 「書いてなかったら何やってもいいのか、あ?」
 「いいんじゃないですかね。要は正しい結果を返せるかどうかでしょう」
 田代はマスクを外して怒鳴った。
 「止めんか!」
 迫田と滝沢は同時に田代の方を見て、驚いたような顔で口を閉ざした。そこまでの声量で怒鳴り合っていたのか、と初めて気付いたように。
 田代は室内を見回した。西久保はランチで席にいない。東浦は自席にいたが、言い争っていた二人に侮蔑に近い視線を注いでいる。
 リオは滝沢のデスクの脇に立っている。その上気した顔には恍惚とも愉悦とも取れる表情が浮かんでいる。田代はぞっとした。二人の男が自分が原因で争っている状況を、悲劇のヒロイン気取りで楽しんでいるように見えたのだ。
 雨宮が立ち上がった。無表情を装っているが、満足そうな態度は隠しきれていない。
 「呆れたものですね、このチームは」雨宮は田代に言った。「メンバーのコントロールもリーダーの責務だと思うのですが。違いますか?」
 田代は雨宮を睨んだが、とりあえず無視して、一番客観的に状況を説明できそうな東浦に向き直った。
 「何があったんですか」訊いてから思い直した。「あ、ちょっとこっちで」
 目の前で事情を説明されれば当事者たちも気まずいだろうし、東浦も話しづらいだろう、と考え、田代は隣のミーティングルームに移動した。ドアを閉めて、改めて訊くと東浦は醒めた目で話し始めた。
 「例によって木内さんが滝沢さんに質問してたんです。内容はよく聞こえませんでしたが、消費税率を算出するロジックみたいでした」
 田代は頷いた。確かにリオに、該当するクラスをアサインした記憶がある。
 「それを迫田さんが聞いていたみたいで、途中から口を挟み始めたんです。滝沢さんは相手にしなかったんですが、迫田さんがしつこくて。double とBigDecimal のどっちを使うか、みたいな話だったようです。それであんな具合に」
 「何やってるんだ......」
 「どっちも譲らなくて」東浦は肩をすくめた。「技術論じゃなくて、もう感情論になってて。見てられなかったですよ」
 「止めてくれればいいのに」
 「冗談でしょう。どっちかの肩をもったら、こっちにも火の粉がかかるじゃないですか」
 「木内さんは?」
 「あれは問題児ですね」東浦は断言した。「わざともめるような質問をした、とは思いませんが、どっちにもいい顔しようとして、結果的に両方を追い込んでるんですから。意図的だとしたら、それはそれで、すごい才能ですね。ま、システム開発会社じゃなくて、キャバクラあたりでこそ生きる才能ですが」
 「......事情はわかりました」
 礼を言ってドアノブに手をかけた田代を、東浦が引き留めた。
 「これは忠告ですけど」
 「なんですか」
 「技術的にどっちが正解、という方法で勝ち負けを判定しない方がいいですよ。負けになった方のダメージが大きすぎるので」
 「どうすればいいと思いますか」
 「あくまでも職場で怒鳴り合った行為そのものだけを問題にするんですね。それならケンカ両成敗で片が付きます」
 「なるほど」納得した田代は、東浦に頼んだ。「すいませんが、迫田を呼んできてもらえますか」
 「......迫田さんですか」
 「滝沢くんを先にすべきですか?」
 「いえ」東浦は躊躇いながら答えた。「私ならまず木内さんと話しますね」
 「......ああ、なるほど。じゃあ木内さんを」
 まもなく入ってきたリオは無邪気な笑みを浮かべていた。
 「なんですか」
 「木内さんさあ、ああいうのはもう止めてくれないかな」
 リオはキョトンと首を傾げた。
 「ああいうのってなんですか?」
 「迫田と滝沢くんに思わせぶりな態度を取るってことだよ」
 「よくわかりませんけど」リオは本当に理解できない、というように目をパチパチした。「思わせぶりな態度って。あたしはただ、わからないことを質問してるだけなんですけど」
 「木内さんぐらい美人なら」田代は少し冗談めかして言った。「自分がどんな態度を取れば男を操れるかぐらい、よく知ってるでしょう。迫田と滝沢くんは、今、木内さんにとってどっちが有用な人間かアピールする競争に突入しちゃってるんだよ。それぐらいわかるよね」
 「......あたしが悪いっていうんですか」
 「いや、そこまでは言わないけどね。昨日も言ったように、やっとスケジュールも決まって、新しい実装も追加されるわけだから、これから忙しくなってくるんだ。メンバー同士がいがみあってても、何の得にもならんのだよ」
 「どうしろって言うんですか」
 「迫田と滝沢くんに質問するのは止めてくれないかな」
 「でも、どうしてもわからないところは......」
 「とりあえずネットの掲示板あたりで質問してみるのはどう?」田代は提案した。「なんだっけ、15 分考えてわからなかったら質問してみようってやつ」
 「teratail ですか。やってみたんですけど、なんていうか、初心者には冷たい感じで......」
 質問の仕方が悪かったのでは、と思ったが、それを指摘しても仕方がない。一度苦手意識を持ってしまうと、再チャレンジが難しいのもわかる。
 「東浦さんに質問しないのも同じ理由?」
 「あの人」リオは声を潜めた。「優秀かもしれないけど、なんていうか、できない人をバカにしてる感じありません? まさに掲示板的っていうか」
 思わず田代は苦笑した。
 「職人だからね、東浦さんは」
 「ついでに言うと西久保は前に言われたんで、あまり頼らないことにしてるんです。そもそも訊いてもわからないことも多いんで。ってなると、どうしても迫田さんか滝沢さんになっちゃうんですよね」
 「自分で一からドキュメントとかを読んで調べてみるのも勉強になるんだけど」
 「そういうのって英文が多いじゃないですか。中途半端に理解して迷惑かけるより、ちゃんと知ってる人に訊いた方が確実ですよね」
 「ああ、まあ、確かに」
 やりにくい。田代はため息をつきたくなった。リオをチームから放出すれば、多少のわだかまりは残ったとしても、とりあえずの解決にはなるだろうが、その権限は田代にはない。田代にできるのは、チーム編成を担当する業務執行部に話をするぐらいだが、過去の例から言っても、よほどの損害を与えたなどの理由がない限り認められることがないのはわかっていた。人間関係が理由でチーム編成変更を認めていたら、仲良しグループばかりになってしまうからだ。
 「わかった」田代は決断した。「じゃあ、これからは何かわからないことがあったら、とりあえず自分で調べてみる。それでもわからなかったら、俺に訊きにきていいよ」
 「ほんとですか」リオの顔が明るくなった。「でも田代さん、忙しいんじゃ......」
 「ヒマではないけどね。大抵のことなら答えられると思うし、どうしても手が離せないときなんかは、メンバーの誰かを指名するから」
 「わかりました。ありがとうございます」
 「言っとくけど、何でもかんでも訊きに来るようなことはやめてね。ちゃんとネットで検索して、一通り考えてからにして。じゃないと俺も掲示板的態度で応じるから」
 「はーい」リオは可愛らしく敬礼した。「りょーかいっす」
 「じゃあ、そういうことで。迫田と滝沢くんに来るように言ってくれる?」
 リオは弾むような足取りで出ていった。
 これがとてつもない悪手であることに、田代は気付いていなかった。

(続)

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

Comment(8)

コメント

もくろむ弟

そりゃ悪手だろ
蟻んコ

匿名

こりゃ田代が悪いな
マネジメントは技術ではなく雰囲気だとよくわかる

匿名D

>木内さんにとって(どっちが)有用な人間かアピールする競争に突入


()内が抜けてるんじゃないかなあ?


雨宮女史は、マウンティングにしか興味がないのな。
まあ、それしかできないんだろうけど。


それにしても。
迫田氏と滝沢氏じゃなくて自分を頼れと命じたリオ嬢本人に、
二人を呼び出させるのか。
自ら火薬庫に火を放り込んでるんじゃ救いようがないなあ。

A

自分を頼れと話した田代は悪手… なんだろうなとは思うのですが、この場合の最適解はなんでしょう?
東浦に振るのは選択肢かなと思いましたが、もし東浦も存在していないチームだとしたら?
自分も同じ状況なら同じこと言っちゃいそうだなと思いました。

リーベルG

匿名Dさん、ご指摘ありがとうございます。
「どっちが」抜けてますね。

ゆう

>自分を頼れと話した田代は悪手… なんだろうなとは思うのですが、この場合の最適解はなんでしょう?
興味深い問いですね、何でしょう、、、
 
まぁ後釜を誰に振っても、その人が迫田・滝沢の恨み(妬み?)を買いそうなので、
自分なら、二人以上に分散させますかね。。。
田代と東浦とか、東浦と西久保とか。
これも最適解という気はしないですが。

匿名D

そもそもなぜ東浦氏がリオ嬢と最初に面談しろといったのか。
それは、彼女と二人を引き離すためです。
だからこの場合は、次に2人との面談が終わるまで、接触させてはいかんのですよ。
その2人との面談も、最初に議題にすべきは、口論を両成敗に持っていくこと。
先にリオ嬢との絡みに触れると、確実に爆発します。
田代氏はリオ嬢に2人を呼びにいかせたことで、
東浦氏のお膳立てをオシャカにしたわけですな。


なんか、田代氏は色々と見えていないですねえ。
まあ、いい年こいた大人が何やってんの、とは私も思いますが。


女子会は相変わらず続いているらしいけど、雨宮女史が煽ってたりするのかな?

修羅場

「なんか二人じゃ頼りないから俺に頼れって言われてー」

そして修羅場へ

コメントを投稿する