開発したシステムは、リリース後の不具合修正や機能追加によりアップデートを行うことが多々あります。
アップデート作業時は、変更・追加対象のプログラム等を修正する必要がありますが、ここで最も気をつけなければならない点がデグレードです。
今回はデグレードとは何か、そしてデグレードの原因と対策方法についてご紹介します。
デグレードとは?
デグレード(degrade)とは、新しいバージョンのシステム・ソフトウェアの品質が、以前のバージョンよりも悪くなってしまうことを指します。
品質が以前のバージョンよりも悪くなる状態というのは、例えば以下のような内容です。
- 以前のバージョンで発見されて、修正が完了したはずの不具合が、新しいバージョンで再発してしまった
- 最新のプログラムファイルの内容を、古いプログラムファイルの内容で上書き更新してしまった
上記の例のように、修正された不具合が再び発生したり、利用出来ていたはずの機能が利用出来なくなっていたりする状態がデグレードに当てはまります。
デグレードが発生する3つの原因
デグレードが発生する原因は様々にありますが、主な原因を3つご紹介します。
他プログラムのアップデートや修正などによる悪影響
システムの規模によっては、複数のプログラムが連携して処理を行なうものもあります。
その場合、あるプログラムにアップデートや修正が入ると、そのプログラムと連携している他のプログラムにも悪影響が及んでしまう場合があります。
複数のプログラムが連携して動いているシステムは、周辺に影響を及ぼさないかを確認しなければなりません。
情報共有の漏れや認識齟齬
プロジェクトメンバー間で、プログラムの修正作業やアップデートに伴う仕様変更についての情報が正確に共有されていなかったり、認識に齟齬がある場合もデグレードの恐れがあります。
特に多くの人員が関わるプロジェクトの場合は、それぞれの理解にズレが生じたまま作業を進めてしまったり、開発進捗の共有が行われなければ、デグレードはより発生しやすくなります。
ファイル管理の不徹底
プロジェクト内でファイル管理が十分に行われていない場合も、デグレードが発生する可能性が高いです。
本番サーバーに配置された最新のプログラムファイルが、古いプログラムファイルに上書き更新されてしまいデグレードとなってしまうケースは多々あります。
最新バージョンの確認を怠り、ローカルに残された古いファイルをそのまま編集してしまうことにより、この問題は発生します。
また複数人が、サーバーに置かれた同一ファイルを同時に編集してしまうと、最後に更新作業を行なった人の内容しか反映されない等の問題も発生します。
対象ファイルを編集する権限がある人が多くなればなるほどこの問題は起こりやすくなります。
デグレを発生させないための4つの対策
デグレは、ヒューマンエラーによるものがほとんどのため、対策次第ではデグレが起こる可能性を減らすことは出来ます。
デグレを発生させないための対策を4つご紹介します。
他プログラム変更前の影響値の確認
プログラムを修正する前に、そのプログラムを修正することによって、他のプログラムにどのような影響が出る可能性があるかを確認します。
受け渡しのデータに影響がないか、動かなくなる処理がないか等、思い込みは捨てて、気になるところは綿密に調査していきましょう。
また、確認作業については一人だけで行わず、複数人で確認することも、より正確性が高まるため効果的です。
ファイル管理ルールの徹底
ファイル管理はデグレードの原因の中でも非常に可能性が高い要素です。
ファイルの管理方法についてプロジェクト内で徹底、遵守するようにしましょう。
また、GitやSubversionといったバージョン管理システムを利用することも、デグレードへの有効な対策手段です。
適切な情報共有や認識のズレ防止
アップデートに伴う修正や機能追加については、開発に携わるメンバー間で適切に情報共有を行いましょう。
少しでも認識のズレがあると、そこからデグレードへと繋がっていきます。
しっかりとテストを行う
プログラムを変更した際は、その変更によって予想外の悪影響が出ていないかをテストしましょう。
このようなテストを、リグレッションテストと言います。
プログラムを一部変更するたびにリグレッションテストを都度行なっているとコストも余計に増えてしまうため、影響範囲については前もって綿密に確認しておき、テスト箇所を見極めて優先度をつけたテストを行いましょう。
デグレが発生してしまうことによる5つのリスク
デグレの発生は大きなリスクを生んでしまいます。なぜデグレを防ぐ必要があるのか、そのリスクをいくつかご紹介します。
顧客やユーザーの信用問題となる
デグレが発生すると、一番に顧客やシステムを利用するユーザーとの信用問題に繋がります。
ユーザーはシステムを実業務で利用しているため、デグレによって作業に支障があればそれだけで損害になりかねません。
場合によってはクレームの原因にもなります。
一度発生すると再発しやすい
デグレは一度発生すると、再発する可能性が高いです。
例えば、デグレを解消するためにコードを修正していると、そこからさらに別のデグレが発生してしまう恐れがあります。
デグレを解消する際のコード修正も、影響範囲を確認の上、慎重に行う必要があります。
予定外の工数・コスト発生の原因となる
開発側はコード修正・エラー対応等のリカバリに迫られるため、予定外の工数が掛かってしまいます。
また、デグレを発生させないためにもリグレッションテストの実施は推奨されますが、テストには優先度をつけて無駄なコストが発生しないように注意しましょう。
大きな損失をビジネスに与えかねない
デグレによりユーザーの業務に支障が出てしまうと、信用問題にも繋がる他、ビジネス全体に大きな影響を与えることがあります。
継続的な取引が出来なくなってしまったり、場合によってはデグレが原因のシステムトラブルで、損害賠償請求にまで発展しかねません。
デグレを発生させるということは、品質保証(QA)が正しく行えていないということになります。
QAについては、こちらの記事でも詳しく紹介しているのでぜひご確認ください。
エンジニアのモチベーション低下の恐れがある
デグレが頻発すると、その対応に追われて開発メンバーのモチベーション低下を招いてしまいます。
モチベーションが低下してしまうと集中力や注意力が低下してしまい、プログラムの影響範囲の調査や、デグレの原因の分析や対策が適当なものになってしまい、さらなるデグレを引き起こすリスクが高まります。
デグレードを理解し、適切な対策を講じよう
デグレードを起こしてしまうと、信用問題や業績への影響等、様々なリスクが生じてしまいます。
ユーザーが実業務で利用しているシステムであるならば、アップデートに伴う影響範囲は前もって綿密に確認しておき、アップデート後のリグレッションテストも実施しましょう。
デグレードの原因のほとんどはヒューマンエラーです。デグレードが起こる原因について理解して、適切な対策を講じましょう。