2016年10月17日

【失敗しないシステム導入】

~複雑なシステムの悪影響は?~

要件定義工程では様々な要件が数多く洗い出されます。全ての要件に応え、そのままシステム化しようとすると複雑なシステムになってしまいます。複雑なシステムはそれだけ開発工数が多くかかるのでコストが高くなります。開発コストが高くなることはイメージしやすいのですが、実は開発工程だけでなく、他の工程にも悪影響を与えます。

どのような工程に悪影響を及ぼすのかを以下に述べていきたいと思います。

ユーザテスト

システムが複雑になるとテストパターンが増えます。テストパターンが増えるとそれだけテスト工数が多くかかります。また、テスト漏れなどのリスクも高まり、システム品質に悪影響を及ぼします。

マニュアル作成、教育

システムが複雑になるとマニュアル作成、教育により多くの工数がかかります。システム仕様が複雑でマニュアルに記載しきれない場合、ユーザは都度、情報システム部門に仕様を問い合わせなければなりません。情報システム部門も仕様を把握しきれていないので、ベンダに問い合わせることになり、無駄な問い合わせ工数が発生します。

移 行

データ構造が複雑であると、データ移行も複雑になります。1対1の単純な移行ではなく、1レコードが複数のレコードに分割される、複数のレコードに統合されるなどの複雑な移行になります。移行ロジックの検討、移行プログラムの作成に多くの工数を費やさなければなりません。データが正確に移行されないリスクも高まり、データの品質に悪影響を及ぼします。

ベンダ側保守

システムが複雑であると保守は属人化しやすくなります。その結果、保守要員が固定化してしまいます。保守要員を流動化できれば、低コストの保守要員に入れ替えることで保守費用を低減できます。通常、保守要員は徐々に下がっていくものですが、保守要員が固定化していると、保守費用は高止まりしてしまいます。

ユーザ引き継ぎ

複雑なシステムはユーザが使いこなせるようになるまで時間がかかります。引き継ぎに必要以上の工数がかかることになります。「せっかくシステム操作方法を覚えてもらったので異動させたくない」、「誰々でないとこの機能は使いこなせないので異動させられない」など、システムが制約となって社内要員の流動性が低下してしまう場合すらあります。

このように複雑なシステムは至るところに悪影響を及ぼします。しかし、ベンダは複雑なシステムを作った方が、売上が増えます。ユーザも要件を全てシステム化してもらった方が自分達の業務が楽になると思っています。このようにベンダもユーザもシンプルなシステムにしようとするインセンティブが働きません。システム部門が強い意志を持ってシンプルなシステムにするようにしなければなりません。

要件をそのまま仕様に落とし込むのではなく、抽象化してなるべく機能を少なくしなければなりません。一人一人異なる社員を社員テーブルとして抽象化して管理できるのがシステムの本質です。業務のあらゆる事象をそのままシステム化しようとすると複雑なシステムになってしまいます。これには抽象化の観点が必要になるので、情報システム部門が抽象化の観点を持ってシステム開発に携われるかが、シンプルなシステムにできるかのポイントになります。

2016年10月