検索
ニュース

技術的負債が引き起こす12の“悪夢” コスト増、パフォーマンス低下だけでは終わらない定着率の低下、機能の低下など

不適切に記述されたコードに機能を追加すると、評判が悪くなり、ユーザーエクスペリエンスが損なわれる。本稿では技術的負債が引き起こす12の悪影響を紹介する。

Share
Tweet
LINE
Hatena

 技術的負債とは、コードの再加工が必要なために発生したコストを指すが、その原因にはさまざまなものがある。一般的な原因の1つは、ソフトウェアをすぐにデモしてユーザーからフィードバックを得なければならないというプレッシャーから生じる。

 このプレッシャーに応えて、開発者は要件をしっかりと理解したらコードを書き直すつもりで、ショートカットのコーディングを実行する。しかし、多くの場合時間の制約により、プロジェクトリーダーは要件を満たすためにコードを書き直すことを避け、代わりに不十分に書かれたコードベースで要求された機能の開発を続けることを決める。その結果、技術的負債が生じてしまう。

 これらのプロセスが時間の経過とともに繰り返し発生すると、企業には技術的負債を抱えた幾つかの社内システムが存在することになり、CIO(最高情報責任者)が対処すべき問題となってしまう。

 技術的負債は政府の赤字に例えられる。政府が受け取る歳入を上回る支出をすると、毎年赤字が発生する可能性がある。この過剰な支出により、負債全体が増加する。相次ぐ赤字で借金が膨らむことになる。スタッフが注意を払わないと、多額の借金が発生する可能性がある。

 それと同様に、技術チームが構築するシステムにあまりにも多くの欠陥を許容すると、大きな技術的負債が発生することになる。この進展は、会社とCIOに報告されるリソースに重大な影響を与える可能性がある。

 技術的負債によってもたらされる12の課題を以下に示す。

1.システムの強化に関する問題

 技術的負債が増加するにつれて、チームが責任ある方法でシステムを強化する能力はますます衰えていく。これは、過去の技術チームが開発サイクル中に機能の文書化を怠ったか、現在では簡単に編集できない不適切に書かれたコードを使用したことが原因である可能性がある。同様に、過去に誰かがインフラストラクチャを適切にテストしなかったため、テストインフラストラクチャが不足すると、テストの強化が遅くなり、エラーが発生しやすくなる。

2.ユーザー体験

 ほとんどの従業員は、ソフトウェアの問題を許容し、修正されるまで回避することに慣れている。しかしながら、問題の数が増えると、従業員がタスクを実行するのが困難になる可能性がある。これらの課題が、顧客サービスの低下、従業員のエンゲージメントの低下、データのエラーを引き起こすかもしれない。

3.予算外のコスト

 CIOはシステムを維持し、技術的負債の問題を解決するために、予算のない資金に頼らなければならない場合がある。予算外の資金を使用するという決定は、組織が計画していた他の重要なプロジェクトに影響を与え、追加の資金が得られるまで保留中のプロジェクトが延期または縮小される可能性がある。

4.評判

 システムが期待通りに機能しない場合、システムの構築と保守を担当するチームは問題の解決に苦労するため、組織内での尊敬を失う可能性がある。ユーザーは、小さな機能強化やバグ修正については、妥当なスケジュールを期待している。ユーザーは、「技術的負債が大きいと、小さな問題であっても修正作業が複雑になる」ということを理解しないかもしれない。

5.全体的なシステムパフォーマンス

 技術的負債の潜在的な大きな課題は、システムのパフォーマンスと安定性の問題を解決することだ。技術的負債がほとんどないソフトウェア開発プロセスでは、これらの問題が発生する場合がある。パフォーマンスと安定性の問題に対処する前に解決すべき問題が複数ある場合、プロセスはより困難になる。コードが適切に書かれていない場合は、さらなる作業を行う前に一部の領域を書き直さなければならない状況を生みやすい。

6.ユーザーへのサポートが大幅に遅れる

 多くの場合、ITチームはユーザーが欠陥の報告や拡張機能の要望を出せるよう、チケット発行システムを使用する。システムのメンテナンスが難しい場合、ユーザーの出したチケットの解決に時間がかかっていることが表面化してしまう。また、IT管理部門は未処理のチケットが増加したことに気付き、チケットを優先順位付けして更新プロセスのための時間などを要求するかもしれない。

7.人件費

 CIOは、レガシーシステムの問題を解決するために追加のスタッフを必要とする場合がある。この種の要件は、採用チーム、IT部門が新しい機器を調達し、施設の従業員が新入社員のためのスペースを確保するなど、社内の多くのグループにプレッシャーを与える。これらの追加コストを組み合わせると、多額の費用がかかる可能性がある。

8.従業員の定着率

 新しい機能に取り組んだり、まったく新しいアプリケーションを構築したりすることが期待される従業員もいるかもしれない。時代遅れのコードや貧弱なドキュメントを更新しなければならない従業員は、勤務意欲の低下につながる可能性がある。代わりに、異動や転職を検討するかもしれない。

9.スタッフのオフボーディングの難しさ

 開発チームが古いプロジェクトの終了に伴い、新しいプロジェクトに人員を移すことは珍しいことではない。ただし、アプリケーションに大きな問題がある場合、計画通りに全員を新しいプロジェクトに移行するのは困難になる。この欠点は、期限を守り、必要な全ての機能を確実に実装するという点で、新しいプロジェクトに影響を及ぼす。

10.上級管理職の気を散らす

 発生した問題の重大度によっては、技術的負債への対処が上級管理チームの主目的となる可能性がある。これは、問題が顧客、ベンダー、その他の第三者に影響を与える場合に特に当てはまる。技術的負債が蓄積すると、問題の解決に時間がかかり、上級管理職に長期にわたる影響を与えてしまうかもしれない。

11.機能の低下

 システムのユーザーは、システムの使いやすさを向上させるために、新しい機能が実装され、古い問題が修正されることを望んでいる。それが起こらない場合、ユーザーはシステムの欠点に対処するために手動の回避策や物理的なスプレッドシートに頼る可能性がある。このプロセスは、ユーザーにとって大幅な非効率性をもたらし、潜在的なセキュリティ上の懸念を引き起こす。

12.適応力の欠如

 適切に設計されたアーキテクチャ、テストインフラストラクチャ、明確なドキュメントによって、CIOチームは妥当な時間内に新しいシステムの機能を組み込むことができる。例えば、従業員が使用するシステムにAI(人工知能)機能を実装したいという要望があるかもしれない。ただし、重大な技術的負債を抱えて納品されたシステムには、新しい機能や更新された機能を実装する能力に限りがある。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る