私たちは物事を話し合いで解決する慣習があり,あまり契約書を重視していませんでした。しかも,情報システムの開発には,情報システム特有の事項が多いので,経営者は辟易しがちです。ところが,情報システムは複雑ですので,当初の期待通りにはいかない場合が発生します。そのとき,契約があいまいだと,いろいろなトラブルが発生する危険があります。
情報システムの構築は,大まかに次のプロセスに区分できます。これをソフトウェア開発のライフサイクルといいます。
契約をするとき,システム仕様作成までの上流プロセスだけを契約するのか,システム開発の下流プロセスまでも一括して契約するのかに区分できます。
本来は,上流プロセスと下流プロセスを分離してベンダを選択して契約するべきです。
しかし,一括したほうが便利なこともあります。
一般に中小企業では,開発対象が小規模であること,分離して管理するだけの能力が乏しいことから,一括契約にするのが通常です。でも,同じベンダに発注するにしても,上流プロセスと下流プロセスにわけて,システム仕様書ができるまでを当初の契約として,それを承認した時点で開発の契約にするのが適切です。
中小企業では,提案依頼書の作成,提案書の理解,ベンダとのコミュニケーションなどが不十分ですので,提案書とシステム仕様書の間には大きな相違があり,見積金額も大きなギャップが生じてトラブルになる危険があります。上流と下流の間で見直しをする機会を明確にしておくべきです。
特に中小企業では,自社にコンピュータを設置して運用するのではなく,外部のセンターのコンピュータをネットワークで利用することも考えられます。特にインターネットを利用する情報システムでは,情報セキュリティ対策の面からも,運用をアウトソーシングするほうが適切です。
それで,下流プロセスの契約では,単にシステム開発を委託するのか,その運用までも含めて契約するのかを検討するべきです。最近では,ハードウェアたけでなく汎用的な業務の情報システムや運用までも受託するASPという業態も増加しています。それを前提とするならば,契約の内容も変化します。
このように契約の範囲はまちまちですが,ここではシステム開発だけを一括して契約するケースに限定します。
発注者とベンダの間でのトラブルは多様ですが,システム仕様書が確定するまでのトラブル,システム開発の過程においてシステム仕様書の範囲解釈に関するトラブル,機能以外でのトラブルに区分できます。
情報システムの仕様に関する以外にも,多様なトラブルの原因があります。
(これまで「情報システム開発」と表現してきましたが,ここでは「ソフトウェア開発」といいます。厳密には,前者ではハードウェアを含むのに後者では含まないなどの違いがありますが,ここでは区別をしておません)
このように,ソフトウェア開発では多くの事項について明確な契約をする必要がありますし,契約に関する知識とソフトウェア開発に関する知識が求められます。慣れていない中小企業にとって,適切な契約書を作成するどころか,ベンダが作成した契約案を検討するすら困難でしょう。
標準的な契約書があれば便利です。多くの開発でこれが利用され評価されているならば,安心して用いることができます。
その代表的なものに,JISA(社団法人情報サービス産業協会)による「ソフトウェア開発委託モデル契約」(2002年,以下「モデル契約」と略称)(
http://www.jisa.or.jp/activity/guideline/dev_contract2002.html)があります。これをベースにして,必要に応じてカスタマイズすればよいでしょう。
また,JISAは,このモデルを策定した考え方として「新しい取引における契約問題とその対応についての考え方(ポジションペーパー)」(
http://www.jisa.or.jp/activity/opnion/020530-j.html)を発表しました。ソフトウェア取引において,当事者間で利害が対立する問題とその対応についてのJISAとしての考え方を述べたものです。これも合わせて読むことを勧めます。
なお,モデル契約では,契約時には詳細なシステム仕様はできていないで,契約後に作成されるものとしています。ですから,システム仕様書の内容についての記述はありません。また,運用のアウトソーシングは含まない一括契約を想定しています。
宅地建物取引では,業者は専門的知識を持っているのに対して消費者は素人であるとの観点から,消費者の立場を考慮した取引になっています。ところがこのモデル契約は,全般的には適切なのですが,発注者がベンダと対等な立場であることを前提としており,しかもJISAがベンダが中心の組織です。それで,この分野に経験の少ない中小企業がこのモデル契約を利用するときには,いくつかの留意点があります。
これ以外にも留意すべきことは多くありますが,経験のない経営者がモデル契約を見て発見するのは困難でしょう。また,業界常識として受け入れるべき事項もあります。それで,自社がモデル契約を用いるときに,具体的にどの条項をどのように変更すればよいかを,まえもって弁護士やコンサルタントに相談しておくとよいでしょう。
品質について両者が合意することをSLA(サービスレベル・アグリーメント)といいます。ソフトウェアの品質には,「請求書を発行する」というような機能品質,「画面が表示されるまでの時間を5秒以内とする」というような操作品質,「故障が起きたら,保守要員は30分以内に現場に到着する」というようなサービス品質などがあります。これらについてSLAを設定しておくことが,トラブルを回避するのに必要です。
SLAは,重要な事項に関しては提案依頼書で明記するべきですし,システム仕様書段階ではかなり詳細にしておく必要があります。さらに,ソフトウェア引渡しの時点で改めて確認するべきです。
品質のうち,機能品質は比較的わかりやすいのですが,操作品質では主観的な要素もあります。サービス品質では厳格な実行規定なのか努力目標なのか決められない事項もありましょう。
その解釈が両者で異なるとトラブルが発生しますので,サービスレベルをできるだけ客観的に把握できること,それには数値で表現できるようにするべきです。例えば操作品質では「操作がしやすい」というような主観的な表現ではなく,「画面が表示されるまでの時間を5秒以内とする」などとするのが適切です。
しかし,それには限度がありますし,測定項目が限定されるとそれ以外の品質が無視される傾向もあります。事前によく話し合い文書にしておくことが必要です。
重要なことは,発注者が完全主義に走らないこと,ベンダが防衛主義にならないことです。また妥協ではなく,費用対効果の観点から最適レベルにするために協力することが大切です。
画面表示までの時間は短いのがよいのに決まっています。でも発注者が「1秒以内」などと極端な値を主張すると,それを実現するために特殊な工夫が必要になり,それだけのために大きな費用がかかることもあります。またベンダが「3秒で可能だと思うが,安全のために5秒にしておこう」というのでは,なかなか合意に達しません。
いかに努力しても絶対はありません。「プログラムエラーは0とする」ようなことを決めても実現できるはずがありません。発注者がそれを主張すれば,ベンダはエラーを隠す努力をするでしょう。それではますます危険な状況になります。
経験の乏しい発注者ほど,利用者からのクレームを恐れて完全主義者になりがちです。するとベンダはないさら防衛的態度になり,それがこうじると不信感に発展します。そのような事態を避けるためにも,発注側はコンサルタントに第三者的な立場からの意見を求めるのが適切です。
SLAの遵守を高めるために,納期遅れが発生したらペナルティを科し,予定よりも早く完成したらプレミアムを与えるような契約にすることも行われます。互いに成熟度が高い場合には適切な手段です。
しかし,副作用として当事者が必要以上に緊張感を持ち,サービスレベルの設定がなかなか合意に達しないとか,トラブルの原因を相手になすりつけるようなことにもなりますので,当事者が成熟度が低い場合には慎重にしたほうがよいでしょう。
それよりも,モニタリングの徹底を図るべきです。定期的にサービスレベル実現状況を報告して適切な対処を検討する体制を整えることが必要です。そして,その結果により,より適切なサービスレベルに見直すことが重要なのです。