IT用語のデグレとは?デグレの具体例5選や対策法4選など多数紹介!

IT用語のデグレとは?デグレの具体例5選や対策法4選など多数紹介!
基本情報技術者試験の試験対策はこちら>>

IT業界で使われるデグレとは


日本語のデグレは「低下する」を意味する英語の「degrade」(デグレード)を省略した、日本のIT業界特有の言葉になります。そして、デグレの意味は以前のバージョンよりもシステムの品質が低下するトラブルのことです。

具体的には、以前は正常に作動していたはずの機能が停止する、バグや不具合を修正しようとしたらかえって性能が悪化する、といったものがあります。

エンジニアにとっては避けたいデグレですが、デグレはIT業界では当たり前のように発生します。そのため、エンジニア同士の会話ではよく使われるので、エンジニア志望の人は覚えておくとよいでしょう。

英語ではリグレッション

デグレのことを英語圏のIT業界では「後戻り」などを意味する、regression(リグレッション)と呼びます。

そのため、英語圏のITエンジニアにはdegrade(デグレード)と言っても、通用しません。

英語圏のエンジニアと話す機会があるかもしれない人は、頭の片隅にでも入れておくとよいでしょう。

デグレの具体例5選


デグレの語義を把握できても、実例を理解していなければ役に立ちません。言葉の意味も理解するべきですが、デグレが現場でどのように発生するのか、デグレにどんな事例があるのかを把握する方が重要と言えるからです。

そこで、デグレの5つの具体例を紹介します。

エンジニア志望の人は、以下のデグレの例を参考にデグレに対する理解をさらに深めてきましょう。

1:他のプログラムが影響した

特定のプログラムのアップデート・修正で、他のプログラムに悪影響を与えてしまうというデグレがあります。

少しだけ詳しく説明します。

あるシステムの運用と保守を2チームで行っていたとしましょう。そこに、片側のチームが担当しているプログラムに、お客様から新しい機能の追加や変更などを要請されたとします。

当然、このチームのエンジニアはお客様の要望に合わせて修正します。しかし、プログラムの修正により、もう一方のチームが担当しているプログラムの機能の停止やバグなどが生じます。

こうして、システム全体の運用が滞ってしまうのです。

2:最新ファイルに更新していなかった

最新のファイルに更新していないこともデグレの1つです。

バージョンを管理しないために、間違えて過去のコードを利用すれば、修正がなかったものになることがあります。

コードだけの更新漏れだけではなく、仕様書などの更新漏れもチーム全体の認識に齟齬が生じ、デグレを引き起こす場合もあります。

デグレを起こさないためにも、ファイル更新は怠らないようにしましょう。

3:マトリクス表を把握していなかった

チームの誰かがマトリクス表を把握していないことで生じるデグレもあります。

例えば、あるチームの誰かがマトリクス表に従って影響調査などの作業をしたとしましょう。しかし、そのマトリクス表に他のチームで発生した不具合などに関する最新の情報が反映されていなかったりすると、他の影響調査などの作業にも悪影響が出てしまいます。

このように、マトリクス表の把握不足はデグレを引き起こすので、チーム全体が最新の情報を共有すべきなのです。

4:デバッグ用のログが影響した

デバッグログとは、不具合の原因を探して直す意味の「デバッグ」と、コンピュータの利用状況などの情報の記録の「ログ」が組み合わさったものです。

このデバッグログが大量出力されると、ログファイルのサイズが肥大化してしまい、他の機能に悪影響を及ぼすこともあります。

1日に1回など定期的にログのデータを圧縮し、データを軽くするなどの対策が必要です。

5:ソースを上書きした

ソースコードの上書きでデグレが発生することもあります。

2人が同じソースコードを修正しているときに、片側が修正を完了して既存のシステムにマージした場合には、もう片方の人が行った修正が消えてしまいます。

このように、ソースコードの上書きはデグレの原因にもなりかねないので、チーム内で連携を取るようにしましょう。

デグレによるリスク4つ


エンジニアの仕事を務めていくなら、少なくとも数回はデグレを経験するでしょう。そのため、デグレが起きたときにどんなリスクが生じるのかを把握しておくことは重要です。

リスクを把握しておけば、デグレが起きたときの対処もスムーズにこなせるでしょう。ここではデグレが発生することにより生じる4つのリスクを紹介します。

これからエンジニアになろうという人は、参考にしてみてください。

1:顧客やユーザーの信用を失う

動いていたはずのシステムが正常に作用しなくなるわけですから、顧客やユーザーから信頼されづらくなります。

クライアント目線で考えたら、バージョンアップなどがあるときに、いつも不具合などを起こされたら信頼できないのも当たり前です。さらに、一度ミスしてしまうと、顧客やユーザーは「またトラブルを起こされるのではないか?」という気持ちにもなります。

顧客やユーザーの信頼を失うと仕事も受けにくくなり、会社全体の利益に関わってくるので注意が必要です。

最悪の場合は損害賠償に繋がる

すでに顧客がお金を払いシステムがリリースされてからデグレが起こると、損害賠償も請求されることもあります。

また、後述するようにデグレが起きると不要な工数もかかることがあり、そのせいでシステムのリリースに間に合わない場合も、損賠賠償を請求される可能性があります。

このような場合は、早急に謝罪もして対処するようにしましょう。

2:想定外のコストや工数がかかる

デグレが発生すれば、当然そのトラブルを修正するために、詳細にテストや影響調査をしなければなりません。

他にもクライアントに向けた説明資料や、謝罪の対応などもしなければいけなくなります。

デグレが起こると、こうした本来必要でなかった工数やコストがかかる可能性があるのです。

3:再発しやすい

デグレは再発する可能性があります。 つまり、デグレが次のデグレを引き起こす可能性があるということです。

デグレが発生したら、修正しようとソースコードを編集したり、機能を修正するとしましょう。すると、このプログラム変更により、他のプログラムに影響を及ぼしてしまう可能性もあります。

この機能をさらに修正しようとすると、他のプログラムに悪影響が出るというデグレの連鎖が生じるというわけです。

4:リグレッションテストなどが必要になる

デグレが生じると、必ずリグレッションテストが必要になります。

リグレッションテストとは、修正によって他のシステムに悪影響が出ないかどうかを確認する作業のことです。

リグレッションテストも不具合が起きてしまった以上、顧客が安心できるレベルまで徹底しなければなりません。場合によっては、すべての範囲をテストするフルリグレッションテストの必要も出てきます。

デグレへの対策法4選


デグレを完璧になくすのは難しいかもしれませんが、減らすことはできます。

デグレの原因は人為ミスがほとんどであるため、対策を知っているかいないかでデグレが起こる可能性は大きく変わります。

ここでは、デグレをできるだけ減らせるようにする方法を4つ紹介します。

1:影響調査をしっかり行う

修正後や機能変更したときは、その作業によってどのような影響が起きる可能性があるのかを慎重に調査する必要があります。

具体的には、修正作業によって他のファイルに、どれくらいの範囲に、どれだけの影響が表れるのか綿密に調査し、リスト化することが大切です。

また、影響調査は思い込みを捨てることと、複数人で行うことも重要になります。

思い込みを捨てる

影響調査のときは、思い込みは捨てて疑いの目を向けるようにしましょう。

「ここまで影響が出ないだろう」「誰かが調査してくれているだろう」といった思い込みで調査すると、影響調査もうまくいかずにデグレを見逃す可能性もあります。

デグレは人為的なミスが大半であると頭に入れながら作業するのがおすすめです。

複数人で行う

また、影響調査を行うときは複数人でするのもよいでしょう。

影響調査を複数人ですることで、単純に調査の範囲を広げられます。結果として、複数人で行うことで調査漏れも少なくなるでしょう。

また、複数人で作業するときは情報共有ツールなどを使うと、チーム内で連携が取れてさらに円滑に調査を進められます。

2:変更・修正履歴の管理を怠らない

開発者働同士の間で、管理を徹底することはデグレの防止になります。

あるチームの誰かががファイルに編集を加えたといった情報共有がなされていない状態では、デグレが起こりやすくなるでしょう。

プロジェクトに関わるすべてのチームが、情報共有ツールなどを利用すれば、誰がいつファイルに手を加えたのかなどが把握できます。

こうした変更や修正履歴の共有はデグレの防止に役立ちます。

3:テストを十分に行う

修正後はリグレッションテストを行うといいでしょう。

ただし、いきなりフルリグレッションテストでは範囲が広すぎるので、工数やコストが無駄にかかってしまいます。

そこで、リグレッションテストの範囲は、影響範囲を的確にし、デグレが起きた場合に被害が大きくなりそうな箇所から優先的にテストするのがおすすめです。

4:バランスのよいCI環境を取り入れる

CI(Continuous Integration)環境とは継続的インテグレーションのことで、コンパイル・テスト・デプロイを自動で繰り返し実行してくれる機能のことです。

このCI環境を導入すると、開発工数の削減・テストの自動化・品質の向上などが見込めます。

テストの自動化により、手動でのテスト工数を減らし、コードに変更があったときは自動でテストが実行される仕組みを作り、早い段階で不具合を発見できます。

適切なCIツールを利用すれば、デグレも防げるのです。

デグレの具体例と対策法を知って常に備えよう!


今回は、エンジニアとして働くなら、少なくとも数回は経験するはずのデグレについて紹介しました。

あらかじめデグレの具体例と対策方法を理解しておくことで、デグレが発生する可能性も低くできますし、仮に起きても対応に困ることは少なくなります。

エンジニア志望の方は、本記事を参考に自分がエンジニアになって、デグレが起きてしまったときのことを想定するのもよいでしょう。

インフラエンジニア専門の転職サイト「FEnetインフラ」

FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。

転職をお考えの方は気軽にご登録・ご相談ください。