All Articles

要件最適アーキテクチャの好きな1節

要件最適アーキテクチャ

用語整理

コアドメイン

コアドメインとは、焦点を絞った戦略的な中核的(コア)ビジネスケイパビリティが開発されるサブドメインである。コアドメインは最上位の差別化ドメインであり、そこでは新しいイノベーティブなアイデアに対する投資がおびただしい数のコミュニケーションと実験によって徹底的に検証された後、境界付きコンテキストを使って実装される。コアドメインの焦点は、文字どおり、ビジネスビジョンである。コアドメインはまさにそのビジネスが得意とする領域でなければならない。

Vaughn Vernon,Tomasz Jaskuła. 要件最適アーキテクチャ戦略 モノリスとマイクロサービス、ビジネスの目的に合わせた選別指針 (Japanese Edition) (pp.236-237). Kindle 版.

ビジネスケイパビリティ

ビジネスケイパビリティとは、ビジネスにおいて収益獲得のために存在する役割のことである。

Vaughn Vernon,Tomasz Jaskuła. 要件最適アーキテクチャ戦略 モノリスとマイクロサービス、ビジネスの目的に合わせた選別指針 (Japanese Edition) (p.132). Kindle 版.

好きな1節

コアチームは最も優秀なビジネスエキスパートとソフトウェア開発者で編成される。コアドメインに対する時間と才能の投資はそのようにして保証される。

Vaughn Vernon,Tomasz Jaskuła. 要件最適アーキテクチャ戦略 モノリスとマイクロサービス、ビジネスの目的に合わせた選別指針 (Japanese Edition) (pp.236-237). Kindle 版.

前提として、私はこれを書いている時点で B2B スタートアップで SaaS の開発をしている。4年働いていて、事業開発は始めてである。

この1節が好きになったのは、自分が重要なことをしているということに納得できたと感じたから。コアドメインは上述の通り、競争力の源泉であり重要なパーツである。そういった部分の開発は投資がされるため、変更が多い。そのためソフトウェア開発者としては力量が問われることが多い。ソフトウェアとして柔軟性を保つために設計やモデリングを行わないと変更に対してのコストが線形に増える可能性があるから。コードを書いた時点で技術的負債が生じると思うので、負債は最小限にアウトカムは最大にできるようにしたい。負債を意識することで作り込みを避けられる。作り込みが必要なときもあるだろうが、まずはユーザに動くものを提供することでアウトカムをはかることが重要だと思っている。こういったバランスが求められる答えのない世界でユーザの必要なものを探求する開発は奥深いと考えられるようになった。

最近まではエンジニアとして技術的な課題を解決するかということが自分の大きな仕事だと思っていたがそうではなく、コアドメインを伸ばすことが仕事なのだと思えるようになった。技術的な課題として大きなものなんてスタートアップでは中々でてこないし、ユーザに大きく還元できるわけでもない。これは本書でも述べられていた。
そこを私は自分で理解できていて、会社の方向性とも間違っていないと思うのだけれど人によっては技術的な部分に傾倒してしまうかもしれない。何を求めているかはコミュニケーションの必要がある。ほとんどの場合は、コアドメインに向き合ってほしいということだと思うけれど、コアドメインの難しさややりがいを説く必要もある。なぜなら、エンジニアは難しい挑戦をやりがいにする生き物であり、挑戦に値しない場合は技術的な部分をどうにかしようと行動しがちだからである。この気持ちは私もすごいわかる。マイクロサービスや低レイヤの開発はわくわくする。しかし、ユーザは裏側のシステムに関心はないし、低レイヤに近い部分を改善して例えば高速化してもそんなに気にしない。必要なシステムであれば多少応答速度の低下は我慢してくれる。

ビジネス要求と譲れない技術的な制約やアーキテクチャとバランスをとりながら高速にPDCAを回すのが大きなテーマである。たまには技術的な挑戦もしたいというのが正直なところなのでいろんなモノを調査しながら自分で探していこうと思う。