『進化的アーキテクチャ ― 絶え間ない変化を支える』

翻訳を担当した書籍『進化的アーキテクチャ ― 絶え間ない変化を支える』(オライリー・ジャパン)が8月18日に出版になります。原書は2017年に出版された『Building Evolutionary Architectures ― Support Constant Change』(O'Reilly Media)です。

O'Reilly Japan - 進化的アーキテクチャ

現代におけるエンタープライズアーキテクチャは、もはや静的な計画をあてにすることはできなくなっています。そしてソフトウェア開発エコシステムは、ツールやフレームワーク、技術イノベーションの流れと共に絶え間なく変化しています。こうした状況の中で、いったん構築したシステムを成長させていくには、さまざまな変化に適応しながら進化するアーキテクチャをシステムに組み込む必要があります。本書は、そうしたアーキテクチャを「進化的アーキテクチャ」と名付け、その構築に必要な考え方や技術、実践方法などについて解説するものです。 ThoughtWorksの3人のスペシャリストから現代のソフトウェアアーキテクトに向けられた本書は、絶え間ない変化を支える進化的アーキテクチャを構築するために必要なすべてを提供する実践的なガイドです。

進化的アーキテクチャ(Evolutionary Architechture)」という考え方や重要性については、これまでにも何度かThoughtWorks関係者から語られてきていました。

例えば、Sam Newman『マイクロサービスアーキテクチャ』の結びは、

進化的アーキテクチャの概念を採用する方法を身に付けましょう。進化的アーキテクチャでは、あなたが新しいことを学ぶにつれシステムは徐々に柔軟になり変化します。ビッグバン型の書き直しではなく、システムを徐々に変更していって柔軟性を保つようにしてください。

となっており、同書の内容が「進化的アーキテクチャ」という考えの傘の下にあることが伺えます。

また、Kief Morris『Infrastructure as Code ― クラウドにおけるサーバ管理の原則とプラクティス』でも、「15章 Infrastructure as Codeのための組織」に「15.1 発展的なアーキテクチャ」(原書では「15.1 Evolutionary Architecture」)という節が設けられており、こちらでもやはり進化的アーキテクチャという考えが前提にあることが確認できます。

そして、元ThoughtWorkerのJez Humbleが共著を務める『The DevOps ハンドブック 理論・原則・実践のすべて』でも「進化的アーキテクチャ」はちょこちょこと顔を出し、

これは発展的なアーキテクチャの原則である。Jez Humbleは、「成功を収めた製品、組織のアーキテクチャは、かならずライフサイクルの過程で必要に迫られて発展します」と語っている。

発展的なアーキテクチャをサポートすれば、アーキテクチャは組織のそのときどきのニーズを満たすものになる。

といった具合に、ThoughtWorkerたちに「進化的アーキテクチャ」という考え方が根付いていることが確認できます(いずれも「第13章 ローリスクリリースのアーキテクチャ」より引用。こちらも訳語は「発展的なアーキテクチャ」となっていますが、原書では「Evolutionary Architecture」)。

しかしながら、これだけさまざまな文献から言及されつつも、ThoughtWorkerたちの考える「進化的アーキテクチャ」が一体どういったもので、それを実現するためにどうしたらいいのかをまとまって確認できる文献は存在していない状況でした。

本書は、ThoughtWorkerたちが「進化的アーキテクチャ」自体をテーマにして書いた初の書籍です。

本書の執筆陣は、ThoughtWorksのディレクターであるNeal Ford、CTOであるRebecca Parsons、主任コンサルタントであるPatrick Kua。序文はMartin Fowlerが務め、データベースを扱った第5章は『データベース・リファクタリング』の共著者としても知られるPramod Sadalageによる寄稿と、そうそうたる面子による書籍となっています。

ThoughtWorkerたちは、本書の刊行を皮切りに、進化的アーキテクチャのセッションを各地で精力的に行なっているようで、そのコンセプトはさまざまなフィードバックを受けてさらなる進化をしていくことは想像に難くありませんが(なにせ「進化的」を推進する側の彼らですから)、現代のソフトウェア開発におけるアーキテクチャの捉え方として興味深い内容が含まれている一冊になっていますので、ぜひ手に取っていただけると嬉しいです。

進化的アーキテクチャ ―絶え間ない変化を支える

進化的アーキテクチャ ―絶え間ない変化を支える