連載第1回:建築とシステム開発はなぜ似ているのか

four brown wooden chairs
Photo by Terry Magallanes on Pexels.com

建築とシステム開発は、作るものも使う道具も異なります。

しかし、仕事の進め方を分解すると、どちらも「要望を聞く」「設計する」「作る」「完成後に維持する」という流れで成り立っています。

建築では、住む人や使う人の希望を建物という形にします。

システム開発では、業務上の課題や利用者のニーズをソフトウェアという形にします。

この記事では、建築の工程を手がかりにしながら、システム開発で重要になる考え方を整理します。

まず押さえたい共通点

建築とシステム開発に共通しているのは、完成物そのものよりも、完成までの判断の積み重ねです。

  • 抽象的な要望を、具体的な仕様や設計に落とし込む。
  • 見た目だけでなく、安全性、使いやすさ、保守しやすさを考える。
  • 設計、制作、確認、修正を段階的に進める。
  • 完成後も点検や改善を続ける。

この共通点を理解すると、システム開発を「急にコードを書き始める作業」ではなく、「目的に合う仕組みを段階的に作るプロジェクト」として捉えやすくなります。

1. 要件定義とヒアリング:何を作るかを決める

要件定義とは、作るものに必要な条件を整理する工程です。

「何を実現したいのか」「誰が使うのか」「どのような制約があるのか」を明確にしないまま進めると、完成物が期待とずれてしまいます。

建築の場合

建築プロジェクトは、最初にクライアントの要望を聞き取るところから始まります。

住居であれば家族構成、部屋数、生活動線、予算、好みのデザインなどを確認します。

オフィスや店舗であれば、働きやすさ、来客スペース、導線、設備、将来の拡張性なども重要です。

  • 目的の明確化:住居、商業施設、公共施設など、建物の用途を整理する。
  • 機能面の整理:部屋数、広さ、動線、設備など、使い勝手に関わる条件を確認する。
  • 制約の確認:予算、敷地、法規制、周辺環境など、設計に影響する条件を把握する。

クライアントが建築の専門知識を持っていないことも多いため、建築士やデザイナーは要望をそのまま受け取るだけでなく、現実的な計画に変換する役割を担います。

システム開発の場合

システム開発でも、最初にビジネス上の目的や利用者の行動を確認します。

たとえば「問い合わせ対応を効率化したい」という要望がある場合、単に問い合わせフォームを作るだけでは不十分なことがあります。

どの部署が受け付けるのか、どの情報が必要なのか、返信までの流れをどう管理するのかまで整理する必要があります。

  • 業務フローの理解:現在の作業手順、困っている点、改善したい点を把握する。
  • 機能要件の整理:画面、入力項目、データ処理、通知、レポート作成など、システムに必要な機能を決める。
  • 非機能要件の整理:表示速度、セキュリティ、拡張性、運用しやすさなど、画面には見えにくい品質条件を確認する。

要件定義が曖昧なままだと、開発途中で「本当に必要だったもの」が見つかり、手戻りが大きくなります。

建築で間取りや用途を固めずに工事を始めると危険なように、システム開発でも目的と条件を固める工程が欠かせません。

2. 設計プロセス:作り方を具体化する

要件定義で「何を作るか」を決めたら、次に「どのように作るか」を設計します。

設計は、完成物の品質を左右する重要な工程です。

建築の場合

建築の設計は、大きく基本設計と実施設計に分けて考えられます。

  • 基本設計:建物の大まかな形、部屋の配置、構造、デザインの方向性を決める。
  • 実施設計:施工に必要な詳細図面、設備、材料、寸法、構造の条件を詰める。

基本設計は、完成イメージを共有するための設計です。

実施設計は、現場で実際に作れる状態にするための設計です。

この段階で曖昧さが残ると、施工中の判断が増え、品質やコストに影響します。

システム開発の場合

システム開発でも、全体設計と詳細設計を分けて考えると理解しやすくなります。

  • システム設計:システム全体の構造、画面構成、データの流れ、外部サービスとの接続方法を決める。
  • 詳細設計:画面ごとの動き、データベースの項目、APIの仕様、エラー時の処理などを具体化する。

アーキテクチャは、システム全体の骨組みを指します。

APIは、システム同士がデータをやり取りするための窓口です。

こうした設計を先に整理しておくことで、開発者ごとの実装のずれを減らし、後から変更しやすい構造を作れます。

設計で見落としやすい点

設計では、目に見える機能だけでなく、運用や保守に関わる条件も扱う必要があります。

  • 利用者が迷わず操作できる画面になっているか。
  • データが増えたときに処理が重くならないか。
  • 権限管理やセキュリティ上の配慮があるか。
  • 将来の機能追加に耐えられる構造か。

建築で、見た目だけを整えても配管や構造に問題があれば長く使えません。

システム開発でも、画面だけを整えて内部構造を軽視すると、運用後の改修が難しくなります。

3. 施工・開発とプロジェクト管理:計画通りに形にする

設計が固まると、建築では施工、システム開発では実装に進みます。

この段階では、進捗管理と品質管理が特に重要です。

建築の場合

建築現場では、現場監督が工事の進み具合、品質、安全性を確認します。

材料の納入、天候、施工手順、現場での調整など、計画に影響する要素が多いため、状況を見ながら管理する必要があります。

  • 施工の進捗管理:工事が予定通り進んでいるかを確認する。
  • 品質管理:建材や施工方法が設計に合っているかを確認する。
  • 安全管理:作業者や利用者に危険がないよう、現場の状態を管理する。

システム開発の場合

システム開発では、プロジェクトマネージャーや開発リーダーが、進捗、品質、課題を管理します。

開発チームは、設計に沿って実装しながら、動作確認や修正を繰り返します。

  • タスク管理:どの機能を誰がいつまでに作るかを明確にする。
  • コードレビュー:他の開発者がコードを確認し、誤りや改善点を見つける。
  • テスト:設計通りに動くか、想定外の入力でも問題が起きにくいかを確認する。
  • スプリント管理:短い期間ごとに作る範囲を決め、実装と確認を繰り返す。

アジャイル開発では、短い単位で計画、実装、確認、改善を回します。

すべてを最初に固定するのではなく、必要な確認を挟みながら進められるため、途中で見つかった課題にも対応しやすくなります。

共通する管理の考え方

建築でもシステム開発でも、計画通りに進んでいるかを確認するだけでは十分ではありません。

問題が見つかったときに、原因を整理し、影響範囲を見極め、必要な調整を行うことが重要です。

小さなずれを早めに見つけるほど、後戻りの負担は小さくなります。

4. 完成後の維持管理:作って終わりにしない

建築もシステムも、完成した瞬間がゴールではありません。

使い続けるためには、点検、修理、改善が必要です。

建築の場合

建物は、完成後も外壁、屋根、設備などが少しずつ劣化します。

安全に使い続けるには、定期的な点検と補修が欠かせません。

  • 外装のメンテナンス:屋根や外壁の劣化を確認し、必要に応じて補修する。
  • 設備の保守:給排水、電気、空調などの設備を点検する。
  • 使い方の変化への対応:利用人数や用途が変わった場合に、必要な改修を検討する。

システム開発の場合

システムも、リリース後に運用とメンテナンスが必要です。

利用者が増えたり、業務ルールが変わったり、セキュリティ上の対応が必要になったりするためです。

  • セキュリティパッチの適用:脆弱性が見つかった場合に更新を行う。
  • バグ修正:運用中に見つかった不具合を直す。
  • モニタリング:サーバーやネットワークの状態を監視する。
  • 機能改善:利用者の反応や業務の変化に合わせて改善する。

最初の設計段階で保守しやすさを考えておくと、リリース後の改修が進めやすくなります。

建築とシステム開発の対応関係

工程 建築での例 システム開発での例 見落とすと起きやすいこと
要件定義 用途、部屋数、予算、デザインの確認 業務フロー、機能、利用者、制約の確認 完成物が期待とずれる
設計 基本設計、実施設計、設備や材料の検討 画面設計、データ設計、API設計、詳細仕様 施工中や開発中の手戻りが増える
施工・開発 工事の進捗管理、品質管理、安全管理 実装、コードレビュー、テスト、タスク管理 遅延や品質低下につながる
維持管理 点検、補修、設備保守 運用、監視、更新、バグ修正 長く安全に使い続けにくくなる

まとめ

建築とシステム開発は、異なる分野でありながら、プロジェクトの進め方には多くの共通点があります。

どちらも、最初に要望を整理し、設計で具体化し、制作中に品質を確認し、完成後も維持していく仕事です。

特にシステム開発では、画面に見える機能だけでなく、非機能要件、保守性、運用しやすさまで考えることが重要です。

建築において構造や設備が長く使える建物を支えるように、システム開発では設計と運用の考え方が、長く使えるソフトウェアを支えます。

次回は、建築における品質管理やメンテナンスの考え方を手がかりに、見た目だけでは判断しにくい重要な部分についてさらに整理します。

システム開発の相談について

greedenでは、アイデアを具体的なシステムやソフトウェアとして形にするための相談を受け付けています。

課題の整理、設計、開発、運用改善まで、状況に合わせて柔軟にサポートします。

システム開発やソフトウェア設計について相談したい場合は、greedenのお問い合わせ窓口からご連絡ください。

投稿者 greeden

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)