22章効果的なチームにする

ソフトウェアアーキテクトには、技術的なアーキテクチャの構築やアーキテクチャ決定に加えて、開発チームがアーキテクチャを実装できるようガイドするという役割もある。これをうまく行うことで、ソフトウェアアーキテクトは、問題を解決して優れたソリューションを生み出すために密に協力し合う、効果的な開発チームを作り上げられる。このことは当たり前のように聞こえるかもしれない。しかし、アーキテクトが開発チームを無視して、サイロ化された環境でアーキテクチャを作成しているのを私たちは何度も目にしてきた。そうしたアーキテクチャが開発チームへと引き継がれると、チームはそのアーキテクチャを適切に実装するのに苦労することになる。卓越したソフトウェアアーキテクトと他のソフトウェアアーキテクトの違いの1つは、チームの生産性を高められるかどうかだ。この章では、アーキテクトが開発チームを効果的にするために活用できる基本的なテクニックを紹介する。

22.1 チーム境界

ソフトウェアアーキテクトは、開発チームの成否に大きな影響を与える。私たちの経験上、このことは明らかだ。ソフトウェアアーキテクト(およびアーキテクチャ)から取り残されている、あるいは疎外されていると感じているチームは、システム上のさまざまな制約について正しいレベルのガイダンスや知識を得られていないことが多い。その結果、そうしたチームがアーキテクチャを正しく実装する可能性は低くなってしまう。

ソフトウェアアーキテクトの役割の1つは、開発者がアーキテクチャを実装する際の制約、つまり「箱」を作り、それを伝えることだ。アーキテクトは境界を、きつくも、緩くも、ちょうどよくもできる。これらの境界を、図22-1に示す。境界がきつすぎたり、緩すぎたりすると、それはチームがアーキテクチャをうまく実装できるかに直接影響する。 ...

Get ソフトウェアアーキテクチャの基礎 ―エンジニアリングに基づく体系的アプローチ now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.