はじめに
アーキテクトという役割に「システムを設計する人」
というイメージしか持っていなかった。
今後のキャリアを考える上でもアーキテクトという役割を理解したかったので『アーキテクトの教科書 価値を生むソフトウェアのアーキテクチャ構築』を読んでみました。
概要
タイトルに教科書と入っている通り、『アーキテクト』がソフトウェア開発の中で担う役割や利用する知識が網羅的に紹介されています。
アーキテクトとは...
アーキテクトは、ITシステム全体を経営戦略・ビジネス戦略を理解、考慮した上でソフトウェアの内部品質を高める為にシステム基盤を設計する専門家と理解しました。
市場の変化が激しい現代では、変化に対応するスピードが重要になります。
リリースを重ねる中でも生産性を保ち続けるシステムを作るにはアーキテクトの力が重要になります。技術的なスキルだけではなくビジネスを理解した上でシステム設計に落とし込む
事で持続可能なシステムを実現する事ができる!というメッセージを感じ取りました。
各章のメモ
1章 アーキテクトの仕事
- エンジニアの習熟度に依存せず、コードの保守性・拡張性を確保する為の方針、仕組みがソフトウェアのアーキテクチャである
- アーキテクトには、技術的な幅広い知識だけでなく、ビジネスのビジョン・ミッションや経営戦略を理解した上でビジネスサイドと円滑なコミュニケーションを図る能力も必要である
2章 ソフトウェア設計
- 大きな技術的負債を抱えてしまうリスクを回避する為、設計原則・パターンを活用する必要がある
- SOLIDの原則
- CLEANコード
- デザインパターン
- アーキテクチャスタイル
- アーキテクチャパターン
3章 アーキテクチャの設計
- アーキテクチャを設計する上でアーキテクチャドライバを整理する必要がある
- あらゆる品質特性で満点をとるアーキテクチャは現実的でないので重要な考慮事項を選定する事が重要である
4章 アーキテクチャの実装
- アプリケーション基盤として、「認証」・「認可」・「ログ」などはアーキテクトが主導する。その際、機能を用意するだけでなく開発チーム全体に浸透する事が重要。これらを主導し、開発フローを確立する事もアーキテクトの仕事である
5章 品質保証とテスト
- 品質保証の活動を早い段階で取り入れる
シフトレフト
を実現する上でアーキテクトも品質保証活動に深く関わる事が必要になる
6章 アーキテクトとしての学習と成長
アーキテクトはアーキテクティングを専門領域とするスペシャリストであると同時に、ソフトウェアエンジニアリング全般の知識や経験を有するジェネラリストである事が求められる。
感想
モジュラーモノリスやマイクロサービス、BFFパターンについてわかりやすく書かれており、レガシーシステムの保守メインで言葉としては知っていても詳しく理解できていなかった私にとっては非常に学びになりました。
アーキテクトを目指す・目指さないは別にして、システム開発に関わる上での知識のアップデートができる一冊だと感じました。
この本をきっかけに興味のある分野を深ぼっていく、初めの一歩的な立ち位置なのかなと思います。
アーキテクトであれ開発であれ、ビジネス・要求を深く理解する事は欠かせない事で、この理解の深さはシステム品質に直結すると常々感じていたが、書籍を通してあらためて強く感じるようになりました。