設計

なぜ・いつアーキテクチャ戦略を書くべきか

アーキテクチャ

戦略や戦術が明確に定義されていないケースは多い。その有用性や必要性が十分に認識されていないことが一因かもしれない。 「戦略を書く時間があるなら手を動かしたい」「書いても読まれない」という意見もあるかもしれない。しかし、戦略がないまま進めると、様々な問題が発生する。 この記事では、戦略がないとどうなるか、いつ戦略を書くべきかを整理する。 戦略がないとどうなるか 戦略がないまま進めると、以下のような問...

アーキテクチャ戦略 アーキテクチャ 設計

良いアーキテクチャ戦略・悪いアーキテクチャ戦略

アーキテクチャ

アーキテクチャ戦略を書いても、機能しないケースがある。形だけの戦略になってしまったり、実行に移されなかったりする。 この記事では、良い戦略と悪い戦略の違いを整理する。 良い戦略の要点 良い戦略は、課題分析→方針→施策の3要素を持つ。これは良い戦略、悪い戦略で定義されている「カーネル(戦略の核)」を、アーキテクチャ戦略の文脈で解釈したものである。 課題分析:現状の課題を分析し、何が問題かを明確にす...

アーキテクチャ戦略 アーキテクチャ 設計

アーキテクチャ戦略・戦術・設計の書き分け

アーキテクチャ

アーキテクチャに関するドキュメントを書く際、「これは戦略に書くべきか、戦術に書くべきか、それとも設計ドキュメントに書くべきか」と迷うことがある。 それはおそらく、戦略・戦術・設計の定義が曖昧であることや、書き分けに明確な基準がないことが原因だろう。 この記事では、戦略・戦術・設計の3層構造と、5W1Hを使った書き分けの指針を紹介する。 戦略・戦術・設計の3層構造 アーキテクチャに関するドキュメント...

アーキテクチャ戦略 アーキテクチャ 設計

ADRを書くときに抑えておくべきポイント

アーキテクチャ

ADR(Architecture Decision Record)は、ソフトウェアアーキテクチャに関する重要な意思決定を記録するためのドキュメントである。 ADRを書く内容が決まっていても実際書いてみると人によって内容がバラついたり、そもそも何を書けば良いのか分からなかったりして、形骸化してしまうことがある。 私の経験上大事だと思うことを4つにまとめた。 1:意思決定を一つに絞る(Atomicit...

Architecture Decision Record 設計 アーキテクチャ

要件と制約の違い

アーキテクチャ

ソフトウェア開発の現場で、「要件(Requirements)」と「制約(Constraints)」の違いに悩んだことはないだろうか。 私は設計を考える際に、この2つの概念を混同してしまうことがあった。 適切な設計を行うために、これらの違いを明確に理解することが大事であると感じたので、これらの違いについてシステム工学の国際標準である ISO/IEC/IEEE 29148 の定義をベースに整理してみた...

制約 要件 要求 設計 アーキテクチャ

ソフトウェア設計の結合バランス 持続可能な成長を支えるモジュール化の原則

アーキテクチャ

ソフトウェア設計の結合バランス 持続可能な成長を支えるモジュール化の原則を読んだ。 この本は結合をテーマにした珍しい本で、アーキテクチャ設計の複雑性をどう管理するかを理論的に学べる本。 複雑性をどう管理するかはアーキテクチャの寿命を決めるようなものだと思っているが、そのための分析観点として結合について深く学ぶことができる。 一回読んだだけでは頭に入り切らなかったので、設計するときなど辞書的に参照で...

設計

クリーンコードクックブック ―コードの設計と品質を改善するためのレシピ集

アーキテクチャ

クリーンコードクックブック ―コードの設計と品質を改善するためのレシピ集を読んだ。 本全体を通して、全単射と偶発的複雑さの概念について教えてくれる本であり、コードの設計と品質を改善するテクニックを学ぶことができる。 よく見知った法則なども網羅的に書かれているので、手元に置いておきたい一冊。 ...

設計

データモデリングでドメインを駆動する──分散/疎結合な基幹系システムに向けて

アーキテクチャ

データモデリングでドメインを駆動する──分散/疎結合な基幹系システムに向けてを読んだ。 帳簿という概念を軸に、基幹系システムを分散・疎結合化するためのデータモデリング手法を体系的に解説した本。 活動系(SoA)と経営管理系(SoM)という二分類やユースケース非依存の帳簿設計や「残」という新しい概念を提唱している。 単なるDB設計書では触れられない領域を掘り下げ、DDDやマイクロサービス化を進める上...

モデリング 設計 システム設計

システムアーキテクチャ構築の実践手法

アーキテクチャ

システムアーキテクチャ構築の実践手法を読んだ。 実務でアーキテクチャ設計に取り組む技術者のための実践ガイド。 前著システムアーキテクチャ構築の原理~ITアーキテクトが持つべき3つの思考が「なぜ」に焦点を当てていたのに対し、本書は「どのように」を解説している。 要求定義から論理設計、物理設計までを一貫して扱い、ビューによる文書化、再利用可能なアセットの活用、判断記録の残し方など、現場で役立つ具体的な...

アーキテクティング アーキテクチャ戦略 アーキテクチャ アーキテクト 設計 システム設計

アーキテクチャ・アーキテクト・アーキテクティングについて

アーキテクチャ

概要 システムアーキテクチャ構築の実践手法 (IT Architects’Archive ソフトウェア開発の実践)の第2章を参考に、アーキテクチャ、アーキテクト、アーキテクティングの定義とそれらの持つ要素を整理する。 アーキテクチャとは「構造」である IEEE 1471-2000において、アーキテクチャは以下のように定義されている。 コンポーネント、それら相互のまたは環境との関係、およびその設計...

システム設計 設計 アーキテクチャ アーキテクト アーキテクティング