弁護士法人 モノリス法律事務所03-6262-3248平日10:00-18:00(年末年始を除く)

法律記事MONOLITH LAW MAGAZINE

IT・ベンチャーの企業法務

システム開発のサーバー・インフラにまつわる法律問題とは

企業で用いるITシステムはある意味では、仕様書や設計書を作成し、その内容に対応するソースコードを記述することによって作られるものです。しかしこうしたソフトな側面だけではなく、物理的なパソコン、すなわちインフラがあってはじめてシステムは実際に機能します。本記事では、システム開発プロジェクトにおいて、インフラという領域と関連の深い法律問題について解説していきます。

ITシステムにおけるインフラとは

システム開発を行う技術者は、システムエンジニア(SE)と呼ばれます。そして開発プロジェクトは、仕様書・設計書の作成といった上流工程に始まり、プログラムの実装と、そのテストを実施するというのが大まかな流れとなります。もっとも、広義のシステムエンジニア(SE)はこれらに必要となる業務すべてを担う技術者であると説明できますが、企業や職場によっては担当する業務内容や領域によって、さらに細かく名称を区別している場合があります。インフラエンジニアという呼称は、ITシステムの開発・運用にかかわる業務として、とくに物理的なコンピューターの動作環境を整備する立場の技術者を指すものです。企業や職場などで用いられるITシステムは、ある意味ではソースコードの組み合わせで成り立つ抽象的な構築物です。しかし、そのシステムが本来期待される通りの役割を果たすためには、サーバー・ネットワークをはじめとするインフラ周りの環境構築が欠かせません。プログラム・ソースコードの実装と、その動作環境を支えるインフラ周りの環境整備の両輪でシステム開発の実務は進んで行くものです。こうした視点は、不測のトラブルの発生を予防するためにも重要であると考えられます。

インフラの問題がプロジェクトを炎上させる具体的場面とは

インフラ周りの整備を怠ると「炎上」リスクの原因となることもあります。

システム開発プロジェクトで抽象的なプログラムやソースコードでの設計のみに注力してしまい、インフラ周りの整備という視点を欠いてしまうといったことは現実にも起こりえます。しかし、両者の足並みが揃わない状態は、ときにプロジェクトの炎上リスクともなりえます。

サーバーサイジングの間違いが争いを引き起こす事案とは

たとえば、プログラムの実装やテストなどが全て終了したあとで、結局サーバーの処理性能が足りずに、システムが実用に耐えられないことが発覚するといったことが考えられます。なお、システムが運用段階においてどの程度の負荷がかかりうるものであるかを予想し、システムの規模に合わせたインフラの整備を行うことは「サイジング」と呼ばれます。サーバーサイジングの誤りが原因となってトラブルに発展する事案は、過去にも実際に起きています。(結果的に和解で解決しているものの、有名なものとして、こちらの事案を参考にすることができます。)なお、両当事者の紛争について、「和解」という処理による解決方法については、以下の記事にて詳細に解説しています。

紛争が和解による決着をみたということは、簡単にいえば両当事者の「話し合い」によって争いに決着がついたということです。したがって、裁判所によって判決が言い渡された場合と異なり、その和解内容は裁判例として蓄積されるものではなく、個別性の強いものとなるのが通常です。

事案の本質は、不明確な仕様に対するベンダーの対応義務の範囲である

もっとも、こうした紛争の本質は、「仕様として明示されていない事項に対して、ベンダーがどこまで責任を負うべきなのか」という点であるとも考えられます。この点、踏まえれば、以下の記事の内容から多くのヒントを得ることができます。

上の記事では、仕様書に記載がないもののうち、ベンダー側がどこまで裁量を発揮し実装義務を負うのかを解説しています。ここでは、要件定義書や基本設計書などで容易に可視化される「画面側」の事項(いわゆる「フロントエンド」に属する領域)と、データ移行などの「ロジック側」(いわゆる「バックエンド」、「データベース」に属する領域)では話が大きく異なることを説明しています。すなわち、(通常はシステム開発プロジェクトに対して専門的な知見を持たない)発注者/ユーザーにも仕様上の問題が容易に確認可能な「画面側」の領域ほど、発注者/ユーザーに帰責されやすい傾向があると考えられます。一方、「ロジック側」の問題は、受注者/ベンダーに帰責されやすい傾向があると考えられます。こうした点を踏まえると、サーバーサイジングの問題は専ら技術の専門家でなければ問題の所在を認識しづらい領域であるため、受注者/ベンダーに帰責されやすい領域であると考えられます。したがって、もしこの点について本格的に裁判で争うことになるなら、受注者/ベンダー側の責任を免責するための積極的な事情がない限り、なにかと受注者/ベンダー側に不利な判定が下りがちになることが予想されます。

サーバーサイジングを間違いによるトラブルを防ぐための施策

トラブル予防としての、具体的施策について説明していきます。

先述のようなトラブルを予防するためには、プログラムの実装・ソースコードの記述といった業務と、インフラ周りの環境整備の足並みを揃えていくことが大切です。具体的に考えられる施策としては、以下のようなものがあります。

サーバーサイジングに関する責任の所在を契約上明確にしておくこと

こうした事案に限らず、システム開発プロジェクトに関する紛争の多くは、システム開発の専門家たるベンダーと、社内事情に通じているユーザーとの間で役割分担が不明確であったことに端を発するものが多く見られます。両者の緊密な連携がプロジェクトの円滑な進行に必要となることはいうまでもありませんが、その際にも役割分担・責任範囲を事前に契約等で極力明確にしておくことが望ましいといえるでしょう。

開発の要件の具体化、変更管理を十全に行うこと

また、そもそも実現すべき機能要件が曖昧であるような場合にも、こうした争いがもつれる危険性は高まります。これは、当初の要件定義フェーズにおける仕様の明確化と、プロジェクトの途中における変更管理という両方の側面があります。プロジェクトの途中における仕様変更にどう対応すべきかについては、以下の記事にて詳細に解説しています。

プロジェクトの性質に合わせた開発モデルを選択すること

また、上記二点の対策とも深く関連するところですが、システム開発プロジェクトはその性質・規模感等に応じて適切な開発モデルを選択することが大切です。一般に、サーバーサイジングが重要となりうるような一定規模以上のシステムの開発であれば、仕様や責任範囲の明確化に適したウォーターフォールモデルを採用することのメリットが高まると考えられます。なお、プロジェクトの性質を踏まえた適切な開発モデルの選定という点に関しては、以下の記事にて詳細に解説を行なっています。

まとめ

システム開発プロジェクトの円滑な進行にむけて、インフラ周りの環境整備に端を発するトラブルは、盲点になりやすいポイントです。インフラ周りの問題にまで目配せすることは技術の専門家以外には負担も決して小さくないと考えられます。しかし、こうしたトラブルの予防策は、「仕様の明確化/変更管理の徹底」、「役割/責任範囲の明確化」、「プロジェクトの規模や予算に合わせた開発モデルの選定」といった、ごく基本的な施策の延長上にあるものであるともいえます。企業法務に携わる人がまず理解しておくべき点は、インフラの問題に対しても予防法務の基礎は十分敷衍しうるものであるという点でしょう。また、IT系の技術者であれば、インフラの問題がプロジェクトの深刻な炎上リスクとなりうる点を理解し、円滑に実務を取り仕切っていくことが重要だと考えられます。

弁護士 河瀬 季

モノリス法律事務所 代表弁護士。元ITエンジニア。IT企業経営の経験を経て、東証プライム上場企業からシードステージのベンチャーまで、100社以上の顧問弁護士、監査役等を務め、IT・ベンチャー・インターネット・YouTube法務などを中心に手がける。

シェアする:

TOPへ戻る