4
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IT システムの設計について語るとき、「アーキテクチャ」という言葉がよく使われる。
この言葉はもともと建築の分野で使われてきた概念であり、ソフトウェアの世界でも「構造を設計する」という意味で広く用いられている。

確かに IT システムの設計は建築とよく似ている。

しかし、システム全体を俯瞰すると、建築という視点だけでは説明しきれない部分もある。
むしろ IT は建築と都市の両方の性質を持っていると言える。

この記事では、IT 設計を

  • 建築(建物)
  • 都市(都市インフラ)

という視点から整理し、

  • インフラとアプリケーションの役割
  • ウォーターフォールとアジャイルの関係
  • IT が建築や都市から学べる考え方

について考えてみようと思います。

1. IT 設計と建築の共通点

設計
まず、IT 設計と建築には多くの共通点がある。

建築では建物を建てる前に、設計を行う。

  • 構造
  • 電気
  • 配管
  • 空間

などを図面として整理し、その後施工に移る。

IT システムでも同様である。

  • システム構成
  • データ構造
  • API 設計
  • モジュール設計

などを設計し、その後に実装を行う。

工程
工程もよく似ている。

つまり設計 → 構築 → 検証という基本プロセスは共通している。

役割構造
また、役割構造も似ている部分が多い。

建築 IT
建築家 アーキテクチャ
構造設計 インフラ設計
空間設計 ソフトウェア設計
職人 エンジニア

そういった観点で、IT 設計はデジタル空間の建築と考えることができる。

2. アプリケーションは建物に近い

IT システムの中でも、アプリケーションは建物に非常に近い。

種類
一口に「建物」と言っても、住宅や店舗、オフィス、商業施設などがあるように、「IT システム」も Web サービスや業務システム、EC サイトと言うように様々な種別が存在している点も似ている。

内部構造
建物」には、部屋や通路、設備といった内部構造があるが、「アプリケーション」にも同様に、モジュールや API、 データモデルといった内部構造がある。

また建物は、骨格を維持したまま内部を変更することができる。

  • 内装変更
  • レイアウト変更
  • テナント入替
    ...など

同様にアプリケーションでも骨格を維持したまま内部を変更することができる。

  • UI 変更
  • 機能追加
  • API 変更
    ...など

こういった観点からも、アプリケーション設計は建物の設計に近いといえる。
この骨格を設計するのがソフトウェアアーキテクチャである。

3. IT インフラは都市インフラに近い

一方で、IT インフラは建物というより都市インフラに近い存在である。

都市では、建物が機能するために

  • 道路
  • 電力
  • 水道
  • 通信

といった基盤が必要になる。
これらが整備されて初めて都市は機能する。

IT でも同様である。

IT インフラ 都市インフラ
ネットワーク 道路
DNS 住所
データセンター 発電所
クラウド 土地
IAM 身分証

アプリケーションは、この基盤の上で動作する。つまり IT インフラは都市インフラに相当すると言える。

この領域を設計するのがシステムアーキテクチャである。

4. IT は都市の上に建物を建てる活動

ここまでの内容を整理すると、IT システムの構造は次のようになる。

IT 都市・建築
IT インフラ 都市インフラ
アプリケーション 建物
システムアーキテクチャ 都市計画
ソフトウェアアーキテクチャ 建築設計

つまり IT 開発とは都市の上に建物を建てる活動と考えることができる。

建築の世界では

  • 都市計画
  • 建築設計

は分離して考えられることが多い一方、IT では

  • インフラ設計
  • アプリケーション設計

が同時進行されることが多い。
これが IT 設計の難しさの一つでもある。

5. ウォーターフォールとアジャイルを建築・都市で考える

IT 開発では、ウォーターフォールとアジャイルという2つの開発思想がよく議論される。
これを建築と都市の視点で見ると理解しやすい。

ウォーターフォール

ウォーターフォールは事前設計を重視する方法であるが、これは建築で用いられる方法に近い。

建物は一度建ててしまうと、構造を大きく変更することが難しいため、基本設計や詳細設計を慎重に行う。

アジャイル

一方、アジャイルは小さく作り、改善を繰り返す方法であるが、これは都市の成長プロセスに近い。

都市は一度に完成するものではなく、新しい建物や道路、都市インフラが少しずつ追加・更新されながら成長していく。

IT システムも同様で、新サービスや機能などが徐々に追加されながら発展していく。

両者は対立ではない

ウォーターフォールとアジャイルは対立概念として語られることが多い。
しかし、都市と建築の視点で見ると、両方が必要であることが分かる。

領域 開発思想
インフラ 計画的設計
アプリケーション アジャイル

つまり、計画的設計とアジャイル改善のハイブリッドであると言える。

6. IT が都市や建築から学べること

都市や建築の分野には、長い歴史の中で培われてきた考え方がある。
IT でも参考になるものは多い。

設計責任の明確化

建築では

  • 設計者
  • 施工者
  • 監理者

が明確に定義される。

IT でも

  • システムアーキテクチャ
  • ソフトウェアアーキテクチャ

の責任を明確にすることは重要である。

設計図文化

建築では図面が非常に重要である。

  • 平面図
  • 構造図
  • 配管図
  • 電気図

IT でも

  • アーキテクチャ図
  • システム構成図
  • データフロー図

などを設計段階で整理する文化が重要になる。

第三者レビュー

建築では

  • 建築確認
  • 構造審査

などの第三者チェックが行われる。

IT でも社会インフラ化したシステムでは外部アーキテクチャレビューのような仕組みが有効かもしれない。

長期運用の視点

都市や建物は数十年単位で使われる。

IT でも

  • 保守
  • 拡張
  • 運用

を前提とした設計が重要になる。

7. まとめ

IT システムを建築の視点で見ると、設計や構造の重要性が理解しやすい。
しかし、システム全体を俯瞰すると、IT は都市と建築の両方の性質を持っている。

IT 都市・建築
IT インフラ 都市インフラ
アプリケーション 建物

つまり IT とは都市という基盤の上にソフトウェア建築を作り続ける活動と言える。

この視点で IT 設計を考えると、

  • インフラとアプリケーションの役割
  • アーキテクチャの責任
  • ウォーターフォールとアジャイルの関係

もより立体的に理解できるのではないだろうか。

4
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?