BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース アーキテクチャ能力の評価と改善 - SEIの新たな論文

アーキテクチャ能力の評価と改善 - SEIの新たな論文

Carnegie Mellon® Software Engineering Institute (SEI) は最近、「Models for Evaluating and Improving Architecture Competence(アーキテクチャ能力の評価と改善のモデル)」(source)という87ページにわたるレポートを公開した。これは、ソフトウェアアーキテクトやソフトウェア組織が、どのように高品質のアーキテクチャを一貫して生み出す環境を育てることができるかについて検証している。要旨からの抜粋は次のとおりである。

ソフトウェアアーキテクチャ能力とは、個人または組織が、ソフトウェアのアーキテクチャ中心の方法論を実行するために必要なスキルと知識を習得、利用、および維持できる能力です。アーキテクチャにおけるこれまでの仕事は、技術的側面、すなわちアーキテクチャを作成、分析、使用するための方法とツールに焦点が当てられてきました。しかし、違った見方では、これらの活動は組織内で働いている人々によって行われ、その人々と組織は、一貫して高品質なアーキテクチャを生み出すための支援を利用できるという認識です。

このレポートでは、人間の行動と能力の4つのモデルが、ソフトウェアアーキテクトに関連すると見なしている。職務・スキル・知識、ヒューマンパフォーマンス工学、組織的連携、組織的学習の4つだ。

ソフトウェアアーキテクトに必要な職務・スキル・知識(DSK; Duty, Skill, Knowledge)

執筆者ら(Len Bass、Paul Clements、Rick Kazman、Mark Klein)は、「職務・スキル・知識の3要素は個人のアーキテクチャ能力の基礎を形成している」と述べ、膨大な生データを集約する相当な研究努力に基づいて各領域の属性を一覧表にした。

特定された職務には次のものが含まれる。

  • 設計 - アーキテクチャの作成、アーキテクチャの評価と分析、ドキュメンテーション、既存のシステムと変換、上述のカテゴリに特定されないその他の設計職務
  • アーキテクチャ以外のライフサイクルフェーズ - 要件、コーディング、テスト、将来の技術、ツール、および技術選定
  • 利害関係者とのやりとり - 一般の利害関係者、クライアントや開発者以外の利害関係者、クライアント、開発者とのやりとり
  • 管理 - プロジェクト管理、人的管理、管理のサポート
  • 組織および関連業務 – 組織、業務
  • リーダーシップとチーム育成 - 技術的リーダーシップ、チーム育成

特定されたスキルには、次のものが含まれる。

  • コミュニケーション能力 - 外部コミュニケーション能力、一般のコミュニケーション能力
  • 内部コミュニケーション能力 - チーム内、チーム外での対人能力
  • 仕事のスキル - リーダーシップ、仕事量を効果的に管理するスキル、企業社会で卓越するスキル、情報を取り扱うスキル
  • 個人的スキル - 個人的資質、未知の要素を扱うスキル、予期せぬ展開を扱うスキル、学習スキル

特定された知識には、次のものが含まれる。

  • コンピュータサイエンス知識 - アーキテクチ概念の知識、ソフトウェア工学の知識、設計知識、プログラミング知識
  • 技術とプラットフォームの知識 - 特定の技術とプラットフォームの知識、一般的な技術とプラットフォームの知識
  • 組織の状況と管理に関する知識 - 組織の文脈と管理に関する知識--ある分野の専門知識、業界知識、企業知識、リーダーシップおよび管理の技術と経験

このレポートでは、各個人がDSK能力を向上できる3つの方法を提案している。

    1. 職務を行って経験を積む: 見習いは経験を得るために非常に有効な道である。実地の応用のない教育は単に知識を高めるだけであるため、教育だけでは不十分である。
    2. 技術以外のスキルを向上させる: この向上の側面には、たとえばリーダーシップや時間管理など、専門能力開発コースを受講することが含まれる。.
    3. 一連の知識を習得する: 有能なアーキテクトが行うべき最も重要なことの1つは、一連の知識を習得してそれを最新の状態に維持することである。コースを受講する、認定を受ける、本や専門誌を読む、Webサイトやポータルにアクセスする、ブログを読む、アーキテクチャ指向の会議に出席する、専門家の学会に参加する、他のアーキテクトと会うといったことはすべて、知識を向上させるために有用な方法である。

ヒューマンパフォーマンステクノロジー、個人の能力の改善に適用される工学的アプローチ 

このセクションで、執筆者らはThomas F. Gilbert氏(source)によって開発されたHuman Performance Technology(HPT)をどのように利用できるかについて議論している。

    • 私たちは価値のあるパフォーマンスを工学的に実現することを望む。つまり、合理的なコストで成果を生み出すパフォーマンスである。価値 = 成果 / コスト。
    • Potential for Improving Performance(PIP)とは、模範的(exemplary)パフォーマンスと平均的(typical)パフォーマンスの比率である。模範的パフォーマンスとは、合理的に望むことができるベストパフォーマンスを意味する。PIP = Wexemplary / Wtypical。最高の環境の最高の労働者が10ユニットのコストで75ユニットのパフォーマンス価値を達成する場合、その労働者のパフォーマンスは7.5である。平均的な労働者が2.5のパフォーマンスを達成する場合、3のPIPがあることになる。つまり、改善ステップによって、平均的なパフォーマンスの労働者が生み出すものを3倍にできる機会を示している。

      高いPIP値は、かなりの改善の余地があり、努力を注ぐ必要があることを示す。低いPIP値(1に近い)は、さらなる改善のために多くの投資が必要となることを示す。非常に競争の激しい分野におけるPIP値は低い傾向にあり、非常に繰り返しの多い仕事のPIPも同様である。この推論は、「パフォーマンスの低い人はたいてい大きな潜在力を秘めている。」と見なしている(Gilbert氏が明確にそう示している)。つまり、「人またはグループが無能力なほど、そのパフォーマンスの改善は容易である」。「能力の一般的な質」は存在しないため、意味のあるものにするためには、特定可能な達成についての比率を示す必要がある。
    • パフォーマンス改善の鍵は、パフォーマンスの価値を正確に反映する適切な測定法を探すことである。

(HPTの最新の進化はThe Six Boxes Model(source)で参照できる)。

執筆者らは、HPTの適用における次の2つの問題点を特定した。アーキテクトのパフォーマンスの価値をどのように測定するのか? 価値を算出するにはどんなインフラストラクチャが必要なのか?

今のところ、私たちは、1つ目の問題に関しては予備的な考えがありますが、2つ目の問題に関する報告はありません。DSKモデルからの職務を使用してアーキテクトの仕事のさまざまな側面を分離することを提案します。

組織的連携、組織内の人や部門がどのように情報を共有するかに関する研究

レポートのこのセクションは、マルチサイト開発に焦点を当てている。このレポートでは、各チームがモジュールに取り組んでいる前提で、Dependency Structure Matrix(source)を使用してモジュール間の相互作用を公開することを提案している。DSMは、組織内でどのくらいの連携が必要であるかの測定を提供する。

連携能力を、組織アーキテクチャによって課せられる連携要件に合わせる組織の能力は、アーキテクチャ能力の一面です。.

次に、連携の手段について、アーキテクトがチーム間の仲介者としてどのように役目を果たすことができるかに関する議論も含めて論じている。

たとえば、アーキテクトを2組の開発者間の仲介者として有する利点は、追加の状況情報を入手できることと将来決定を行う際に決定を利用できることです。仲介者の不利点には、ボトルネック(障壁)の可能性、遅延が生じる可能性、および開発者間で情報をやりとりする際の情報損失の可能性などがあります。

組織的学習、組織がパフォーマンス改善のための知識をどのように取得、吸収、利用するかのアプローチ

レポートでは、アーキテクチャ上有能な組織には「マインドフルネス(注意深さ)」というものを通じて経験を知識に変える能力があると主張している。

たとえば、モジュールやサブシステムの完成後にレビューやアーキテクチャ分析を実施し、何が成功して何が失敗したかを学習するアーキテクチャチームは、マインドフルな学習に従事するグループの良い例となります。

結論

レポートの最後の章では、モデルに含まれる次のような原則に焦点を当てている。

他のアーキテクトを指導することは高品質なアーキテクチャにつながる可能性が高いです。なぜなら、指導を受けることは、現実の経験を積み、より有能なアーキテクトになるための効果的な方法だからです。

さらに、レポートでは、能力の評価についてどのような質問を行えば良いかを論じている。たとえば、職務の場合の例は次のとおりである。

職務: アーキテクチャの作成
質問: どのようにアーキテクチャを作成するのか?

  • アーキテクチャと企業目標との整合性をどのように確保するか?
  • アーキテクチャ作成プロセスへの入力はどんなものか? どんな入力がアーキテクトに提供されるか?
  • アーキテクトは提供された情報の有効性をどのように確認するか? 入力が不十分/不適切である場合にアーキテクトはどうするか?

執筆者らは、壮大な「能力の統一モデル」の提案を避けているが、代わりに、モデルを使用した改善の戦略を提供し、次のように締めくくっている。

4つのモデルの集まりは、多くの方法で強力なカバー範囲を提供します。これらのモデルは、現在の活動と過去のパフォーマンスを測定するための基準を提供します。また、観察的可能性の範囲(資産、プロセス、人、組織)をカバーします。最後に、これらのモデルは1つのグループとして、個人、チーム、および組織にうまく適用します。このカバー範囲は、4つのモデルの集まりが価値のある信頼できる結果を生むということを私たちに確信させてくれます。

レポートはここ(PDF・英語)からダウンロードできます(PDF・990 KB)。

原文はこちらです:http://www.infoq.com/news/2008/05/architecturecompetence

この記事に星をつける

おすすめ度
スタイル

BT