Magnolia Tech

いつもコードのことばかり考えている人のために。

『アーキテクトの教科書 価値を生むソフトウェアのアーキテクチャ構築』を読みました

米久保 剛さんが執筆された『アーキテクトの教科書 価値を生むソフトウェアのアーキテクチャ構築』という本が出版されました

https://x.com/tyonekubo

設計ナイト2024大吉祥寺.pmと、最近の自分主催のイベントで立て続けに発表頂いたご縁もあり、献本頂きました。

ありがとうございます>米久保 剛さん


一口に「アーキテクト」と言っても、期待される役割はけっこうプロジェクトによっても違っていて、インフラ寄りだったり、アプリ寄りだったり、データベース寄りだったりと、そのプロジェクトの特性や、組織構成によっても千差万別です。

そのため、「アーキテクトができます」「アーキテクトをやってほしい」というだけではなかなか期待値も合わないことが多いです。

本書では、以下の6章に渡って「プロジェクトにおいてアーキテクトが実践する内容」が解説されています。

第1章 アーキテクトの仕事
第2章 ソフトウェア設計
第3章 アーキテクチャの設計
第4章 アーキテクチャの実装
第5章 品質保証とテスト
第6章 アーキテクトとしての学習と成長

当然、書かれている内容を読んで、「自分の思っているアーキテクト像と違う!」とか、「こんなこと、全部はやれないよ」という感想も有るかもしれません。しかし、こうやって定義されることで、共通理解が進み、プロジェクトメンバ内で認識を合わせることはできます。

この本の良いところは、設計手法や観点だけでなく、「第6章 アーキテクトとしての学習と成長」のような、なかなか普段のプロジェクトの中で表立って取り上げられることの無いテーマもきちんと言及されている点だと思います。「自分がアーキテクトになっていくためにどんな心構えが必要なのか」と悩んでいる人にはとても学びの多い本だと言えます。


特に自分がいいな、と思ったのが第2章です。

ゼロからのソフトウェア設計、最初はどこから手をつけていったらいいのか全然分からないんですよ

第2章「ソフトウェア設計」では、基本的な設計のアクティビティ(V字モデル)、4つの抽象(アーキテクチャ設計、モジュール設計、コンポーネント設計、クラス設計)、プラクティス(SOLID原則)、設計パターンと、設計を語っていく上での基本概念が、密度高く語られていきます。とりあえず、この章だけでも読んでおけば戦場で丸腰になることだけは無い...なんか喋っている内容がわかるようになります。

コミュニケーションを成立させるためにも第2章は必ず読みましょう。

その後、第3章と第4章で具体的な設計のやり方、実装のやり方につながっていきます。ただ、ここはいきなり本を読んで学ぶ、というより、実際の設計成果物と比較しながら読んでいく方が、より理解が高まってよいと思いました。


本書は「包括的な設計手順書」でもないし、「あらゆる場面で利用できるソフトウェア設計手引き」でもないので、この本を頭から読んで全部頭の中に入れればアーキテクトとしての設計ができる、わけではない点は注意しましょう。あくまで自分が普段接している、もしくはこれから接する課題に対して、先人たちはどのように解決してきたのか、その視点や、おおまかな手順を学ぶためのものとして取り入れるのが良くて、やみくもにこの本に書かれている通りの用語や、手法にこだわる必要は無く、プロジェクトにおける課題を解決するにあたって、「このような考え方、手法もある」といってメンバと共有するために使う、というやり方が良いでしょう。

プロジェクトメンバと一度読書会をやって、アーキテクトとしての知識や、振る舞いに対するベースラインを合わせておく、などの使い方に向いています(拾い読みもしやすい構成になっていますし)


というわけで、メンバと設計や開発プロセスの会話をする時に、すぐに取り出せるように、机の脇に常備しておくと良い本です。

ぜひ、読む用、貸す用、あげる用とみんな3冊ずつ買っておきましょう。

オマケ