都道府県がランダムに並ぶシステムと「仕様です」の終焉
都道府県がランダムに並ぶ営業支援システム
クライアントから電話が来た。「都道府県の並びがおかしいんですが」。
画面を開く。確かに狂っている。東京の次に宮崎、その次に秋田。まるで酔っ払いがダーツを投げて決めたような順番だ。
開発委託先から返ってきた答えは「仕様です」だった。500人のエンジニアを抱えるベトナムの会社に丸投げしているくせに、私との直接のやり取りは許可しない。伝言ゲームだ。
コードを追った。バックエンドから都道府県リストを取得しているが、顧客データに存在する都道府県だけを抽出して送っていた。
さらに恐ろしいことに気づいた。この方式だと顧客がいない都道府県は表示されない。もし顧客が東京と大阪だけなら、選択肢は2つしか表示されない。「なぜ愛知県が選べないんですか?」というクレームが来てから気づくつもりだったのか。
日本人なら小学生でも知っている。都道府県には順番がある。北から南へ、自治体コード順。これは暗黙知だ。だがベトナムの開発者にとって、日本の都道府県など外国の行政区画でしかない。ただの文字列の配列だ。
だからこそ管理者SEがいるはずだ。日本人なら都道府県がランダムに並んでいれば違和感を持つ。それを確認もせずに「仕様です」だと?
エラーメッセージという名の手抜き
さらに調査を進める。エラーハンドリングを見て乾いた笑いが出た。
console.log('error getting list account');
message.error(API_ERROR_MESSAGE);
console.log('error getting account details by id');
message.error(API_ERROR_MESSAGE);
すべてのエラーが「API_ERROR_MESSAGE」。何を求めても同じものしか出てこない。日本語化もしない。指摘されなければエラーメッセージは全部同じでいい。
納期から7ヶ月が過ぎていた。それでも都道府県すらまともに表示できない。
「仕様です」は免責理由にならない
受託業者は「仕様です」と言った。多くのベテランエンジニアやPMも同じ発想だろう。しかしこの考え方自体がすでに古い。
2020年4月の民法改正で「瑕疵担保責任」は廃止された。現在は 契約不適合責任 が前提だ。これは単なる呼称変更ではない。判断基準が「瑕疵かどうか」から「契約の内容に適合しているか否か」へと明確に変わった。
要件定義通りにシステムを作った結果、クライアントの事業に使えないものが出来上がったとする。従来なら「仕様です」で済んだかもしれない。しかし現在は、「当社の事業に適合していない」という主張が事実であれば、仕様かどうかは関係なく、契約不適合責任の問題をはらむ。
営業支援システムで都道府県が47個すべて表示されず、並び順も自治体コード順になっていない。これは営業支援システムとして契約の目的を達していない。「仕様に書いていない」は免責理由にならない。むしろ不利な証拠になり得る。仕様が曖昧なら、なおさら受託側の説明義務や設計責任が問われる。
宅建業者として言うが、不動産ではマンションのパンフレットに記載された間取り図ですら契約内容と同視され、誤りがあれば契約不適合責任になる。システム開発だけが、この重さから長年逃げてきただけだ。
「仕様です」で思考停止する文化は、すでに法的にも否定されている。システム開発を、なめるな。
オフショア開発シリーズ: