特集:.NETアーキテクトの実用プラクティス

.NET開発のITアーキテクトになるための極意

クロノス 亀野 弘嗣
2008/08/27
Page1 Page2 Page3

はじめに

 本稿は、「ITアーキテクト」という職種の中でも、特に.NET系の開発プロジェクトにおけるアーキテクト(以下、.NETアーキテクト)について、開発現場での役割と作業を説明する。

 開発現場では.NETアーキテクトはどのような役割で、どのようなことに気を付けて取り組めばよいか? そのポイントを、筆者の経験を交えながら説明していきたい。これから.NETアーキテクトを目指す方々に、.NETアーキテクトとはどのようなものか知っていただければと思う。

ITSSでのITアーキテクトの定義

 ITアーキテクトに関しては、経済産業省のITSS(ITスキル標準)によって厳密に定義されている。まずはその定義を知っておこう。ITアーキテクトが行うべき業務内容は以下のとおりだ。

ITSSによるITアーキテクトの定義
  • ビジネスおよびIT上の課題を分析し、情報システム化要件をまとめる。
  • 顧客のビジネス戦略を実現するためにITアーキテクチャを設計する。
  • 設計したアーキテクチャが課題を解決できることを確認する。
  • 後続の開発、導入が可能であることを確認する。
  • 情報システムが満たすべき基準を明らかにする。
  • ソリューションの実現性に対する技術リスクについて事前に影響を評価する。

 要は、さまざまな課題をかんがみてシステムのアーキテクチャを設計する人のことだ。

 ITSSでは、ITアーキテクチャは、さらに以下の3つの専門分野(アプリケーション・アーキテクチャ、インテグレーション・アーキテクチャ、インフラストラクチャ・アーキテクチャ)に分類される。

  アプリケーション・アーキテクチャ インテグレーション・アーキテクチャ インフラストラクチャ・アーキテクチャ
要件定義 ビジネスおよびIT上の課題を分析し、機能要件として再構成する 全体最適の観点から異種あるいは複数の情報システム間の統合および連携要求を分析し、統合および連携要件として再構成する ビジネスおよびIT上の課題を分析し、システム基盤要件として再構成する
アーキテクチャ設計 機能属性、仕様を明らかにし、アプリケーション・アーキテクチャを設計する 統合および連携仕様を明らかにし、インテグレーション・アーキテクチャを設計する システム属性、仕様を明らかにし、インフラストラクチャ・アーキテクチャを設計する
実現可能性の評価 設計したアーキテクチャがビジネスおよびIT上の課題に対するソリューションを構成することを確認するとともに、後続の開発、導入が可能であることを確認する 設計したアーキテクチャが統合および連携要求を満たすことを確認するとともに、後続の開発、導入が可能であることを確認する 設計したアーキテクチャがビジネスおよびIT上の課題に対するソリューションを構成することを確認するとともに、後続の開発、導入が可能であることを確認する
ITSSが定めるITアーキテクチャの3つの専門分野
詳しくはITSSのページを参照。

 ITSSにおけるITアーキテクトについてもう少し詳しく知りたい場合は、(少し古い情報だが)「ITスキル標準V2 ITアーキテクト解説書ダイジェスト」が分かりやすい。

.NETアーキテクトの開発現場での役割

 以上が世間一般的なITアーキテクトの役割の厳密な定義だが、筆者は、ITアーキテクトを「技術面のマネジメントを行う役割だ」と定義している。つまり、プロジェクト・マネージャーがプロジェクト全体の管理を行うのに対し、技術面全体の管理を行うのが、ITアーキテクトの役割なのである。

 ITアーキテクトの具体的な作業は、ITSSで定義されている説明どおりである。ただし、.NET開発におけるITアーキテクトである.NETアーキテクトは、現実的にはITSSで定義されている専門分野を1人で担当することが多い。

3つの専門分野を1人で担当する.NETアーキテクト

 このような広範囲の専門分野を.NETアーキテクトが1人で担当可能であることには理由がある。それは、.NETを使用したプロジェクトが、Java開発のようなオープンソース・プロダクトを使用したプロジェクトの場合と異なり、マイクロソフトが1社で統合的に提供している技術を用いるからである。ほとんどの場合、.NET Frameworkおよびマイクロソフトのサーバ製品でソリューションを提供できるため、1人でも全体を把握しやすいのである。

 また、.NETで業務アプリケーションの開発を行う場合、中小規模のプロジェクトが多いという背景もある。.NETでは、.NET Framework単体で多種多様な開発に対応する機能が用意されているため中小規模のプロジェクトにおける生産性が特に高く、Javaなどのフレームワークを使用する場合に比べて、おのずと動員するエンジニアの人数は少なくなる。開発の規模が小さければ、1人で3つの専門分野を兼任することも可能になってくる。実際にアーキテクト1人、プログラマー2人の計3人程度の構成で行う開発も.NETの開発では珍しくはない。

 時々「スーパー・プログラマー=アーキテクト」と、間違えた認識をしている方がいるが、プログラミングに対する知識だけでは、その役割を果たせない。

 1人ですべての専門分野を担当するとなると、プログラミングに関する知識以外に、広範囲な知識が必要とされる。特に、企業システム全体をとらえたトータル・ソリューションを提供するためには、マイクロソフト製品についてはよく知っておく必要があるだろう。もちろん、コミュニケーション能力や折衝能力も不可欠である。

.NETアーキテクトに求められる知識や能力

 では、.NETアーキテクトは実際に何を行うのだろうか? これはひと言でいうと「プロジェクトで利用する技術に関するすべての問題解決」である。次に、その具体的な内容を示す。


 INDEX
  [特集].NETアーキテクトの実用プラクティス
  1..NETアーキテクトの開発現場での役割
    2..NETアーキテクトの具体的な作業
    3..NETアーキテクトのチェック・ポイント/.NETアーキテクトの心構え


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間