デグレ(デグレード)

デグレ(デグレード)とは、修正や機能追加を行った結果、それまで正常に動いていた部分が動かなくなってしまうことです。英語のdegrade(品質が下がる)に由来し、「デグレード」「デグレーション」を略した、開発現場の言い回しです。

現実世界に例えると、デグレは雨漏りを直したら、今度は別の場所から漏れ始めたような状態です。直したこと自体は間違っていないのに、その影響が思わぬところに現れます。

現場での使われ方

「デグレした」「デグレっている」といった形で、動詞のように使われます。不具合の中でも「前は動いていたのに」という点が問題視される種類のものを指すため、報告を受ける側の受け止め方も厳しくなりがちです。

よくある原因

原因 内容
古い版での上書き 修正済みのファイルに、古いファイルを上書きしてしまう
影響範囲の見落とし 共通して使われている部分に手を入れ、他へ波及する
取り込みの失敗 複数人の修正をまとめる際に、一部が失われる
環境の違い 手元では動くが、本番の環境では動かない

もっとも多いのは「戻ってしまう」型

とくに起こりやすいのが、直したはずの内容が、古いファイルの上書きによって元に戻ってしまうという形です。プログラム自体に問題はなく、手順の行き違いで起きるため、原因の特定に手間取ることがあります。

信頼を損ないやすい

新しい機能の不具合であれば、まだ受け入れられる余地があります。しかしこれまで問題なく使えていた業務が止まると、利用者の受ける衝撃は大きく、開発への信頼が揺らぎます。デグレが特に嫌われるのは、この点にあります。

防ぐための手立て

もっとも効果があるのは、修正のたびに既存の動きを確かめるリグレッションテストを用意しておくことです。あわせて、ソースをきちんとバージョン管理し、誰かがもう一度目を通す確認の工程を挟むことで、大半は防げます。

起きたときの対応

発生した際は、原因を探るより先に直前の状態へ戻して業務を復旧させることが優先されます。すぐ戻せる状態を保っておくこと自体が、備えのひとつだといえます。

急ぐときほど起きやすい

デグレは、締め切りに追われて確認を省いたときや、急ぎの修正を通常の手順を飛ばして反映したときに集中して発生します。慌てているときこそ手順を守る。当たり前のようでいて、守り続けるのが難しいところです。

気づかれないまま残ることもある

毎日使う画面であればすぐ発覚しますが、月末や年度末にしか使わない処理でデグレが起きると、何か月も気づかれないまま放置されることがあります。発覚したときには原因となった修正が特定しにくくなっており、対応が難しくなります。

責めるより仕組みで防ぐ

デグレは、注意深さだけで完全に防げるものではありません。担当者の不注意として片づけてしまうと、報告が上がりにくくなり、かえって発見が遅れます。テストや確認の工程で受け止める形を整えることが、遠回りに見えて確実です。

あわせて知っておきたい用語

  • リグレッションテスト
    既存の機能が壊れていないかを確かめるテストです。
  • バージョン管理
    変更の履歴を記録し、過去の状態へ戻せる仕組みです。
  • マージ
    複数人が行った変更を、ひとつにまとめる作業です。
  • ロールバック
    問題が起きた際に、以前の状態へ戻すことです。

コメント

タイトルとURLをコピーしました