経営者は、システムの保守性の向上のために、再構築に投資する。では経営者は、その投資によってどういった見返りを期待しているのか。それは、ビジネス環境の変化に対し、新しいサービスや商品を競合他社に先駆けて次から次へとシステムに実装できることだ。経営者はこの状態を「保守性が高い」と称するのである。

 開発者としても、その状態を目指す。だが、その実現を阻害する要因がある。それは何かを知り、対抗策を考えよう。

 保守局面での要件を実現するための開発者の作業は、大きく次のステップで行われる(図1)。

図1●保守局面における開発者の作業
図1●保守局面における開発者の作業
[画像のクリックで拡大表示]

(1)変更箇所特定:要件を実現するために変更する箇所を特定する
(2)影響分析:変更にともない、他の機能が誤作動しないか分析する
(3)変更実施:アプリを変更する
(4)要件確認テスト:対象機能が意図した通りになったことをテストする
(5)無影響確認テスト:他の機能が誤作動しないことをテストする

 この中で困難なステップは(2)影響分析と(5)無影響確認テストである。機能追加の依頼に対し、開発者は「影響が大きいので時間がかかります」「なんとか開発はできると思いますが、この期間ではテストをやり切る自信がありません」といった回答を発するケースは多い。

 すなわち、影響分析と無影響確認テストが問題になるケースが多いのだ。これらの問題を排除することが保守性を高める上での唯一の目標であるくらいの意識を持ってもらいたい。では「影響が明確であり小さい」アプリを作る方法を紹介しよう。

アプリは単機能のモジュールを疎につないで作れ

 次の特徴を持ったモジュールの集合体としてアプリを形作ればよい。

(1)個々のモジュールの機能が単機能に特化している
(2)モジュールを呼び出すインタフェースのパラメーターは最低必要なもののみに絞られている

 こうすれば諸悪の根源である「影響」が明確に個別のモジュールにとどまる。そのため、影響調査のために全体を調べる必要性がなくなる。無影響確認テストの範囲も明確になる。いわば「専門家の集団を作り」、「専門家同士はゆるくつながる」といった感じだ(図2)。

図2●「影響が明確であり小さい」アプリを作る方法
図2●「影響が明確であり小さい」アプリを作る方法
[画像のクリックで拡大表示]

 このシンプルな原則のみが重要である。これを実現する保守性の高いアプリを作るための基本的な方法の要点を説明する。