6章アーキテクチャを選ぶ(君がアーキテクチャに選ばれる前に)
すべてのソフトウェアシステムはアーキテクチャを持つ。けれど、それは望むアーキテクチャが自然と最後に残るということではない。設計判断を天に任せるなら、どんな運命が待っているかは言うまでもないことだ。ソフトウェアシステムをどのように構成するかについて積極的に判断を下すことで、私たちのニーズに合ったアーキテクチャを得られる可能性は著しく高まる。
ソフトウェアアーキテクチャを設計するとは、つまりは不確実性のもとで決定を下すということだ。設計判断にはトレードオフが含まれる。悪いことを避けるために良いことを諦める、あるいは良いことを得るために悪いことを受け入れる。許容できるトレードオフを行うことは、アーキテクチャ上重要な要求(ASR)を実現し、ステークホルダーのビジネス目標の達成に役立つことだ。
この章では、ASRに基づいた意思決定を推進することで、アーキテクチャの構造を選択する方法を学んでいく。
6.1 選択肢を広げるために発散させ、決定するために収束させる
決定を下すということは、選択肢が複数あることを意味する。選択肢が一つしかないのなら、何も決めることはないからだ。決定は自分たちのために下すものだ。多くの選択肢があることを確認するには、設計空間を探求する必要がある。
設計の探求とは、発散と収束を繰り返す旅だ。問題を特定したら、考えを発散させ、その問題を解決できる設計上の選択肢を作り上げる。選択肢が台の上に載ったならば、合意形成によって考えを ...
Get Design It! ―プログラマーのためのアーキテクティング入門 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.