システムにはさまざまなトラブルがつきものです。
トラブルが、作りこんだアプリケーションのバグである場合、問題は大きいが、トラブル自体はシンプルなのです。
このようなことを書くと、「ひんしゅく」を買ってしまいそうですね。
なぜシンプルなのかというと、この場合は、障害であるプログラム、もしくは、設計内容を改めることでトラブルが解決する、というように、解決方法が明確であるからなのです。
また、開発側は、申し訳ないという加害者意識や、責任を明確に持つはずですので、はっきりしていて、シンプルなトラブルだと表現しました。
トラブルの原因を発見する能力もSEには重要です。
例えば、
・テストサーバーでは、正しく動作するのに、本番機では、正しく動作しない。
・数ヶ月間、順調だったにも関わらず、突然、正しく動作しなくなった。
というようなトラブルであれば、環境、データ、操作の「何が違うのか」といったことを調べる必要があります。
このとき、思い込みは禁物です。
「何も触っていない、何もしていない。だからプログラムのバグではなく、顧客の運用に問題があるんだろう」
このような安易な考え方こそが、解決への障害となることが多くあります。
だからこそ、若いうちに上記のような失敗の経験をしておくべきなのです。
本当に、バグが原因でないかどうかは、どんな時でも、具体的に証明することが求められます。
バグが原因でないと証明できる前に「自分の問題ではない」と決めつけてはいけません。
さて、問題は、原因は分かったものの、誰の責任なのかが分からないときです。
例えば、うまく動かない原因が、複数の環境やデータの組合せであったとか、動くはずの設定で動かないとか・・・まぁ、いろいろ考えられますね。
こういった場合に、SEが一番陥ってはいけない状態は、「当事者意識の欠如」でしょう。
お客様が「当事者意識が高い」のは、当たり前のことです。
自分の注文したものが、正しく動かなければ、納得するわけがありません。
ところが、時にシステムに携わるSEが、「OSやハードのメーカのせいじゃないか?」とか、「どうしたらいいか分からないが、当社の責任ではない」といったところに気持ちが行ってしまうことがあります。
それは、一つには、目先の仕事の忙しさのせいかもしれません。
確かに、自分がやらなくてよいことまで、手を拡げることができるほど、余裕はないものです。
しかし、仕事が目先、忙しくない人がいるのでしょうか?誰しも常にやるべきこと、スケジュールに縛られて仕事をしています。
その中で、アクシデントのように、トラブルが舞い降りてくるわけです。
「もともとの提案がいけない」「営業が安易に請けるからいけない」などという思いが出てきたとしても、そのような気持ちは、即時で判断すべき、行動すべきことの足かせになるばかりなのです。
解決方法に、「受注そのものをキャンセルさせていただく」という究極の方法があります。
しかし、「その仕事をやらなくてもよかった」ということは滅多にないでしょう。
本来は、解決すべきであるはずなのです。
解決できないトラブルが幾つもあることは、この世界に生きる人であれば分かっています。
しかし、システムというのは、常に思いがけないトラブルがつきものなのです。
「何がうまくいっていて(正しく動いていて)、何がうまくいっていないのか(正しく動かないのか)」
細かな検証を、1つずつしていくことが、まず第一です。
次に考えられるのは、顧客と現状の確認をしながら、妥協できるところは、運用やコストで妥協していただく、ということでしょう。
直せないとしても、諦めてはいけないのです。
しかし、直し続ける間、顧客がどう運用すべきかをきちんと確認する必要があります。
大切なのは、結局、どんな対処をするにせよ、どこまでやるか、やらないかは、SEと顧客の意思にかかっていることを忘れないことでしょう。
トラブルに負けないコツは、
・当事者意識を強く持つ
・できること、できないことをなるべく早く切り分ける
・別の方法をありとあらゆる角度から調査する
・小さなテストを実行する
・顧客と、とことん誠意をもって話しあう
他の会社の人も含めて、相談ができる技術者を、多く味方につけることも、重要なポイントといえるでしょう。
Vol.00133