2024-11-26
アーキテクチャカンファレンスメモ
https://architecture-con.findy-tools.io/ これに来ている。
これはあくまで僕のメモであって、発表とか僕がお話しした人がこのまま主張したわけではないです。変なところがあれば僕のせいだし、良い主張があれば彼らのおかげです。繰り返しですが僕のメモなので第三者が読んで何かに活かしたり議論の種にすることは、しない想定です。僕が便利なのでインターネットにおいておくだけ。
発表
キーノート
- トレードオフ分析をすることが仕事
- 最強ソリューションを出すことではない
- トレードオフは絶対にある、ないと思ったらまだ見つかってないだけ
- https://speakerdeck.com/findyinc/modern-trade-off-analysis?slide=15
- デザインは挙動に関する議論であるがアーキテクチャは能力に関するものであるから、徐々に変えるのではなく最初からスパッとやらないといけない
- フィードバックが早いのは良い。軌道修正はできる
- ex マイクロサービスの粒度
- 単一の責任だけでは曖昧で無理
- 分ける要因と統合する要因を考えるべきだと主張
- ハードパーツの本に書いてあったやつだな
- 名前つけるのが難しいから、名前がつく粒度まで分解しちゃう、みたいな話が出てびっくりしてる。理にかなっている気もするがパッと受け入れられてない
- メッセージングの件
- ベストプラクティスは、状況に対して何をやれば良い、という提案。ベストなので判断の余地はない
- 組織の目的は考える必要がある
- 絶対壊れちゃいけない v.s. 要望からリリースまでの時間の短さ
- 設計を繰り返すために定性分析して、結果的に定量分析しよう
- 過去のベスプラが今野アンチパターンになるのはエコシステムがコンスタントに変わるから
- それに追従するためにも分析を続けるのがよかろうということかな
感想: トレードオフとビジネス要求、をみて決めるのだなという気持ちと、無限に時間がかかるのでタイムボックスを決めてガッと決めることなのだろうと思った。それを何回も適宜行うイメージ。
SaaS
saas: 業務のベスプラを提供するモデルテナント: 契約の提供を受ける単位のことコントロールプレーンとアプリケーションプレーンなるほど。コントロールプレーンはなるだけ作りたくないテナント、本当に必要なのか?は気になる。ここで主張されるテナントには何が含まれるのだったか。テナントの本存在するのか。
コロプラ
- クライアントでブラウザを使わない、リアルタイムサーバがあるのがwebアプリとの違いっぽい
- 専用ゲームサーバ: DGS, dedicated game serer
- DBがやばかったのはspannerを使うことでなんとかなった
bitkey
-
モブプロ
-
BDD
-
イベントソーシング
-
どんなコンポーネントがあって、どう連携するかを決める
増田さん
- vuca, ooda
- 観察とか行動とかは具体的に何をするんだろう
- マイケルポーター 競争優位
- ask the speaker
- 競合優位性でググろう、本を読もう
- エンジニアがやっていくとスムーズそう
- 増田さんの会社がワークショップを開催したり、本を出したりするかも
コンパウンド
なんで全く新しく作らなかったのだろう
- バンブーで1日かけて設計したとのことだが、どうやって決めた?意思決定プロセスが気になる。強い人?
- 強い人が決めると決めてる。領域ごとに担当者がいる。これはknowledgeworkの意思決定プロセス(口頭でシュッと聞いただけなので、書いた内容は正確ではなさそう)
- もちろんレビュー依頼などはする
- それだと独裁になるのがいや。なのでこの会議で決めるとしている
- そこまでに議題は共有されている。異論があれば準備しておく
- 異論が出なければ決まる
scim: azureとかでユーザ作ったらsaasでもユーザ作るみたいなやつ
バッチとバックエンドはapi呼び出しで繋がってたのかな
flatt
IRでのシナリオ気になる。エンドポイントだけでなくシナリオを作ってるのかな
対談
取り巻く環境の中で継続的な改善可能性をもつシステムを作る環境に合わせる話は大事変化を発見したときにちゃんとついていく。変化を捉えることは必要そう
- 実現したいことをトッププライオリティにおく、ビジネスissueとしても重視する。それを実現する手段には拘らない。でもその分野についてのビギナーには手段が中心に見える。その目的が見えない。なんでその手段を取るかを理解するのは難しい
- こうしたら良くなるの提案を頑張って説明する。自分の主張も大体間違ってると思ってドキュメントを事実ベースで論理的に書くと成功確率上がる。言語化して検証する。
感想
- いろんなところがconnect使ってる。layerx、knowledgework、flattが確か使っているとのことだった。
- アーキテクチャの話を聞きにきたはずが意思決定の進め方とか社内での役割について質問していたし勉強になることが多かった。あとは共感できないか、もう知っていることが多かった
懇親会
オフレコのつもりで話していた方もいるだろうからここには詳細書かない方が良さそうかな。知らない業種の話を聞けたり、一方的に存じ上げていた方のお悩みをお聞きしたのが印象的。また増田さんや他の登壇者の方に質問したり、そこから発展したお話し伺えて楽しかった。ドメインエキスパートどこにいるんだよ、いなくない...?みたいな話を質問した。他にも色々お話し聞けた。
振り返り
増田さん、川中さんのお話が響いたし、発表後に質問に伺って教えていただいた知見が良かった。熱い気持ちになっている。そのほかのセッションではFlattセキュリティの内容が面白かった。ASM、そんなステップが中にあることを今まで全くイメージできてなくて、概要を知れたことが嬉しかった。Webアプリケーションの構造を始めて学んだときみたいな気持ち。登壇者がラムダノートのWebブラウザセキュリティの本の著者だと聞いてなるほどな気持ち。
増田さんからはドメインモデリングと事業を進める話を学んだ。訳書である「ドメイン駆動設計をはじめよう」を読んで、今回の発表内容の結構な部分を腹落ちさせていたのだが、増田さんがどこをどういう形で支持しているかを知れたのが収穫。また、僕が抱えていた悩みとして「ドメインモデリングしたいが、ソフトウェアだけじゃなくてドメイン自体の設計も僕たちが結局やる必要がある。ではドメインをどう作っていくのが良いだろう」というのがあった。それを増田さんにぶつけてそれが真っ当な悩みっぽいと共感していただけた(と僕は思っている)ことと、それへの対処(競争優位を重視して作るとか、エンジニアから歩み寄ってディレクタとかと会話するとか)を引き出せたことが収穫。あと懇親会で色々お話し聞けて楽しかった。ここのお話しから収穫あったのはそうだけど、人柄を知れたのがでかい。
川中さんからはプロダクト開発における意思決定の進め方を学んだ。初期には対象範囲(バックエンドとかフロントエンドとか)を決めて強い人が決める、それに対して責任を持つ、範囲の境界の契約(APIスキーマとか)はちゃんと決めて厳格に運用する。まあ確かにシュシュっと決まりそうだし、なんとかする未来を描きやすそう。
その他の意思決定の仕方として、やはり強い人が提案をして決めにかかるやり方もあるそうだが、それだと独裁になっちゃうので最終決定を会議でするようにしてるとのこと。決める内容はあらかじめ共有しておいて、反論があれば会議までには用意する必要がある。会議で異論がなければ決まる。もちろんレビューを依頼することはある。