訳者まえがき
よくできた戦略的設計は、正しい方向を指し示す地図となる。
――Vankat Subramaniam、Andy Hunt 『アジャイルプラクティス』
2017年9月に出版されたNeal Ford、Rebecca Parsons、Patrick Kua著『Building Evolutionary Architectures:Support Constant Change』(O'Reilly Media, 2017)の全訳をお届けする。本書は、ソフトウェアシステムの戦略的設計、すなわちアーキテクチャ構築のあり方を一歩先に進めようという意欲を持った内容となっている。
本書で語られる「進化的アーキテクチャ」のコンセプトは、序文を寄せているMartin Fowlerが「設計の終焉?†1」で提唱した「進化的設計(Evolutionary Design)」という考えの延長線上にあると見ると捉えやすい。進化的設計とは、テスト駆動開発やリファクタリング、継続的インテグレーションといった開発プラクティスを足がかりに、その都度「必要十分な設計」を行いながら、時間の経過とともに少しずつ設計を洗練させていくことで、変化に適応しようというアプローチであり、その結果として実現された設計のことをいう。
[†1] https://www.martinfowler.com/articles/designDead.html(日本語訳: http://objectclub.jp/community/XP-jp/xp_relate/isdesigndead)
本書をお読みいただけると分かるが、この進化的設計の説明は、そのまま進化的アーキテクチャの定義と言っても差し支えないように感じられる。ではなぜ、今新たに「進化的アーキテクチャ」というコンセプトとして改めて語る必要があるのだろうか。そこには、この20年弱における様々な変化が影響している。 ...