23章交渉とリーダーシップのスキル
交渉やリーダーシップは、手に入れるのが難しいスキルだ。効果的なソフトウェアアーキテクトになるために必要なスキルを身につけるには、何年にもわたる学習、実践、そして「教訓」となる経験が必要だ。本書を読んだからといって、アーキテクトが一晩で交渉やリーダーシップの専門家になれるわけではない。しかし、この章で紹介するテクニックは、これらの重要なスキルを身につけるための良い出発点となるはずだ。
23.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.