システム開発は注文住宅に似ている?!
2023/06/21
システム開発は、注文住宅の建設と多くの類似点があります。
この記事ではシステム開発会社に発注する際、どのようなことに注意すればよいのかを、注文住宅を例に解説していきます。
※この記事で扱うシステム開発は、注文住宅との比較になるためウォーターフォール(工程を順番に進めていく手法)とします。
Contents
1. 企画 / 外観や予算などを決める
システム開発の企画フェーズでは、プロジェクトの目的、目標、予算、リソース、タイムラインなど基本的な要素をしっかりと固める必要があります。
これによりプロジェクト全体の方向性が明確になり、後続のフェーズでも円滑に進めることができます。
注文住宅の工程として例えるならば、初めに「平屋の3LDK」で進めたいとします。しかし、建築が進んでから「3階建ての6LDK」に変更したくなった場合はどうでしょうか?予算やリソース、タイムラインが足りなくなるという問題が生じます。逆に、大規模な企画で始めて、実際には小規模で良かった場合、多くのリソースが無駄になります。
抽象的な言葉や不明確な内容は後続のフェーズに悪影響を及ぼす可能性があります。例えば、あいまいな表現で要件を伝えると、具体的な解釈がプロジェクト全体でバラバラになる可能性もありすます。
目的、目標、予算、リソース、タイムラインなどの基本的なことは、齟齬がないようシステム開発会社とコミュニケーションを取りましょう。
2. 要件定義 / 家に必要なものを洗い出す
システム開発では、要件定義フェーズは極めて重要です。ここでは、発注するシステムが実現すべき機能や性能を洗い出し、文書にて合意してきましょう。口約束のようなものでは後々トラブルになる可能性もあるため、必ず文書でやりとりをすることをおすすめします。
これが不十分または曖昧であると、開発者が予想しない方向に進む可能性があり、後々のフェーズで混乱や手戻りが増えるリスクが高まります。また、期待したものが納品されないかもしれません。
注文住宅の文脈で例えると、このフェーズは家の機能や必要な要件(例:部屋が何部屋必要なのか、駐車場は何台必要なのか)を明確にするタイミングです。
これが不明確であれば、家が完成したときにお風呂がない?というような事もありえるかもしれません。
要件が曖昧な場合、建築途中で追加の要望が出たり、完成後に「お風呂が欲しかった…」という後悔が生じる可能性が高まります。
そのような問題を生み出さないためにも、要件定義まではシステム開発会社としっかり合意をとりましょう。
ここまでのフェーズでの意思疎通において、システム開発会社が出してくる専門用語の理解が難しい場合があります。
要件定義のフェーズまでは、不明な専門用語があればシステム開発会社に説明を求めましょう。
3. 基本設計 / 間取りや外壁などを決める
システム開発の基本設計フェーズでは、要件定義で明確にされた要件を元に、システムの大まかな構造や主要な機能、データベース設計などを行います。この段階での設計が後のフェーズにおける作業の土台となります。
注文住宅の場合、間取りや材料の選定、配管や電気設計などが重要な要素となります。ここでの失敗は、後々の工程で修正が困難であり、住み心地や機能面での不満を生む可能性が高まるでしょう。
システム開発においても、基本設計が不適切だと開発途中で大規模な変更が必要になることがあり、予算オーバーや納期遅延につながる恐れがあります。明確な設計が重要です。
このフェーズから実装までは基本的にシステム開発会社側の話になるため、中身を正確に把握する必要性は低くなります。
定期的にシステム開発会社に報告をしてもらうなどの対応があると良いでしょう。
4. 詳細設計 / 詳細な設計図を作成する
詳細設計フェーズでは、システム開発において基本設計で定められた要素をさらに具体的に洗い出し、詳細な設計図を作成します。この段階は注文住宅における建築詳細図の作成に似ています。
注文住宅の建築詳細図では、窓のサイズや位置、材料の種類、仕上げの方法など、具体的な工事内容が明示されます。これによって、工事がスムーズに進行し、予定通りの品質で家が完成します。
同様に、システム開発の詳細設計では、データ構造、インターフェイスなどを具体的に定めます。
これが不十分である場合はどうでしょうか?開発時に混乱が生じる可能性があり、システムの品質にも影響するかもしれません。
5. 実装 / 現場での施工
システム開発の実装フェーズでは、詳細設計に基づいてコードを書き、システムを実際に構築します。注文住宅では、これは建設工事に相当します。
システム開発においては、この段階でのコーディング技術と、詳細設計を正確に理解していることが重要です。
注文住宅の建設では、設計図通りに家を建てることが重要ですが、現場での判断や工夫も必要です。注文住宅で例えると、大工さんが現場で合わせるようなものになります。
これを信頼して任せられるのかどうかは、システム開発会社の信頼度が高くなければ難しいため、このフェーズに至るまでのやりとりを見て、信用できるシステム開発会社なのかを判断できれば良いかもしれません。
6. テスト / 検査
システム開発のテストフェーズでは、実装されたシステムが設計通りに動作するか検証します。注文住宅の場合、これは完成検査に相当します。両者とも、この段階での確認が製品の品質を保証するために重要でしょう。
7. 納品 / 引き渡し
納品フェーズでは、システム開発の納品物を引き受けます。注文住宅の場合は、家の引き渡しに相当します。
注文住宅とは異なり、システム開発では納品物に操作が難しいものが含まれている場合もあり、不明点がなくなるまでシステム開発会社に質問しましょう。
8. 保守 / アフターサービス
システム開発の保守フェーズでは、システムが稼働している間、不具合の修正や機能のアップデートを行います。
注文住宅では、アフターサービスや定期的なメンテナンスに相当します。住んでみて初めてわかる問題や要望があると思います。その対応をシステム開発会社と決めておきましょう。
まとめ
システム開発と注文住宅は、企画から完成・保守まで、多くの類似点があります。どちらも各フェーズでしっかりと作業を行い、コミュニケーションを取ることが重要です。
この記事を通じて、システム開発の各フェーズにおける注意点とその重要性を理解し、システム開発の発注を成功させましょう!
弊社でのシステム開発でもこのようなフローで行っておりますので、ご興味を持っていただいたら、ぜひ以下よりお問い合わせください。