オルタナティブ・ブログ > プログラマー社長のブログ >

プログラミングでメシが食えるか!?

ネットワークシステムのリリースの難しさ

»

先日、あるネットワークシステムのプログラムの入れ替えの立ち会いを徹夜で行いました。ネットワークは今や社会基盤になっていますので、入れ替えは利用者の少ない夜間ということが多いのです。さらに、入れ替えの手順は事前に綿密な計画を立て、分刻みのスケジュールで、手順通りに作業するというスタイルがほとんどです。

そこまで念入りにやっても、人間がやることなので、ミスが起きてしまうことがあります。もちろん、入れ替え手順と同時に、切り戻し手順も事前に決めておきますので、失敗した場合にも対応できる準備はしてあります。

ネットワークシステムの難しさは、事前の試験で完全に問題が見つけられない場合が多いことです。インターネット向けのサービスなど、非常に多くの通信が行き交うシステムの場合、本番環境と同じ状態を、試験環境で作り出すことが非常に難しいのです。何万台もの端末がランダムにつながってくる状態はなかなかシミュレータでは作り出せません。

先日の入れ替えでも、非常に単純なミスにより、入れ替えを失敗しました。プログラムの修正も正しかったですし、検証環境での確認でも問題を見つけられなかったのですが、本番環境にリリースして、朝のアクセスが増える時間帯になって問題が表面化しました。

問題が起きると、詳細な報告や、対策などの検討、さらに、再びリリースするまでの日程の調整など、非常に多くの関係者に迷惑がかかってしまいます。そのため、ネットワークシステムに限りませんが、システムのリリース前には胃腸の具合が悪くなったりして体調を崩す人も少なくないくらいです。

しかし、現状のままでは、システムの発展がありません。顧客からは次々と新しい要求が出てきますし、他社との差別化のためにも更新は欠かせないものです。逃げていては勝てないのです。

企画・開発側は新しい課題を何とかすべく、試行錯誤しながら開発し、リリースに挑みます。人がやることなので100%確実に成功するとはいかないのですが、それでもチャレンジしなければと、リスクに立ち向かいます。

一方、運用・あるいはユーザとしては、使えるのが当たり前ですから、失敗には非常に厳しい見方をします。

開発側も、失敗したくてやっているわけではありません。リスクがあることを理解した上で、それでも何とかしなければと取り組んでいるのです。失敗に対して冷たい叱咤を浴びせられると「だったら、もうやらないよ!」と切れてしまいそうな状態で取り組んでいるのです。

失敗を大目に見て欲しい、ということではなく、より良くなるためにがんばっているという気持ちを、少しでもわかってもらえたら、リスクに立ち向かっている開発メンバーたちはもっとやる気を出して積極的に取り組むのにな、と思うことはよくあります。特に、最近は低コスト短納期で対応を要求され、その上で失敗は決して許さない、といわれると、本当に逃げ出したくなる人が多いのではないでしょうか。

そんな状態ですので、私は前向きにがんばってくれているメンバーが失敗しても叱責はまずしません。言わなくても本人が一番責任を感じていますから。一緒に取り組んでくださっている、発注側の担当の方から、「しっかり挽回してくれれば問題ありませんよ。頼りにしてますから。」と言っていただけたら、本当にメンバーは涙が出るほどうれしいものです。実は失敗した場合に一番辛いのは、失敗した本人より、発注側の担当の方だと思います。その方からそういう言葉をかけてもらえたら、もう、どんなことでもがんばります!と思うことでしょう。そうやって、修羅場を一緒に切り抜けた関係というのは、一生の宝になるものです。私も20年以上開発の仕事をしていますが、そういうお客さんたちとは、今でも飲みに行くなどのお付き合いが続いていますし、お互い困ったときには相談しあえる仲になるのです。

「失敗は成功の元」
「雨降って地固まる」

失敗してしまっても、しっかりリカバリーすれば、よりよい状態が待っていると信じ、がんばるしかありません!

Comment(0)