システム改修とは?システム改修の流れやポイントを詳しく解説

この記事はこんな人向け

  • システム改修を発注する際の注意点を知りたい
  • システム改修を行う際の注意点ついて知りたい
  • システム改修について検討したい。相談したい。

システム改修とは

システム改修とは、既存のシステムの不具合やセキュリティの脆弱性の改修、機能改善・アップデート、UI(アプリデザイン)の変更など、現行のシステムが抱える課題や問題点オン解決や機能・操作性のアップデートを行うことを目的としています。

システム改修を検討すべきタイミング

システム改修を検討すべきタイミングしましては、企業やシステムの状況により様々ですが、検討すべきタイミングとしては下記のような要望がでてきたタイミングが適切であると考えられています。

  • セキュリティ脆弱性が発見(指摘)された。
  • 従量課金制などによるランニングコストが日々増加している。ランニングコストを削減したい。
  • システムの不具合が多数発生し、問い合わせやクレームが多発している。
  • UIの操作性が悪く、操作性を改善したい。
  • 機能不足や機能低下を感じている。
  • システムの処理速度が遅く、業務の生産性を著しく低下させている。
  • OSやミドルウエアのバージョンが古い。
  • 法改正等の外的要因がある。

システム改修の流れ

システム改修をする際の主な流れは、以下の通りです。

  1. システム改修の目的を明確にする
  2. システム改修の対象・範囲を決定する
  3. システム改修の対象の(ベンダーと相談し)目標を決定する
  4. 現システムの現状調査を実施する

   システム構成やソースコードの解析などもこのフェーズに含まれます。

   システムの仕様の確認などもこのフェーズに含まれます。

  1. システム改修の設計
  2. システム改修の実施
  3. テストの実施
  4. 検収
  5. 保守・運用

システム改修も、新規でシステムを開発する際と同じように要件定義からはいります。上記では、1~3が所謂要件定義に当たります。1~3の工程で目的や対象となるシステムや機能を明確にすることがシステム改修期費用を抑え、システム改修期間を短縮化することができますので、非常に重要な工程となります。

4の現システムの現状調査やソースコードの解析は、技術者の技術レベルが要求される工程です。

たまに、システムのアーキテクチャへの知見が少なかったり、ソースコードを読み解く力や経験が少なかったりする場合、システム改修後の品質などの結果に影響がでてきますので注意が必要です。

システム改修にかかるコストは、システムの規模、内容、OSやミドルウエア、開発言語などの違いによって様々です。工程4の“現システムの現状調査”後に正確な調査結果を元にシステム改修にかかる工数を算出することがベストです。

システム改修を行う際の注意点

システム改修を行う際の注意点

1.改修範囲を絞る

システム改修の流れでも書きましたが、システム改修を行う対象と範囲を明確に決めることが重要です。システム改修を行う対象を特に定めず、アジャイル開発のように毎週課題を挙げ、その課題に対し、システム改修を行う方法もありますが、改修した機能の影響が後々システムの不具合として出てくるなどのリスクが常に伴いますので、予めシステム改修をおこなう対象と範囲を明確にしたうえでシステムの調査を行うことがリスクを最小限に抑える最善策となります。

2.テストと品質

システム改修を行う上で、しっかりと詰めておきたいのが「テスト」です。テストを計画する上でシステムへの理解不足やソースコードの読めない所謂テスターがテストをする場合は、システム改修後の品質に大きな影響がでてきますので、テストの内容についてはしっかりとしたテスト内容の計画が重要になります。

3.システム改修と別ラインで開発チームが動いている

システム改修を担当する開発チームとは別に、既存のシステムを開発している開発チームがそのまま開発を継続しているケースがあります。

開発チームには、常にビジネス目標に対して達成を求められていますので、同時に2つの開発チームが稼働すること、つまり平行開発は特に珍しいことではありませんが、ソースコードのバージョン管理とコンフリクトに注意しなければなりません。

コンフリクトが発生すると、同一行のプログラムがブランチによって異なる為にマージすることができなくなります。

システム改修を行う場合は、平行開発する開発チームがあるのか、どのようなスケジュールでどのような開発内容を進めているのかを確認しながら、コンフリクトを解消し、マージする為の期間とリソースを確保しておく必要があります。

4.デグレードテスト

デグレードテストとは、システム改修によってソースコードを書きなおした結果、システムの機能が従来までの動作と異なった動作や機能自体の低下、システム改修を行ったことによる新たな不具合が発生していないかを確認する為のテストのことです。

デグレードテストと似たような意味をもつリグレッションテストというテストがありますが、リグレッションテストはデグレーションが起こっていないかを検証するテストのことです。

まとめ

システム改修は、システムの様々な状況によって行われますが、最も大事なことは要件を明確にし、システム改修を行う対象と範囲を明確にすることです。

より明確な要件と対象・範囲を絞ることで、システムを、より安全で、快適に使うことができるようになるのがシステム改修です。

監修

APPSWINGBY CTO川嶋秀一

株式会社APPSWINGBY
CTO 川嶋秀一

動画系スタートアップ、東証プライム R&D部門を経験した後に2019年5月に株式会社APPSWINGBY 取締役兼CTOに就任。
Webシステム開発からアプリ開発、AI、リアーキテクチャ、リファクタリングプロジェクトを担当。C,C++,C#,JavaScript,TypeScript,Go,Python,PHP,Vue.js,React,Angular,Flutter,Ember,Backboneを中心に開発。お気に入りはGo。

システム開発にお困りではありませんか?