Design It!を読んだ

www.oreilly.co.jp

結構前に買って積んでたんですが、業務でアーキテクチャについて考える機会があって、そういえばまだ読んでなかったなと思って、ひとまず一気に目を通しました。最後のリファレンス的な手法紹介以外は結構サクサク読めて、それも意外でした。アーキテクチャの書籍というと、どうしても文面からも重厚感が漏れてくることがあって、警戒していたんですがそれは見事に裏切られました。つまり、とてもよい本でした。設計という作業に「魔法」を求めていた自分には、パラダイムの変換を迫られた、いい機会になりましたね。

この本が新しいのは読みやすさもそうですが、複数の意味での「軽さ」だと感じました。アーキテクチャ周辺の伝統として漂っていた雰囲気はなくて、アジャイル的な開発手法としっかりアーキテクチャを作り上げていく行為の間での現実解を教えてくれる、そういったバランスの良さが新鮮でした。ちなみに現在、業務でも週次でスプリントを回す開発手法を部門全体で取っているので、そんな自分にとってはぴったりの本でした。

昔、後輩にYAGNIだと言われて密かに根に持っているわたしなんですが、この業界の中では典型的な「抽象的思考オタク」種族に属するわけです。そんな自分には「アーキテクチャ」ということはうっとりする響きで、しっかりと細部まで定義された開発プロセスとかシステムコンポーネントについての分類を眺めて「学びを得る」ことに何の苦痛も感じない人間なわけですが、そんな自分でもさすがに心の底では気付いてしまっているわけです。

現実的にはしっかり設計を詰めてる時間なんてない、ってことを。

紹介されている手法はアジャイル的なイテレーションが中心で、これが現実的な手法として使える第一の理由かと思われます。すばらしいのは、「どれぐらい事前に設計してから実装作業に入るべきか」「一回あたりのイテレーションをどれぐらいの大きさで回せばいいのか」みたいな普通はセンスに頼らざるを得ないような基準についても、一定の見解を示していることです。少なくとも、わたしには結構説得力がある基準だったので、早速、今日も心に留めながら仕事してました。全体で歌われているのは「完璧な設計」ではなくて「現時点で充分な設計」を目指せ、ということで、それ以外のことはなるべく判断を遅らせなさい、とも書かれています。ここらへんは普段も意識している部分でしたし、他の部分でも、自分の考え方とも齟齬がほとんどなくてスッと入ってきました。つまり、経験則をちゃんと言語化してもらったような読書体験でした、あくまでわたしの場合ですが。

あと、普通にアーキテクチャ本らしいところもあって、アーキテクチャの典型的パターンや設計手法に関しての具体的手法なんかはこれからも何度となく参照することになると思います。電子書籍で買ったんですけど、物理本をもう一冊買って、手元に置いておこうかなと一瞬考えたぐらい。それぐらい、最近ではアタリでした。興味ある方はぜひぜひどうぞ。