システムが不具合を起こした場合、本来はバグの原因を突き止め、システム設計から見直して修正プログラムを適用するのが自然な流れです。しかしオンライン処理などで不具合が起きてしまうと、設計書から見直して・・なんて悠長なことも言っていられない状況となります。

そこで力技とでも言うのか、応急処置のような形で直接DBのデータを書き換えたり、手順書以外の処理を走らせたりと、なんとか強引に処理を終わらようとした経験のあるSEは多いのではないでしょうか?

今回はシステムの不具合に対し、力技でどうにかしてしまうことについて、お話していきたいと思います。

力技での応急処置は基本NG

まずシステムの運用・保守において、急なトラブルや不具合に見舞われた場合だとしても、“基本”は力技での応急処置はNGです。それは以下のような理由があるからです。

大きなバグを生み出す原因に

その場の処理をとにかく正常に終わらせようと、DBに格納されているデータを直接改変したりなどの行為をしてしまうと、その後に大きなバグを生み出す原因になってしまいます。特に緊急時の対応であれば冷静さを失っているので、余計に下手な行為をしてしまう可能性も高くなります。

実際の現場でも起こりえる話を例に出すなら、緊急時の応急処置をして何とかその場はしのげたものの、対応から一ヵ月後、DBのデータやパラメータなどを改変していたことを忘れ、次の月次処理時に大きな不具合を起こしてしまった・・というケース。このように現場判断で行った緊急処置が起因して、より大きな不具合対応となることもありますので、必ず応急処置によって行った行為については、内容はしっかりとメモをとるなどして記録に残しておくようにしましょう。

運用に手間がかかる

力技での応急処置はその場だけで、その後に修正パッチを適用するならまだしも、毎度のように力技でどうにかしているケースであれば、その分運用にも手間がかかってしまいます。

本来ならお客様運用として任せておけるような処理も、DBのデータをいじったり、手順書にはない特殊な処理をはさむようなことがあれば、どうしてもSE対応にならざるを得ません。お客様から保守費用を頂いていたとしても、その予算を圧迫してしまうことにもなります。

力技のようなSE対応が頻繁に入るようであれば、運用体制そのものを見直す必要があるでしょう。

それでも緊急時であれば、ある程度の力技も仕方ないのかも

システムは非常にデリケートな品物です。緊急時の対応だからといって、どこかをいじってしまえば、全く想定もしていなかった箇所で影響が出てしまうこともよくあります。だから”基本”は現場の判断で応急処置をしてしまうのはよろしくありません。

しかし現代のシステムは、かつてのホストコンピュータのようなバッチ処理ではなく、オンラインで動作することも当たり前。もし窓口業務での処理であれば、システムが不具合によって停止してしまえばお客様にとって多大な損害となってしまいます。

だから必要によっては力技のような応急処置も、必要と言えるかもしれません。

どうするかは各ソフトウェア企業の規定に準じよう

力技での対応が良いか悪いかは、なんとも判断しがたいところです。しかしこれだけ言えるのは「絶対に現場の人間だけで判断しない」ことです。

緊急時の対応については、各ソフトウェア企業でそれぞれ規定のようなものが定められているのではないでしょうか。「絶対に事前に定められた手順以外のことはしてはならない」とか「有識者に判断を仰いでから対応すること」など。

お客様が困っているのは分かりますが、あくまで個人としてシステム開発や保守の仕事を請負っているわけではありませんので、個人の考えだけで動くのは控えましょう。後々になって大きなトラブルに発展してしまえば、責任の取りようもありませんから。

緊急時だとしても、必ず自社の行動規定に準じた動きをとるようにしましょう。

おわりに

「今日までにこの処理を終わらせなきゃいけない」とか「窓口にはお客様が待っている」というシーンでは、とにかく目の前の処理を終わらせるために、力技のようなことで緊急処置をすることもあるかもしれません。

しかしそのような行為は想定外の行為であり、頻発してしまえばシステムの信頼性を揺るがすことにもなりかねません。そのため”基本”は力技でどうにかしないことが一番です。しっかりと分析・検証を行った上でバグ対応をするのが理想です。

ですがどうしても今すぐに対処しなければならない状況であれば、しっかりと会社の規定やルールに則り、有識者の判断を仰ぐなりの行動を取るようにしましょう。

 



【X(旧twitter)でも情報発信中】

Xを最近始めたので、フォローしてもらえると嬉しいです(エンジニア界隈の方はフォローバックさせていただきます)! システム開発に関することや、最新テクノロジーのことなど、世のエンジニアにとって有用な情報を発信してます!

"X" @TECH_KEYSYS