品質管理を放棄されたオフショア開発の実態
よくある質問 (FAQ)
オフショア開発で発見された具体的な品質問題は何ですか?
なぜファビコン404エラーが「バレなければいい」精神の表れなのですか?
Ant Design Form.Itemの正しい使い方は何ですか?
なぜAnt Designの警告を修正しなかったのですか?
この問題に見られる「三重の欠如」とは何ですか?
これらの問題が示す根本的な課題は何ですか?
前回の記事で、Gitコミット履歴から見えたオフショア開発の問題点を分析しました。今回は、その同じプロジェクトで実際に起きた、さらに深刻な品質問題について共有します。
ブラウザコンソールに表示された現実
改修作業のためにブラウザの開発者ツールを開いた瞬間、目を疑いました。
GET http://localhost:5174/favicon.ico 404 (Not Found)
Warning: [antd: Form.Item] `name` is only used for validate React element.
Warning: [antd: Form.Item] A `Form.Item` with a `name` prop must have a single child element.
いくつものエラーと警告。これが「納品」されたシステムの実態でした。
問題1:ファビコン404エラー - 「バレなければいい」の精神
何が起きていたか
ファビコンが設定されていない、HTMLのlang属性が日本語システムなのにenのまま、Viteのテンプレートをそのまま使用という状態でした。
なぜこれが問題なのか
これらのエラーは開発中にF12キーを押せば一目瞭然です。つまり、彼らは:
- エラーを認識していた
- 「動いているから問題ない」と判断した
- 「管理者はコンソールなんて見ない」と高を括った
ファビコンがないなら「ファビコンが設定されていません」と報告すればいいだけです。AIならそう答えます。しかし彼らは黙って放置しました。なぜなら「バレないから」です。
問題2:Ant Design Form.Itemの警告放置
❌ 実際のコード(誤用)
// ❌ 実際のコード(誤用)
<Form.Item label="PIC名" required>
<div className="flex gap-4">
<Form.Item name="pic_first_name">
<Input />
</Form.Item>
<Form.Item name="pic_last_name">
<Input />
</Form.Item>
</div>
</Form.Item>
✅ 正しい実装
<Form.Item label="PIC名">
<div className="flex gap-4">
<Form.Item name="pic_first_name">
<Input />
</Form.Item>
<Form.Item name="pic_last_name">
<Input />
</Form.Item>
</div>
</Form.Item>
この問題は、Ant DesignのForm.Itemの基本的なルールを理解していないことが原因です:
nameプロパティがある場合: フォームフィールドとして機能し、直接の子要素は1つだけnameプロパティがない場合: レイアウト用のコンテナとして機能し、複数の子要素を持てる
requiredはフォームフィールド(name付き)でのみ意味を持つ属性です。
外側のForm.Itemにはnameがないため「コンテナ」として扱われるべきなのに、required属性を設定している矛盾した実装でした。
「面倒だから直さない」という怠慢
この警告、AIに聞けば10分もかからず解決します。 しかし彼らは直しませんでした。 なぜか?恐らく、下記のいずれかでしょう。今までも何度も見てきた言い訳です。
- 「直すの面倒くさい」
- 「警告はエラーじゃないから無視していい」
- 「動いてるから問題ない」
- 「日本人の管理者SEはコンソール見ないからバレない」
三重の欠如
1. エンジニアリング力の欠如
警告は「今は動いているが、正しくない実装である」というフレームワークからのメッセージです。これを無視することは、将来的な保守性や拡張性を考慮していない証拠です。
2. AI活用力の欠如
2025年の今、AIという強力な開発支援ツールが存在します。使い方は簡単です。エラーメッセージをコピペして「どう直せばいい?」と聞くだけ。それすらしない、できない、知らない。
3. プロ意識の欠如
最も深刻なのはこれです。「バレなければいい」という精神。クライアントを騙し、品質を偽装し、プロとしての誇りがゼロ。
管理者SEは言った
以前、私が「なぜ日本で普及していないAnt Designを採用したのですか?」と管理者SEに質問したところ、 「開発速度優先で、彼らが使い慣れている環境で構わないと伝えたからです」と回答されました。
使い慣れている? 基本的な使い方すら理解せず、警告を放置しているのに?
まとめ
今回発見された問題は以下の通りです:
- ファビコン404エラー:基本的なサイト設定の放置
- Ant Design Form.Itemの誤用:フレームワークの基本理解不足
- 「面倒だから直さない」という怠慢:プロ意識の欠如
これらの問題は、技術力以上に職業倫理の欠如を示しています。
次回の記事では、この「バレなければいい」文化の深刻さと、AI時代における開発パートナー選定の重要性について詳しく分析します。