ホーム

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

アーキテクチャ

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

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

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

アーキテクチャ

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

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

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

アーキテクチャ

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

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

SAML 2.0 仕様まとめ

アーキテクチャ

OASIS Security Assertion Markup Language (SAML) 2.0 に基づく要点整理。 概要 SAML(Security Assertion Markup Language)は、XMLベースの認証・認可データ交換標準。 異なるセキュリティドメイン間で、ユーザーの認証情報や属性情報を安全にやり取りするためのフレームワーク。主にエンタープライズ環境でのSSO(シン...

SAML 認証 認可

OpenID Connect 1.0 仕様まとめ

アーキテクチャ

OpenID Connect Core 1.0 に基づく要点整理。 RFC用語(RFC 2119) 用語 意味 MUST / REQUIRED / SHALL 絶対的な要求事項 MUST NOT / SHALL NOT 絶対的な禁止事項 SHOULD / RECOMMENDED 推奨(特別な理由がない限り従うべき) SHOULD NOT / NOT RECOMMENDED...

OIDC 認証 認可

OAuth 2.0 仕様まとめ

アーキテクチャ

RFC 6749(OAuth 2.0 Authorization Framework)およびRFC 6750(Bearer Token Usage)に基づく要点整理。 RFC用語(RFC 2119) 用語 意味 MUST / REQUIRED / SHALL 絶対的な要求事項 MUST NOT / SHALL NOT 絶対的な禁止事項 SHOULD / RECOMMENDED...

OAuth 認証 認可

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

アーキテクチャ

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

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

要件と制約の違い

アーキテクチャ

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

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

チームトポロジーとは何か

マネジメント

チームトポロジーとは何か? チームトポロジーとは「ビジネス価値のフロー(流れ)を最大化するための、適応型の組織設計モデル」である。 従来の組織設計(階層型組織図)と決定的に異なるのは、以下の点を最優先することである。 静的な「ヒエラルキー」ではなく、動的な「フロー」を重視する 「人間の認知負荷(Cognitive Load)」を設計の制約条件とする ソフトウェアアーキテクチャと組織構造をセットで...

チームトポロジー チームマネジメント 組織設計

ソフトウェア開発チームがMVVを定めるべき理由

マネジメント

ソフトウェア開発において「技術的に正しいか」を議論することは重要である。しかし、それだけでは不十分である。技術的な正解というものは、技術のトレンドや実行環境、あるいはビジネスフェーズの変化によって容易に変容するからである。 論理が整っていることは大前提だが、変化の激しい開発現場において、チームが一貫性のある評価軸を持ち続けるためには、拠り所となる「価値観」が必要不可欠である。 開発チームにおけるM...

チームマネジメント