なぜ・いつアーキテクチャ戦略を書くべきか
2026年2月5日戦略や戦術が明確に定義されていないケースは多い。その有用性や必要性が十分に認識されていないことが一因かもしれない。 「戦略を書く時間があるなら手を動かしたい」「書いても読まれない」という意見もあるかもしれない。しかし、戦略がないまま進めると、様々な問題が発生する。 この記事では、戦略がないとどうなるか、いつ戦略を書くべきかを整理する。 戦略がないとどうなるか 戦略がないまま進めると、以下のような問...
戦略や戦術が明確に定義されていないケースは多い。その有用性や必要性が十分に認識されていないことが一因かもしれない。 「戦略を書く時間があるなら手を動かしたい」「書いても読まれない」という意見もあるかもしれない。しかし、戦略がないまま進めると、様々な問題が発生する。 この記事では、戦略がないとどうなるか、いつ戦略を書くべきかを整理する。 戦略がないとどうなるか 戦略がないまま進めると、以下のような問...
アーキテクチャ戦略を書いても、機能しないケースがある。形だけの戦略になってしまったり、実行に移されなかったりする。 この記事では、良い戦略と悪い戦略の違いを整理する。 良い戦略の要点 良い戦略は、課題分析→方針→施策の3要素を持つ。これは良い戦略、悪い戦略で定義されている「カーネル(戦略の核)」を、アーキテクチャ戦略の文脈で解釈したものである。 課題分析:現状の課題を分析し、何が問題かを明確にす...
アーキテクチャに関するドキュメントを書く際、「これは戦略に書くべきか、戦術に書くべきか、それとも設計ドキュメントに書くべきか」と迷うことがある。 それはおそらく、戦略・戦術・設計の定義が曖昧であることや、書き分けに明確な基準がないことが原因だろう。 この記事では、戦略・戦術・設計の3層構造と、5W1Hを使った書き分けの指針を紹介する。 戦略・戦術・設計の3層構造 アーキテクチャに関するドキュメント...
ADR(Architecture Decision Record)は、ソフトウェアアーキテクチャに関する重要な意思決定を記録するためのドキュメントである。 ADRを書く内容が決まっていても実際書いてみると人によって内容がバラついたり、そもそも何を書けば良いのか分からなかったりして、形骸化してしまうことがある。 私の経験上大事だと思うことを4つにまとめた。 1:意思決定を一つに絞る(Atomicit...
システム設計面接の傾向と対策を読んだ。 面接対策というテーマではあるが、システム設計のパターンを学ぶにもちょうど良い。 作問する側にとっても参考になると思う。 システム設計の勘所を抑えた質問のパターンについても参考になる部分があるので、システム設計面接ではない技術面接の面接官にとっても役立ちそう。 この手の本は少ないが、アーキテクチャの設計事例やパターンについて実例に近い形で学ぶことができる本はも...
LTで簡単にまとめた資料もあるので、要約を知りたい場合は以下を参照してほしい。 cf. AAPについて調べてみた アーキテクチャアドバイスプロセスとは何か 現代のソフトウェア開発では、チームの自律性と開発速度が重要視される一方で、アーキテクチャの一貫性も求められる。この相反する要求に応えるのが、アーキテクチャアドバイスプロセス(Architecture Advice Process, AAP)であ...
技術選定や設計判断を行う際には、制約やトレードオフを明示することが極めて重要である。 意思決定とは、常に限られた条件のもとで、複数の選択肢から最適なものを選ぶ行為である。したがって、その判断がどのような前提や制限の中で行われたのかを明文化しない限り、後から見て「なぜこの選択がされたのか」を理解することは困難となる。 意思決定の前提を明示できる 技術的な意思決定は、「その時点での状況」「与えられた制...