あなたの会社でも起きている?「設計ミス」と言われる技術者の本当の気持ち

あなたも「設計ミス」の犯人にされた経験はありませんか?

プロジェクトでトラブルが発生したとき、現場でよく聞こえてくるのが「これって設計ミスじゃない?」という声です。そして、技術者であるあなたが矢面に立たされ、「なぜこんな作りにしたんだ」と責められる――。

でも、ちょっと待ってください。本当に設計に問題があったのでしょうか?

実は多くの場合、問題の根本は設計にあるのではなく、もっと上流の「仕様」にあることが多いんです。今日はこの混同されがちな「設計ミス」と「仕様ミス」について、現場の実情を踏まえながら考えてみたいと思います。

「設計ミス」と言われがちな現場の実情

システム開発やものづくりの現場で何かトラブルが起きると、真っ先に飛び交うのが「設計ミス」という言葉です。

「こんな動作になるなんて想定してなかった」
「思っていた機能と違う」
「使い勝手が悪すぎる」

こんな声が上がると、すぐに「設計が悪い」という結論に落ち着いてしまいがちです。でも、実際にはその多くが設計以前の問題、つまり仕様に起因する問題であることが多いのが現実です。

IPAの調査データによると、システム開発プロジェクトの失敗原因として「要件定義の不備」が最大要因として挙げられており、これは15年間変わらずプロジェクト失敗の主要因であり続けています。つまり、問題の根本は技術的な設計よりも、そもそもの要求や仕様の定義にあることが圧倒的に多いのです。

仕様ミスと設計ミスの違いとは

では、仕様ミスと設計ミスは何が違うのでしょうか。

仕様ミスは、そもそもの要求定義や仕様書に問題がある状態を指します。具体的には:

  • お客さんの要求が曖昧だった

  • 必要な機能が仕様書に記載されていなかった

  • 前提条件や制約事項が明確でなかった

  • ステークホルダー間で認識がずれていた

一方で設計ミスは、仕様は明確だが、それを実現するための技術的な実装方法に問題がある状態です:

  • アルゴリズムの選択が不適切だった

  • データベース設計に論理的な矛盾があった

  • パフォーマンスを考慮しない実装をしてしまった

  • セキュリティホールを作ってしまった

システム開発のトラブル統計を見ると、納期遅延の原因として「要件や仕様の変更が多かった」が55.14%を占めており、これは技術的な問題よりもはるかに高い割合です。つまり、多くのトラブルは技術者のスキル不足ではなく、上流工程での仕様策定の問題に起因しているのです。

技術者が気の毒になる構造

ここで考えてほしいのは、技術者の立場です。

彼らは与えられた仕様書に従って、プロフェッショナルとして最善を尽くして設計・実装を行います。お客さんが「こういう機能が欲しい」と言えば、その要求通りに作り上げるのが彼らの仕事です。

ところが、いざ完成したシステムを見て「思っていたのと違う」「こんなはずじゃなかった」と言われ、「設計ミス」のレッテルを貼られてしまう。これは本当に理不尽な話だと思いませんか。

実際の現場事例として、ある営業担当者が「日報を簡単に入力できるシステム」を要求したにも関わらず、管理部門は「自動で集計できる機能」を期待していた、というケースがあります。技術者は営業担当者の要求通りに「簡単入力」機能を実装したのに、管理部門からは「使えないシステム」だと批判されてしまいました。

こうした認識のずれによるトラブルでは、技術者が「設計ミス」の責任を負わされることが多く、精神的な負担も深刻です。建設業の労災データでは、現場監督や技術者のうつ病エピソードが71.2%という高い割合を示しており、責任転嫁によるストレスが大きな要因となっています。

本当の問題を見極める大切さ

トラブルが起きたとき、私たちに求められるのは犯人探しではなく、真の原因を見極めることです。

「なぜこの問題が起きたのか?」を掘り下げていくと、多くの場合、上流工程でのコミュニケーション不足や要求の曖昧さにたどり着きます。技術者個人のスキルの問題ではなく、プロジェクト全体の進め方や体制の問題であることが多いのです。

レビュー指摘の集計データでは、「要件確認不足」「関連機能確認不足」「設計書検討不足」が上位を占めており、これらはすべて組織的な問題といえます。個人の責任に帰結させるのではなく、仕組みや体制を見直すことで、同じ問題の再発を防ぐことができます。

技術者の方々には、自分を責めすぎないでほしいと思います。そして、マネージャーや発注者の方々には、問題の本質を見極める視点を持っていただきたいと思います。

いいなと思ったら応援しよう!