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

冷たい方程式(12) 渕上方式における進捗の曖昧さ回避

»

 進捗報告ミーティングとして指定された14時30分。

 あたしは手ぶらでミーティングルームに入った。自分の担当分についてなら、大抵のことには答えられる自信があったから。

 先に来ていた渕上マネージャは、何かのチェックリストに目を通していた。あたしが着席すると「調子はどうだ?」とか「順調か?」といった前置きもなしに、いきなり質問を開始した。

 「シフト管理の翌月分シフト登録画面の分析をやっているな」

 「はい」

 現在あたしは、シフト管理機能の一部の分析と設計、プロトタイプ作成を行っていた。あたしたち正社員はシフト勤務ではないが、工場に勤務しているのは契約社員がほとんどなので、シフト管理は重要な機能だ。にもかかわらず、現行の勤怠管理システムにはシフト管理機能が実装されていない。現在は、紙のシフト予定表に各自が記入し、班長などがExcelで調整している。その書式は班ごとに異なっていて、独自にマクロなどを駆使して月間のシフトを決めているようだ。この作業に担当者が費やす時間は、人数の多い班だと2日から3日以上になることも多く、今回のリプレイスで現場からの要望が最も多かったのが、シフト管理機能の追加だった。

 ただ、重要な機能ではあるものの、必ずしも2月のカットオーバー時に必須かと言うと、実はそうではない。現状、Excelベースで回っているのだから、Webベースの機能は「あれば便利だけど」というレベルでしかないのだった。あたしとしては、勤怠管理機能のコアの部分を先に進めた方ががいいんじゃないかと判断し、実際に後回しにしていた。

 しかし、先週、渕上マネージャから、シフト管理機能を優先して手がけるよう命じられた。どうも、このお方の意図するところが、あたしのような一介のプログラマには読めなくて困る。今回のリプレイスに期待している全従業員のためにも、あたしの精神の安定のためにも、何らかの深遠なる計画があることを願いたい。

 「Excelファイルによる一括登録機能はどこまで進んでいる?」

 「今のところ、各部門で使ってるシートの形式が違うので、それをどうするか検討中です」

 「具体的には?」

 「まあ、どこかの部門の形式に合わせるとか……」

 「違う」渕上マネージャは遮った。「どこがどう違う?」

 「……どういう意味でしょうか?」

 「君は今、各部門でシートの形式が違う、と言ったな」

 「はい」

 「どの部門が、どんな形式になっている?」

 あたしは言葉に詰まった。

 「えーと……それはつまり、個々の形式がどうなっているか、ということですか?」

 「そうだ」

 ――そんなことまで覚えているわけあるか

 「そこまで覚えていません」

 「ドキュメントは?」

 「一応、ありますけど」

 「持ってきたまえ」

 あたしは憮然としながら、急ぎ足で自席に戻った。

 「あれ、もう終わりですか?」亀井くんが意外そうな顔で訊いてきた。

 「まだ、始まってもいないよ」

 あたしは共有フォルダを開き、シフト管理機能のフォルダから、関連ドキュメントを開いた。急いで2部プリントアウトすると、それをひっつかんでミーティングルームへ戻った。

 「お待たせしました」

 渕上マネージャはプリントアウトを受け取ると、ざっと目を通した。

 「説明したまえ」

 「説明と言われても……」あたしは恐る恐る渕上マネージャの顔を見た。「そこに書いてある通りなんですけど」

 ドキュメントには、各部門で使用しているシートのサンプルを、部門名と一緒に載せてある。これ以上、何を説明しろというんだろうか。

 「だから」渕上マネージャは辛抱強く言った。「順番に説明したまえ」

 「はあ?」あたしは耳を疑った。「これを説明するんですか? 全部? 意味ないと思いますが」

 「意味があるかどうかは、君が判断することではない。私が判断する。説明したまえ」

 「でも……これは進捗報告ですよね?」

 暗に進捗報告にしては細かすぎるのでは、と訴えた。すると渕上マネージャは、研ぎ澄まされた日本刀のような視線をあたしに叩きつけて聞いた。

 「君の言う進捗報告とはどのようなものだ?」

 「そうですね」あたしは主に前職でのミーティングなどを思い浮かべながら答えた。「タスク毎にパーセンテージを報告するという感じで……」

 「では、シフトの一括登録機能設計タスクの進捗率は?」

 いきなり聞かれても困るなあ。適当に答えるしかない。

 「55%というところでしょうか」

 「その根拠は?」渕上マネージャは重ねて追求してきた。「何を持って100%とするのか?」

 「それは……」

 「答えなくてよろしい。答えられるわけがない」

 「……」

 「進捗管理にあいまいさは厳禁だということを、しっかり覚えておきたまえ。私が見たところ、進捗管理の意義を正しく理解している人間は、磯貝課長も含めて、開発グループには1人もいない。まことに憂慮すべき状況だ」

 確かにこれまで、まともに進捗管理などやったことはない。そもそも、進捗管理が必要となるような規模の開発案件がなかったのだから当たり前だ。

 「何度も言うが、この勤怠管理システムは重要な基幹システムなのだ。失敗することは絶対に許されない。そのためには、曖昧な要素は徹底的に排除せねばならない」

 あたしだってもちろん失敗したくはないけど、そのために細かすぎる進捗管理を行い時間を浪費するのが正しいとはどうしても思えない。といっても、渕上マネージャは、どうやら本気で言っているらしい。

 「早く説明したまえ」

 これ以上の反論は、それこそ時間の無駄でしかない。あたしはそう判断し、各部門の現場担当者から収集した一括登録用のExcelシートの内容について、上から順番に読み上げを開始した。

 「最初は鶴見工場の部品製造部が使用しているシートです。第1列が社員番号、第2列が氏名、第3列が氏名カナ……」

 読みながらちらりと見ると、渕上マネージャは熱心にプリントアウトを見つめ、あたしの読み上げに合わせて、赤ボールペンでチェックを入れていた。

 あたしが逆の立場なら、こんな細部のドキュメントなど、問題でも発生しない限り目を通そうは思わない。映画のエンドクレジットでも読む方が、まだ建設的だ。

 全部を読み上げるのに、20分ほどかかった。

 「……以上です」

 渕上マネージャは疲れた色も見せずにうなずくと、最初のページに戻り、衰えることのない熱心さで質問を開始した。

 「鶴見工場部品製造部のシートだが、これは5月分のサンプルだな。4月とか6月の場合、31日の列はどうなる?」

 「列を作りません」

 「インポートのロジックでは、どうやって31日を読み飛ばすことになっているのかね?」

 「そこまで決めていませんけど」あたしはいらいらと答えた。「最終的に使うシートのイメージも、まだ固まっていませんし」

 「だが、結局、このように横に日付のセルが並ぶ形式になるのではないのか」

 あたしは少し考えて、渋々うなずいた。

 「ええ、まあ、そうなると思いますが」

 「その場合、月の末日はどうやって判断するつもりだ?」

 そんな実装レベルの話を、ここで聞かないでほしい。

 「たぶん……」

 「たぶん?」渕上マネージャの声が厳しくなった。

 「いえ、対象月の日数を求めて、その日数分だけ順番に読んでいきます」

 渕上マネージャは、システム手帳に赤ボールペンであたしの言葉を書き取っていた。

 「重複チェックはどのように考えている?」

 「上書きです。最後にインポートしたデータが残ります」

 「警告もなしに上書きするのかね?」

 「そうですね。そのつもりですけど」

 「その仕様について、各部門担当者のコンセンサスは取れているのか?」

 もちろん取っているはずがない。そんなことまで、いちいち合意を取っていたら、要件定義が終わる前に2月が到来してしまう。

 「いえ、取っていませんが。それぐらいは、こちらの裁量で決めてしまっても問題はないと判断しました」

 「いや、問題だ」渕上マネージャは断じた。「現場と調整して、仕様について説明し、同意を文章で取っておきたまえ」

 ウンザリしたが、逆らうことはできない。

 「分かりました」

 渕上マネージャは、またもやシステム手帳に記入した。ひょっとすると、命じたことが実行されているかどうか、後日チェックするつもりなのだろうか?。

 「時刻の入力形式は?」

 これも確定していない項目の1つだ。部門によって、自分勝手な形式で入力しているので、統一するのに苦労するだろうな、と悩んでいる。

 「いろんな形式があるので、まだ調整中ですが……」返事をしながら、まずいと思った。案の定、渕上マネージャは曖昧な言葉を見逃さなかった。

 「調整中とはどのような状態だ。部門間で決めてもらっているのか、ITマネジメントとして提案しているのか」

 「次の打ち合わせで提案しようとしていたところです」本当はまだ何も決めていなかったが、面倒なのでそう答えた。

 「どんな形式だ?」

 「これです」

 あたしはプリントアウトの余白に、"09:00-17:30"と書いた。

 「時刻のエラーチェック仕様はどうなっている?」

 「エラーチェック仕様ですか?」

 「セルの値の妥当性をどうやってチェックするのか」

 ――実装するときに決めるよ、そんなこと

 心の中で吐き捨てたものの、口では神妙に、

 「正規表現でチェックします」と答えた。

 「正規表現かね」渕上マネージャは不審そうだ。「他の方法は考えられないのかね。例えば、SimpleDateFormat でparseして例外をチェックするとか」

 「それは無理です」

 「なぜかね」

 「夜勤のシフトが表現できないからです」

 ラインによっては、22時開始、5時終了というシフトもある。勤怠管理システムでは、その場合を29時と表現する。これは時刻的には正しくないので、例外になってしまう。

 渕上マネージャはうなずくと、次に進んだ。

 「契約形態による月間所定労働時間数チェックは?」

 「そこはまだ決まっていません」

 「いつ決まるのだね?」

 「まだ話がそこまで進んでいないんです」

 「来週中に決めるようにしたまえ」渕上マネージャは冷たく命じた。「いつまでも、ずるずると引きずらないように」

 「はあ」

 「昨日の作業日報にあった、シフトの承認機能についてだが、これは……」

 進捗報告は、こんな感じで続いた。

 感心せざるを得なかったのは、渕上マネージャが、勤怠管理システムの各機能について、かなり詳細な部分まで理解していることだった。磯貝課長のように「細かい部分は任せるから」という態度ではない。

 ただ、そのせいで、やたらと細かな仕様まで突いてくるのには閉口した。「法定外休日と法定休日は、何色で表示するのか」といった、どうでもいいようなことまで確認してくるのだから。

 予定の30分で終わるはずもなく、あたしが解放されたのは、1時間20分後だった。あたしはフラフラになって席に戻ると、亀井くんに交代を告げた。

 「あ、自分の担当分のドキュメントは一式持っていった方がいいよ」

 亀井くんは、不安そうな顔であたしを見た後、渕上マネージャの待つミーティングルームへ入っていった。

 「大丈夫ですか?」隣の席からムツミさんが心配してくれた。

 「ありがとう。疲れたよ」

 人と話すことは苦手ではないけど、査問委員会にでもかけられているような時間は神経を消耗させる。実装で徹夜した方が、まだ疲労度は少ないのではないかと思う。

 「どんなことを報告してたんですか?」

 「報告というか」あたしはため息をついた。「あれは、もう、進捗報告じゃなくて仕様報告よ」

 「はあ、そうなんですか」ムツミさんは目を丸くしている。

 どう考えても、PMが確認するようなレベルの話ではないことを、あの人は信じられないほどの熱心さでやっている。もっと他にやることはないのか。あのモチベーションが何に起因するものなのか、想像もつかない。

 亀井くんが青い顔で戻ってきたのは、やはり1時間以上経過した頃だった。

 「片寄さん、出番です」

 「あ、はい」

 ムツミさんはメガネを軽く拭いてかけ直すと、大きく深呼吸を1回して立ち上がった。

 「いってきます」

 「がんばってね」

 ムツミさんの小柄な姿がミーティングルームへ消えていくのを見送った後、あたしは亀井くんに聞いた。

 「どうだった?」

 「すっげえ、細かいっすね、あの人」元気だけが取り柄の亀井くんも、さすがに疲労困憊していた。「あんなの意味あるんですかねえ」

 「さあ……」

 「統計資料でダウンロードするファイルの形式は、ExcelかCSVかとか、対象範囲指定の年月日のフォーマットは何かとか、4月の場合は前ゼロを必須にするのかとか、そんなことばっかりですよ」

 「で、あんたはなんて答えたの?」

 「そんなの今の段階で決まってません、って言ったら、今度は、いつ決まるのか、って返されました」

 「ああ、あたしも、それやられた」

 「PMって、そこまで細かく知っておかなきゃいけないものなんですか?」

 「まあ心配性なのかもね。細部まで掌握しておかないと気が済まないってやつ」

 PMが仕様の詳細まで知っているのは悪いことではないと思う。ただ、実装担当者が決めればすむことまで、いちいち確認してチェックされると、一挙手一投足を監視されているようで、モチベーションが下がってしまうのだけど。それとも、これも、「高度なマネジメント」とやらの一環なのか。

 「これが1日おきに続くのかと思うと、死にたくなりますね」

 「死にたくはならないけど、ウンザリはするね」

 「あさって、年休取ろうかなあ」

 「それは問題を先送りにするだけで、解決にはならないよ」

 とはいえ、その気持ちはよく分かるけど。

 「片寄さん、大丈夫ですかねえ」

 亀井くんは、心の底から心配そうにつぶやいた。

(続く)

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

Comment(20)

コメント

saboten

事細かに仕様をあらかじめ定める手法を取るとしたら、
顧客が厄介な場合か、メンバーが信頼できない場合かなー。

渕上さんからはメンバーを信用してない印象を受けるけど、
一体過去に何があったのやら。

Edosson

渕上氏のモデルには、
菅前総理が入っているんじゃないでしょうか。
あの人も、現場の人間に任せておけ、
という忠告を無視して、
官邸から細かいことについて、自分で直接指示していたようですし。

現時点でいえることは、
進捗が思い通りに行かなかったとき、誰が悪いのか、
スラスラと答えられるんでしょうね。

hana

自分の会社の連中を見ているような気分になってきました。ちょっと違うのは、自分の会社の場合、ほぼ全部が渕上さんのやりかたに賛成していることかな。私一人、ムツミさんのような立場に置かされています。渕上さんタイプは、こういうのは無駄な時間だと思わないようですね。

へろへろ

どこかの小説で
「指揮官は最後に1回命令を出して、あとはお茶を飲んで眺めてるだけ、というのが理想」
というのがあったと思うんだけど、それとはまさに正反対だなぁ。

ところで外注を自社内に入れているということはすでに打鍵に入っていなければ
いけない状況のはずなんだけど、その時点で読み込む帳票のフォーマットが
決まっていないというレベルの懸案が放置されていたのは、明らかにまずい。
渕上氏を擁護できないのは確かなんだけど、主人公側の分も悪くなってきたな。

としろう

この案件の詳細がどうかは知らないが

>その時点で読み込む帳票のフォーマットが決まっていないというレベルの懸案が放置されていた

というのは「仕方が無い」場合も少なくないと思う。
納期が短いので詳細打ち合わせと開発が平行になる。
納期から線表が引かれるからだ。
典型的なウォーターフォールで行けていれば渕上氏の言う通りでも良いと思うが

更に客は最初は本気で打ち合わせしないで開発中は変更出来ると思っている
渕上氏のやり方でマネジメントするならばスケジュールは遅れそうだから
今回の場合は、帳票周りの確認などは別の要員を割り当てていても良いと思う。

主人公側も入出力の帳票の項目を検討していなければDBなどへの設計も
未完成に近いはずなので問題が無いとは言えないだろう。

まさと

どうなっていくのか、先を楽しみに読んでいます。

ここまで、渕上マネージャの過去が伝わってこないのが気になります。
過去にどんな開発案件を担当したのか、それは成功したのかそれとも失敗したのか…
ここまで偏執的なマイクロマネジメントをするということは、過去の経験も影響しているでしょうから。
営業中心の恵比寿本社と製造中心の横浜ブランチとはいえ、ここまで情報が隔絶しているものでしょうか?

主人公が中途入社なのはうまいと思いました。
いろいろな意味で、舞台の会社に対して客観的になれる立場ですね。

ひまひま

マネージメントとして、これはダメだろう。
前回のと合わせると進捗だけで半日近く使っているのではないか?
納期遅れ気味なのに、進捗増やして作業減らすなんて本末転倒も良いところだろう。
マネージャーの仕事は仕事を成功させることで、マネージメントすることじゃないんだけどなぁ。

banana

本名と顔さらして
「相変わらずコメント書いている人がアフォっぽいのがいい」と
ツィートするアフォがいる。

BEL

今回は正規表現がとか24:00超ネタとか出てきたけど、前回はほとんど技術ネタが
なかったから、どういう方向に行っちゃうのかなと思ったわ。

渕上さんの素性とかまだ謎な部分多くて、展開がまだまだ予測できないし、
今作は主人公サイドに必ずしも大正解でない言動がちらほらあるので
そこらへんが伏線になってるのかな、とか考えちゃって面白い。

「渕上方式」とかリアルで定着したら面白い(いやおもしろくないけど)

>「相変わらずコメント書いている人がアフォっぽいのがいい」と
>ツィートするアフォがいる
しかもその後「記事に対するコメントであって、記事をかいてる人じゃないですよ」
とかツイートしてる。そんなことはわかっているw

とおりすがり

「少なくとも一ヶ月は本当に書き込みやめることにします。」と書いておいて1週間で書き込みする人もいるしねw

banana

まったく。
愚痴っぽくなるなるので書き込まないつもりでしたが、
つられてしまいました。2回も。

elseorand

渕上マネージャーはやっぱりわからん。
ユーザーが登録に使用するファイルのフォーマットを、
優先して確定させるのは大切だが、
同時に文中の粒度で時刻について確認をしているのは、
やり過ぎ。

またPGの時間を奪いすぎ。
二日にいっぺん1時間も持って行かれたら、作業が遅れる。

やはり渕上マネージャーはExcel管理表を捨て、
テストコードを含めたソースを自分でチェックしていくべき。
こんなの「実装する前に仕様をJavadocに書け。
テストファーストでテストを最初に書け」と命令した方が、
ツールの利用ができる分まだマシ。

通りすがりの元PG

連載もコメントも楽しみにしているのですが、うんざりしてしまったので一つだけ。
bananaさんは結局、口だけで全然反省なんかしてないってことですよね。
自分で言ったことも守れないんだから。
つられた、なんて人のせいにまでしてるし。
なんて書き込むと、また釣られたなんて言い訳して書き込むんでしょうね。

くくな

まあまあ。
別に書き込みが、制限されてるわけじゃなし、
個人攻撃にならなきゃ誰が何を書き込みしたっていいんじゃないかな。

とにかく続きが楽しみです。

とおりすがり

コメントするアホウにツィートするアホウ、同じアホなら書きこまにゃ損損
どうせ書くならコメントするほうがより楽しいですよ。
後は大手SIerさんが書いてくれないですかねw

くくな

渕上さんの過去は確かに気になりますね。
SIer出身にしては、やってることがバラバラですよね。

java

この場合、SimpleDateFormat で parse することが良いとは思えませんが、一応。 JDK の SimpleDateFormat は setLenient(false) を明示的に呼ばない限り、例え時間フィールドの値が正常なレンジ外でも動くようになっています。

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
Date d = sdf.parse("29:00");

とすると、答えはちゃんと 1970-01-02 05:00:00 になります(この場合、時刻だけのインプットなので、1970-01-01 00:00:00 が基準となり、29:00 は翌日1月2日の朝5時として解釈されます)。 ですから、24:00 以降の時間判定に SimpleDateFormat が使えないというのは、誤りですね。

coq

証明駆動開発って奴がありますが・・・悪い意味で人間証明駆動開発やってるみたいな・・・

個人投資家

渕上マネージャに心の底から同情する。
PMとしての本来の仕事をこなしながらPLとしての仕事もこなさないといけないのだから大変だ。

渕上PMが尋ねているのは
作業量(全体)
進捗・完了見通し
アウトプットに対する利用部門との合意の有無
スケジュール
問題点(懸案事項)
解決方法

なんだけど、主人公はそれらの問に対して、なんらまともな回答をしていない。

体制は
PM(渕上)

PL(主人公)

担当者(請負業者)

なんだろうけど、本来はPLである主人公が把握して、聞かれる前に答えなきゃいけない。

「シフト管理Excelファイルは全部でXX種類あります。(社内の各部門と提出の有無を○Xでリストにして提出漏れがないエビデンスを見せる)
 フォーマットの差異を抽出し、XXファイルのうち○○ファイルまで終わっています。残りは今日中に終わる予定です。差異は主に時刻の記入方式とカレンダーの縦横の違いです。カレンダーは日付を横に並べる方式で統一しようと思います。
抽出結果を基に統一フォーマットを作成し、各部門の部門長にメールで送付して合意をとります。統一フォーマットの作成はMM月DD日に終わります。渕上PMに内容を確認いただいた後で、部門長に送ります。回答期限はXX月YY日にします」

と言えば、10分で済む。

ところが、主人公はまったくこうした仕様のとりまとめが出来ていない。
コードを書いていればいいと思ってる。

主人公の立場に求められているのは、コーダーとしての役割じゃなくて、仕様のとりまとめなんだと言うことを全く理解していない。

当然、仕様は一つだけじゃないから、いくつも並行して検討しているはずで、とりまとめなければならない生活部や仕様のリストとそれらの進捗状況、問題点・懸案事項をまとめた表を手元に置いて管理しなければならないので、ミーティングにそうしたドキュメントやノートや手帳を持たずに素手でやってくるなんて、あり得ない。

これじゃPMがPLの肩代わりをしなきゃならなくなるのは当たり前。

any

進捗報告とか言っておきながら実際は仕様の取りまとめかいな
なら最初からそういえばいいのに

なんでこう無駄な作業ばっかりさせるんだろうねえ

コメントを投稿する