仕事における過程と結果

今日はちょっと仕事の話。

僕は今運用系のチームに入って、日々の小さなトラブル対応から大きな問題があれば1つの案件としてそれを解決するような仕事をやっています。で、この前うちの会社がお客さんに導入した製品が原因と思われるエラーが発生して、その製品の開発元(某大手ITメーカー)の開発部署に不具合発生の原因調査を依頼しました。

ところがこのエラーがいろいろな要因が組み合わさったもので簡単に解決できなかったので、検証環境を作りエラーを再発させて、エラーログ取得+エラーの再現条件からどの部分でエラーが発生しているかを解析するような作業を開発元とSIer(要するにうちの会社)がそれぞれ行い、その結果を持ち寄って2者間(お客さんは報告待ち)で問題を解決することになりました。

そのミーティングでのお互いの主張。

開発元「うちの環境で再現を試みたがエラーは発生しなかった。そちらの環境に依存する問題ではないか?」
SIer「ログを解析したところ、御社のソフトウェア部分でエラーが発生している。原因調査をお願いしたい」

てな感じで埒があかず。この時点で開発元ソフトのどの部分の作りがおかしいかまで突き止めていましたのですが、相手はこっちの環境に依存しているという意見を変えませんでした(まぁ気持ちは分かるかな)。

てか環境依存って言われると、かなり広範囲の検証をしなければいけないので非常に困るんですよ。まぁぶっちゃけた話、てめーの作ったソフトで不具合発生してるんだから、そっちで環境再現しないなら現地来て直しやがれというのが一番筋が通ってる(?)と思うのですが。ともかくまずは開発元の情報を参考に、不具合があった部分を修正するようにソフトのパラメータチューニングを行い検証を重ねた結果、とある設定をすると全くエラーが出なくなりました♪

さて、この時点で3者の目的は…

・開発元…うちの環境でのエラーが出なくなること(自ソフトの不具合ではないという認識)。
・SIer…現在の環境でエラーが出なくなること。お客様に原因を説明できること
・お客様…現在の環境でエラーが出なくなること。

なので、

1.エラーが発生せず
2.適当ではなく根拠のあるパラメータチューニングでエラーを抑止していること

から、僕達的にもお客様が納得するような説明もできる。確かに開発元のソフトウェアが悪いとは思うけどこれで3者の目的は達成され、この案件は終了のはずだったのです。

が。
それをプロマネに報告すると

「確かにお客さんはそれで納得すると思うけど、本当の原因は向こうのソフトウェアの作りにあるんでしょ?だったらそれを論理的に突き止めて相手に調べてもらわないと。それじゃあ本当のエラー解決とは言えないよ。」

と言われてしまいました。うーん。

まぁ確かにこの人の言うことも一理あります。もしエラーが再発した時に根本原因が解決できてないと同じ事の繰り返しだし、相手が自分のソフトウェアに原因がないと思っているのを崩さないまま問題をクローズすると、相手にとってもよろしくないよね、と。けどプロジェクト的には、一つのエラーにかける時間は少なければ少ないほどいいわけで。ちなみに今回のエラーはそんな頻発するものではなく、優先度も高くないものでした。それだけに僕としては、エラーを抑止しお客さんが納得できる説明をした時点で「終了」の案件だったのです。またこちらでエラーが再発しないと仮定すると、これ以上この案件に関わる事=開発元のソフトウェアデバッグに無償で従事しているってことになり、そんなんだったら違う仕事するよ、ということになるのです。

もう一つ言われたのが

「このエラーを解決する事で君もレベルアップできるんだよ」

ということ。それは確かにそう。開発元の人と直接話せる絶好の機会だし、OS/ソフトウェアの深い部分まで調べて不具合を見つけ出すっていうのは今後の糧になること間違いなし!なんだけど、探求心以上に合理性を重視する僕としては、とっととこのエラーをクローズして効率よく仕事をしていきたいなぁという気持ちの方が強かったりするわけですよ。こう言うと僕に探究心がないとか思われるかもしれないけど、趣味じゃないんだからさぁ。やはり仕事として取り組む以上、結果や効率性は重視するべきだと思うんです。

ここまで書いた所で迷いが出る。そんなこと言って本当は調べるのが面倒なだけじゃないのかと。今書いたように結果だけを重視するような仕事のやりかたも出来ると思うけど、本当に探究心があるなら自分の時間を削ってでも、過程を重視した(今回のケースなら、残業して開発元に対する説明資料を作って相手に原因があることを認めさせる等)仕事のやり方ができるんじゃないかと。というか2年目で「効率性」なんて口にしたらダメなんだろうな。苦労は買ってでもしろって言うし。緩い所で線引くんじゃなく、納得するまで原因を追究することでエンジニアとしての土台が築けるんだろうな。

と思い直して、正攻法でこのエラーを解決してみようと思ったのでした。…正直去年の入りたての頃ならどんな仕事でも喜んで取り組んでたのが、2年目になってずいぶん変わってきたなぁと自分でも思いますが、そんな変わりつつある自分をコントロールしつつ仕事をしていきたいと思うやっぱり今日も残業の日。