で、あなたは何をしたの?(完結編)



2000/03/28

 いやはや大変な事になった。もちろん「ようやくPCから半角カナや外字といった悪しき慣習が駆逐できる時代になったと思ったらi-modeを400万台もばら撒いて半角カナをばんばん使わせやがって責任者出てこい!で有名な某携帯電話会社D」の件である。結局、ソフトがフリーズする原因は別会社が作成したライブラリにあることが判明(*1)。本社のラボに持ち込んでの本格的な調査を行うことになった。それはそれで良いのだが、そこは「ようやくPCから半角カナや外字といった悪しき慣習が駆逐できる時代になったと思ったらi-modeを400万台もばら撒いて半角カナをばんばん使わせやがって責任者出てこい!で有名な某携帯電話会社D」である。この件に関して納期を遅らせることは認めないぞ、との強行姿勢。もちろんそれに意義を唱える勇者などいるはずもなく、緊急に何らかの回避策を講じなければならなくなったようだ。本部の方はこの件で大騒ぎだったらしく、昨晩は遅くまで対処方法の検討が行われていたようである。ちなみに僕のソフトは正常に動作していることが証明されたのでホッと一安心。たいへんだねえ〜、どなるんかねえ〜、と事の成り行きを傍観していた。

 それが今朝になって急転直下。なにがどうなったのか、僕がその回避策の対応をすることになっていたのであった(なんでやね〜ん)。その対処方法とは、問題のモジュールのと全く同じインターフェィスを持つ、単純に処理結果だけを正しく返すように細工したモジュール(即ちダミー・モジュール)を作成し、これに差し替えることで「見かけ上の正常動作」をさせようというものだ(なんじゃこれ?意味無いじゃん)。わざわざ別会社が作成したライブラリを利用しているのには、このライブラリでしか実現できない機能があるからである。それを「処理結果が同じになれば良い」という付け焼き刃的な発想が堂々とまかり通ってしまうことが、情けないというか恥知らずというか、動けば何でもいいのかコラ!根本的な解決になってないっつーの、ってのがまずひとつ。ふたつめは、別会社のライブラリに問題があるんだから、それを回避するためのダミー・モジュールはその会社が作成するのが筋なんではないの?なんで僕が作らなくちゃならんのさ、ということ。なにがなんだかよく分からんぞ(*2)。

 まあ「ようやくPCから半角カナや外字といった悪しき慣習が駆逐できる時代になったと思ったらi-modeを400万台もばら撒いて半角カナをばんばん使わせやがって責任者出てこい、で有名な某携帯電話会社D」の鶴の一声だったんだろうなあ。恐ろしいことにこの方針が決まるや否や、この作業は「超緊急扱い」ということで予定されていた僕の作業は全て却下(すげ〜いっぱいあるんだけど・・・)、救急車が赤信号をぶっちぎるが如く、最優先でダミー・モジュールの作成を命じられたのであった。物凄い威力を持った「鶴の一声」である。納期は明日(誤植ではない。本当に明日なのだ)。どうなることやら・・・。

(*1)ライブラリの不具合は100%再現性のあるものでは無かった(この時点の情報では100回中21回発生)。抜本的な解決が難しいだろうということで、これだけジタバタしたのだろう。だとしても僕がその対応をする必然性が無いことには違いはない。

(*2)正確には「ダミーのライブラリを使うことで、本物(不具合が発生している)のライブラリの呼び出し回数を減らし、不具合が露呈する確立を減らす」という安直な発想。特殊な処理をするライブラリなので全く使用しないという訳にはいかないのである。どっちにしろ付け焼き刃な対応には変わりはない。

2000/03/29

 まだまだ続く「昨日、あんな事を書いたらi-mode のシステムがダウンしたんだって偶然とはいえ抜群のタイミングだねえあははははでおなじみの某携帯電話会社のD」の件である。結局、まるで納得が行かないままダミーのモジュールを作成する羽目になった。納期は今日の夕方。当然、こんな状況なので仕様書も何もない状態。口頭で受けた説明のみでの開発となった(*3)。こんなのがプロの仕事と言えるのだろうか?それでも決まったことは仕方ない。必死にモジュール作成に没頭する。が、そんな中も担当者からひっきりなしに催促の電話がかかってくる。夕方までにできれば良いって言っただろーが!担当者は電話の度に「本当に申し訳ないんだけど・・・」と繰り返すのだが、その言葉にはまるで心が入っていない。それどころか「申し訳ない」という枕詞さえ付ければ、どんなえげつない要求でも許されると思っている節がある。最悪だ。あんたのためにこちとら必死こいてやってんだよ。黙って見てろ!悶々としながらの作業の末、なんとか約束の時間より前にモジュールを完成させ、担当者に送りつけた。これでもう文句は言わせない。抱えている仕事を全部振り切って全力で対応したのだ。これ以上、いちゃもんを付けられる筋合いは無い。やることはきっちりやったのだ。今日こそは早く帰るぞ。

 ライブラリを送りつけてから約一時間後、予想通り担当者から連絡が入った。「モジュール受け取りました。どうもありがとう」当然、この「ありがとう」にも心は無い。「18時頃から検証試験を行うので少しだけ会社で待機していて欲しい・・・」出たよ。そんな話は全く聞いていない。またもや自分に都合だけを考えている身勝手な要求である。まあ、こうなることは何となく察してはいたし、検証といえども1〜2時間もあれば終わるはすだ(そんなにでかいモジュールでもないし)。もちろん品質には絶対的な自信がある。動かないわけが無い。これで最後だかんね、という気持ちを胸に「了解しました」とこっちも心の無い返事をして電話を叩き切った。

 2時間後、またまた担当者からの電話が入る。「別の検証作業をやっていて、モジュールの検証が遅れている。始まるのは21時ごろになると思う」うが〜っ、別の検証作業ってなんなんだよ!(怒)。こっちは早々にモジュールを提出してんだから、とっとと検証しろっつーの。ちんたらやってんじゃないよ。もはや文句を言うのもアホらしいので「はい」とだけ答えてまたもや電話を叩き切る。人に迷惑をかけるのは大嫌いだが、迷惑をかけられるのはもっと嫌いだ。他人の尻拭いばかりやらされて、本当に嫌になってきた(*4)。

 22時頃になって、三度連絡が入る。「検証はもうすぐ始まると思う。どうしても今日中に終わらせたいのでもう少し残ってくれないか」おいおい、まだやってないのかよ(憤)。ここで一緒に残ってくれていたプロジェクト・リーダーに応対を変わる。「約束が違います。突然そんなことを言われてもこちらでは対応できません。終電が無くなるのでこれ以上は残れません。」「う〜ん、そこを何とかして欲しいんだよ。帰れなかったらホテルに泊まるとかして・・・」出た。遂に本性をあらわした。この担当者は「バカ」だったのである。この件について何のネゴもせず、行き当たりばったりで無茶な作業を請け負い、挙句の果てには無償で対応している僕に対して徹夜をしろと言ってきたのだ。さっき最悪だと言ったが撤回する。これこそ最悪である。

 徹夜だろうが何だろうがとにかく動かせば良い、というは発想は全く駄目であるということをこの担当者はまだ気が付いていない。ソフトウェアにおいて最も大事なものは何か?顧客の要求?そうだろう。納期?もちろん大事だ。でも、それ以上に大事なものがある。それはソフトウェアの「品質」だ。徹夜してやっとこさっとこ動くようになりました。まあそれも良いだろう。でもそんなその場凌ぎの対応をした、継ぎ接ぎだらけのソフトを全国展開するのか?そんな信頼性の無いものを顧客に提供して何とも思わないのか?こんなのが堂々とのさばっているからソフト業界はダメなのだ。失敗プロジェクトにはこの手の人間が必ず紛れている。ここにもいたということだ。

 あまりの図々しさにすっかり呆れ果てた僕に代わり、リーダーはその要求を頑なに拒否してくれた(これは嬉しかったねえ)。僕が対応していたら「このどアホ!」と怒鳴ってそのまま帰っていただろう。結局、今日はこのまま帰宅して明日の早朝に対応する、ということになった。こんな時間まで、始まってもいない検証の為に待機していたのだ。アホらしい。お陰様で帰宅は午前様である。いよいよ全面対決の様相を呈してきた。ここまできたら作業うんぬんではない。プライドの問題だ。

(*3)正確にはホワイトボードを使っての説明を30分ほど聞き、それをメモったものが「紙」という意味では仕様書ということになるんだろうが・・・まあ、おんなじことか。

(*4)この数時間の間にも「モジュールの仕様を根本的に変えて欲しい」だのなんだの、思いつきで言ってるとしか思えない、な〜んにも考えていない要求が次々と出された。細かい内容は省略するが「あんたプログラミングしたことあんの?」って感じの素っ頓狂な要求だった、とだけ記しておく(もちろん一笑に付しましたが)。

2000/03/30

 昨晩、あれだけ大騒ぎしていたのが嘘だったかのように、担当者からの連絡が全くない。静かなもんである。なんだよ、せっかく臨戦態勢で臨んできたのにい。気持ちが高ぶっていたからか、昨日はあまり眠れなかったんだぞ。なんて思ってたら10時30分過ぎにやっと連絡が入る。「結果が出ましたのでメールで送ります」もう声を聞いているだけでイライラしてきたので「はい」とだけ答えて電話を切った。それからしばらくしてメールが到着。内容はこんな感じだった。

緊急会議 3月30日 9:00〜10:00
検証結果
(1)問題のライブラリを改版、検証試験を行う。結果、100回中5回不具合発生。
(2)ダミーライブラリでの検証を行う。結果、100回中3回不具合発生。
出荷判定:
(1)

 (1)の件は初耳であった。本物(不具合が発生している)のモジュールの修正作業も並行して行われていたらしい。一応、不具合の発生率は下がっているが、結果を見る限り根本的な解決には至ってないようだ。(2)は僕が担当したモジュールのことである。問題のモジュールを呼び出す回数を減らした分だけ確立論的に不具合発生率は下がっている。まあ、当たり前の結果だ・・・ん?ちょっと待て。最後の「出荷判定:(1)」ってのはどういう意味だ?(1)、即ち問題の発生していたモジュールの修正版が出荷用マスターになるということか?そもそも、僕は不具合モジュールの修正が行われている、なんて話は聞いてないぞ。元々の問題はそっちにあったんだから当然と言えば当然の話だが、、それじゃあ僕がやってた事っていったい何だったんだ。抱えてる仕事を全部止めて、他人の不具合のためのダミーモジュールを大急ぎで作らされ、検証するから徹夜しろと言われ、挙げ句の果てにはそれを使わないだと!僕がこの2日間、必死こいて作っていたのは単なる「保険」だったってのか!

 人をバカにするにも程があるってんだよ。

 僕が作ったダミーモジュールはもう永久に使われることはない。この2日間は完全に無駄だったということだ。終わった。もう怒りも何もない。ようやくこれでおしまいである。ただ、最後の最後までアホだった担当者の態度は絶対に許さない。最後のメールを送ってきたきり、連絡はぷっつりと途絶えたままである。僕のモジュールが使われなくなったということを、どうしてはっきり言わないんだ。あんたの判断でこんなことになったんだよ。はっきりと「自分のミスでした」って言ったらどうなんだい。それを「結果をメールするから・・・」とかなんとか言っちゃって、やり方が汚いんだよ。こんなのが管理職なんだぜ。どうすんの?僕はこういうの根に持つからね。今後ともよろしく。

 とにかくこれでやっと本来の仕事に戻れる。納期を来週に控えている案件があるのだ。他にもやらなきゃならない仕事がわんさかある。怒ってる暇はないのだ。もうこの件については本当に終わりにする。おつかれさま。

 さて、ここで問題です。「本来3日間でやる作業を抱えていた人が、アホな仕事の割り込みが入って2日間を潰されてしまいました。残るはあと一日。この人が残りの1日で3日分の作業を取り戻すにはどうすればよいでしょうか?」(答:いつもの3倍のスピードで仕事をこなす)