Book: Building Evolutionary Architectures

Building Evolutionary Architectures: Support Constant Change

もうすぐ Refactoring 2ed. がでるという宣伝 Podcast のなかで Martin Fowler が言及していた Thoughtworks 勢の薄い本。

おまえらアーキテクチャレベルでもばんばんリファクタリングしていけよ、そのためには decoupling が重要だから Microservices にしとくといいよ、あとガンガン変えると非機能要件とかが失われがちだからテストとかモニタリングとか audit とか review とかで監視しとこうな (これを fit function と呼び、本書のコアコンセプトになっている)、ただ人手でチェックすると厳しいからなるべく自動化して CI/CD の pipeline に載せような、というような話だった。

読み始めたもののあまり興味がわかず、ぱらぱらっと読んで終わりにしてしまった。一つにはあまり新しい話がなく盛り上がらない。Thoughtworks シリーズで Refactoring, Continuous Delivery, Refactoring DatabasesNoSQL Distilled, Building Microservices とか色々あるのをぱらぱらっとつまみ食い用にまとめなおしたかんじがする。まあいいんだけど、もっと内容を絞ってそのぶん踏み込んだ知見を見せてほしい感じがする。

あとは例に出てくるのが Netflix だの GitHub だの Twitter だのの事例で、日経ナントカがエンタープライズのおっさん向けにインターネット・カンパニーの華々しい話をしてレガシー大変だろうけどおまえらもがんばれ、みたいに説教してる的な空気を感じてしまう。別に日経に悪意があるわけではないんだけれども、ふだんから HN とかを読んでる身としては新味がない。本書はたとえば DBA という職種をステレオタイプ化してディスっている説があるのだが、そんな SIer ディスってる退職ブログみたいな話されてもなあ・・・。同じエンタープライズ路線でも DDD とかは独自性や誇り的なものがあったじゃん。

あとは完全に個人的な話として、自分はもうアーキテクチャとか興味ないんだな、と思い知らされた。でかいプロジェクトの下っ端、アーキテクチャに口出す余地なし。ましてや組織がどうとか完全に out of control. たとえば Inverse Conway Maneuver, 最初にこの手の話を聞いたのは Twitter の microservices 移行の話だったと記憶しているが、その頃は零細でお山の大将をしていたときの感覚が残っていたので一定程度共感があった。今はもうない。

これは悲しいことだが、様々な選択の結果なので仕方ない。自分にとって actionable であったり、そうでなくてももうちょっと getting excited なものを中心に読んでいくほうがいいね。アーキテクチャとかは、こうしてたまにつまみ食いするくらいでいいでしょう。

同じアーキテクチャの話でも何年か前に読んだ Hadoop Application Architecture は一定程度楽しめたので、やはり乗っている要素技術のかっこよさは大事な気がする。RDBMS の trigger で microservices に migrate だよ、とかいわれても外野的な盛り上がりがゼロすぎる。実務家にはいいのかもだけどね。


そういえばこのあと関連する Accelerate という本も聴いた。こっちは割とよかった。いろいろな規模の会社で働く人々を相手にサーベイをしたら、やっぱし devops 的なノリで CI/CD しないと厳しいということがわかりました、という内容。まあそうっすね、という内容だが、説教ではなく調査をベースにしているのがよい。