歌って踊れるエンジニア~エンジニアの誤解 3~
エンジニアは、自分が作ったプログラムやシステムにバグはないと思っています。
そういった非現実的な思いがエンジニアを狂わすのでしょうか。バグが発生すれば、「きっと自分のせいじゃない!」、自分が出したバグであることが判明すれば、「すぐに直さなければ!」、お客様に「トラブル発生!」と迫られると、「早急に原因を特定します!」と反応してしまうことはありませんか?
【余裕のないエンジニア】
私が大規模なプロジェクトに関わったとき、開発チームとは別に20名程度のテストチームが組まれたことがありました。SIerではテストの役割を当てられるのは新人や2年目などの社員で構成されることが多く、チームの立ち上がりに時間がかかりながらも、若いだけあって高いモチベーションを保ちつつ、テストチームとしてかなり有機的に機能していきました。
やがて、彼らはゲーム感覚でバグを発見するようになり、バグを見つけるとガッツポーズまで出るようになっていました。この話は私にとっては笑い話なのですが、なかにはそのガッツポーズ見て、激怒した開発者がいました。
たしかに開発者にとって、バグを発見されたときの心境は気持ちのいいものでありません。それが致命的ものであれば逃げたくなることもあるでしょう。
ガッツポーズの是非はおいておきますが、理解しなきゃいけないのは仕事とはいえ、彼らは他人が作ったプログラムのテストを行い、バグを「見つけてくれた」のです。本来なら本番運用で発生する前にテストの段階で見つかったことを感謝すべきでしょう。
また、本番運用後にお客様のビジネスに影響する、もしくはエンドーユーザーに影響するようなトラブルが起きた場合、早急な対応を迫られることがあります。
シビアな状況だからこそ、冷静になるべきなのに焦って不適切な対処を行い、2次災害を起こしてしまうこともあるでしょう。
【エンジニアが心がけてみて欲しいこと】
何か問題が発生したとき、
「私のせいじゃない」
と宣言してしまったものの、深く調べているうちに、やはり自分が原因であることが判明してしまうことがあります。一番恥ずかしいですよね。バグや問題が発生したときには、自分が関係しているか否かに関わらず、客観的に間違いがないかどうかを疑いましょう。
また、バグを出してしまったことに対して、過敏に反応し、過剰に落ち込まないこと。開発を行っている限り、バグはつきものです。大袈裟ですが、バグとうまくつきあうことが大切です。
本番運用後でのトラブルの場合、お客様からの強いクレームに押されて我を失い、「原因を突き止め、早く直さなければ!」という心境に陥ることがあります。
原因を突き止めることも大事ですが、起きてしまったことはしょうがないと腹を括り、運用回避は可能なのか? ビジネスにインパクトはあるのか? など多方面から分析し、今すぐにシステムを直さなくても回避できる対処方法がないかどうかを探ることから考えましょう。
どうしてもプログラムを直さなければいけない場合、プログラムに手を入れることに対するリスクがあることをお客様やチーム内で共有を図り、関係者全員のコンセンサスを取る必要があります。「自分だけ」の判断で解決しようとせず、チームはもちろん、お客様も巻き込むことをお勧めします。
私の経験上、トラブル対応などイレギュラーな仕事を冷静かつ適切に行うと、普通に仕事をするよりも、お客様の信頼度はよりアップすることがあります。ピンチはチャンスとよく言いますが、まさにそうであることが多いかもしれません。
【こんなエンジニアと接するには?】
いつもは頼りがいがあるのにトラブルが発生すると頼りなくなるエンジニア。要はガラスのハートなのです。
バグを憎んで人を憎まず、できるだけ人を責めないようにしてください。普通の感覚を持ったエンジニアであれば、自分が引き起こしてしまったことは十分自覚しています。
もし、お客様の矢面に立つ立場であるならば、率先して開発者をかばってください。ITの仕事はスマートそうに見えて実際は泥臭い仕事。マネージャや上司は背中を見せることにより、開発者の信頼を得るものだと思います。
ITに限らず人は、納期や、上司の目、お客様の目など、何かしらのプレッシャーを感じながら仕事をしています。中には周りから見たら理解できないような(余計な?)プレッシャーを感じている人もいることを理解しつつ、不必要なプレッシャーを感じないようなチームや会社を作ることが必要なのだと思います。
つづく