ソフトウェア開発でよくある設計ミス事例と、5つの対策方法
ソフトウェアの開発で、設計工程でミスがあったり、理解しづらい設計書/仕様書を作ってしまうと、手戻りコストが大きくなり、プロジェクトの致命的な問題になりうる場合があります。
そのような状況にならないためにも、何に留意し、どのように取り組めばよいのでしょうか。
今回はソフトウェア開発で設計ミスを減らし、分かりやすい設計書/仕様書を作成するためのポイントについて考えてみたいと思います。
設計書不備の事例
コミュニケーション不足による認識のずれ
設計工程は「要件定義(RD)」と「開発工程(PG、PT)」の間にあり、担当者が異なる場合はその内容を正しく理解できていないといけません。
要件定義書に記載されている内容が実際の要件と異なる場合や、要件定義書の内容があいまいで設計者が本来の意図と異なる解釈をしてしまった場合、その機能が設計から漏れたり、誤った内容で設計を行ったりする可能性があります。
考慮が足りない
必要な機能を実装するために、考慮しておかないといけない点があるにもかかわらず、設計段階でその考慮が漏れているケースです。
これは開発工程で必要な機能の開発を忘れていたり、テスト工程でテストパターンが漏れていたりする等、他の工程でも起こり得ます。
確認不足による内容の漏れや誤り
設計工程で作成される設計書は、後工程(コーディング工程やテスト工程等)の入力として使われます。
このとき、設計内容に漏れや誤りがあると、間違った設計のままの開発・テストや、リリース後になって不具合が発覚するケースがあります。
後続の開発・テスト工程で設計書が入力内容として使われるため、設計書の漏れや誤りに気づけなければ、大きな問題に発展する可能性があります。
設計書不備の原因

設計者の問題
考慮不足の原因については、お客様のシステムや要件についてきちんと理解できていない場合や、調査を十分に実施していない場合等、設計担当者に問題があることが考えられます。
また、担当範囲が広範囲にわたり、細かいところまでフォローが行き届かないために考慮漏れが起こる場合も考えられます。
担当者一人でソフトウェアの全体像を完璧に把握するのは無理ですし、負荷が高いと作業効率や作業品質も低下してしまいます。
担当者の作業負荷軽減や経験の浅いエンジニアへのフォローは、先輩SEや有識者が支援を行う必要があります。
レビュー・チェック体制の問題
各工程の成果物に対するレビューは必ず実施されます。
ですが、レビューが不十分だと記載漏れ・考慮漏れがあっても気づかず、そのまま次の工程に進んでしまいます。
設計ミスが開発・テスト工程で発覚した場合は、レビューに問題があるといえます。
他にも要件定義書に記載漏れや考慮漏れがあり、それが元で設計工程にも問題が発生するケースです。
その場合は、要件定義書のレビューに問題がある可能性が考えられます。
影響が広範囲に及ぶため、類似のミスが他の設計にも発生していないか確認する必要があります。
設計書不備を起こさないための対策

人が設計する限りミスは必ず付きものですが、対策を行うことによってミスの可能性を下げることは可能です。
大切なのは同じミスを繰り返さないように対策を考え、実施することです。
以下に、設計不備を回避するための【5つの対策】を紹介します。
①設計書のテンプレートを活用する
最低限設計すべき内容を網羅したテンプレートを活用することで、設計漏れを防ぐことができます。
設計者の技術力によって設計書の品質が異なる可能性が出てきます。
また、万が一設計ミスが発生した場合も、今後の対策としてテンプレートに盛り込むことで、再発防止にも繋がります。
②チェックシートを活用する
作成された設計書の内容が一定の品質が保たれているかを確認するため、チェックシートを活用するのも効果的です。
各機能で共通して押さえておかなければならない内容や、必ず記載すべき内容が網羅されているかを確認しておくと、記載ミスを防止できます。
③仕様変更時の更新ルールを守る
設計された内容と開発されたプログラムの内容を必ず一致させるため、仕様変更が発生した場合の更新ルールを明確にしておきましょう。
仕様変更や不具合対応などで更新が発生した場合は「設計書を先に修正し、それを元にプログラムを改修する」というルールを徹底しましょう。
ルール化することで、漏れをなくすことができます。
④レビューの品質を高める
設計レビューを行う際にレビュアーの人数を増やしたり、レビューの機会を増やしたりすることで、設計者以外の多様な視点から設計書を確認し、品質を高めることができます。
これは、コミュニケーション不足や認識齟齬による設計ミスの防止にも繋がります。
作成された設計書は、設計した個人の視点による要件の理解に基づくため、複数のレビュアーからの視点で、考慮漏れや認識齟齬を見つけられる可能性が高まります。
⑤成功事例を利活用する
多くの現場で利用された実績のあるものを利用すると、品質を高めることができます。
1から設計・開発する場合十分なチェックが必要ですが、すでに運用実績があれば品質や作業効率の向上も期待できるでしょう。
いかがでしたでしょうか?
ソフトウェア開発において設計がいかに重要かについて理解頂けたかと思います。
人が設計している以上、設計ミスを完全になくすことは不可能ですが、対策を行うことでミスを回避することは可能です。
大切なのは、同じミスを繰り返さないために、ミスの原因を突き止めて対策を行い、実績やノウハウを積み重ねることです。
設計書に不備があり、その発見が遅れれば遅れるほど、大きな問題になってきます。
そうならないためにも、事前にしっかり対策をうち、設計書の不備やミスを防止しましょう。
最後までお読みいただき、ありがとうございました。
お問い合わせは下記の「✉まずは相談してみる」ボタンよりお願いします。
担当者がお返事させていただきます。