24章効果的なチームにする
ソフトウェアアーキテクトには、アーキテクチャの構築やアーキテクチャ決定といった技術的な責任に加えて、開発チームをリードし、アーキテクチャの実装を通じてチームを導く責任も負っている。これをうまく行うアーキテクトは、問題を解決して優れたソリューションを生み出すために密に協力し合う、効果的な開発チームを作り上げる。これは当然のように聞こえるかもしれない。しかし、アーキテクトが開発チームと連携せずに単独でアーキテクチャを作成しているのを私たちは何度も目にしてきた。そうして作られたアーキテクチャが開発チームへと引き継がれると、チームはそのアーキテクチャを適切に実装するのに苦労することになる。
卓越したソフトウェアアーキテクトと他のソフトウェアアーキテクトの違いの1つは、チームの生産性を高められるかどうかだ。この章では、アーキテクトが開発チームを効果的にするために活用できる基本的なテクニックを紹介する。
24.1 コラボレーション
あまりにも多くのケースで、アーキテクティングと開発はまったく別の活動として扱われている。従来型のアーキテクトの役割と開発者の役割を比較した図24-1を見てほしい。アーキテクトは、ビジネス要件を分析してアーキテクチャ特性(「イリティ(-ility)」)を抽出・定義し、ドメインに適したアーキテクチャパターンやスタイルを選択し、コンポーネント(システムの構成要素)を定義することに責任を持つ。これらの活動で作成された成果物は、開発チームに引き継がれる。そして、開発チームは、コンポーネントごとのクラス図を作成し、ユーザーインターフェイスとなる画面を設計し、それらを実装・テストすることに責任を持つ。
図24-1 アーキテクトと開発者の従来の役割を比較した図 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access