Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
20231213_スタートアップにおけるソフトウェアアーキテクチャの運用・維持について
Search
PharmaX(旧YOJO Technologies)開発チーム
December 12, 2023
Technology
0
66
20231213_スタートアップにおけるソフトウェアアーキテクチャの運用・維持について
2023/12/13
Backend Night 〜アーキテクチャ設計編〜
https://yojo.connpass.com/event/303072/
PharmaX 尾崎のLT資料です
PharmaX(旧YOJO Technologies)開発チーム
December 12, 2023
Tweet
Share
More Decks by PharmaX(旧YOJO Technologies)開発チーム
See All by PharmaX(旧YOJO Technologies)開発チーム
AIエージェントの評価・改善サイクル
pharma_x_tech
1
25
MCP & Computer Useをフル活用した社内効率化事例〜現在地と将来の展望
pharma_x_tech
1
170
AIエージェントの継続的改善のためオブザーバビリティ
pharma_x_tech
6
1.6k
Roo CodeとClaude Code比較してみた
pharma_x_tech
3
870
Roo Codeにすべてを委ねるためのルール運用
pharma_x_tech
1
510
Cline&CursorによるAIコーディング徹底活用―Live Vibe Coding付き
pharma_x_tech
3
1.8k
Computer Use〜OpenAIとAnthropicの比較と将来の展望〜
pharma_x_tech
6
1.2k
AIコーディングの最前線 〜活用のコツと課題〜
pharma_x_tech
4
3.4k
AIエージェント開発のノウハウと課題
pharma_x_tech
10
7.5k
Other Decks in Technology
See All in Technology
生まれ変わった AWS Security Hub (Preview) を紹介 #reInforce_osaka / reInforce New Security Hub
masahirokawahara
0
470
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
48
19k
ネットワーク保護はどう変わるのか?re:Inforce 2025最新アップデート解説
tokushun
0
210
20250705 Headlamp: 專注可擴展性的 Kubernetes 用戶界面
pichuang
0
270
Claude Code に プロジェクト管理やらせたみた
unson
6
4k
整頓のジレンマとの戦い〜Tidy First?で振り返る事業とキャリアの歩み〜/Fighting the tidiness dilemma〜Business and Career Milestones Reflected on in Tidy First?〜
bitkey
2
16k
How Do I Contact HP Printer Support? [Full 2025 Guide for U.S. Businesses]
harrry1211
0
120
Getting to Know Your Legacy (System) with AI-Driven Software Archeology (WeAreDevelopers World Congress 2025)
feststelltaste
1
130
Delta airlines®️ USA Contact Numbers: Complete 2025 Support Guide
airtravelguide
0
340
Core Audio tapを使ったリアルタイム音声処理のお話
yuta0306
0
190
スタートアップに選択肢を 〜生成AIを活用したセカンダリー事業への挑戦〜
nstock
0
170
LangSmith×Webhook連携で実現するプロンプトドリブンCI/CD
sergicalsix
1
230
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Documentation Writing (for coders)
carmenintech
72
4.9k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Testing 201, or: Great Expectations
jmmastey
43
7.6k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
YesSQL, Process and Tooling at Scale
rocio
173
14k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
We Have a Design System, Now What?
morganepeng
53
7.7k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
Agile that works and the tools we love
rasmusluckow
329
21k
Why Our Code Smells
bkeepers
PRO
336
57k
Transcript
スタートアップにおけるソフトウェ アアーキテクチャの運用・維持に ついて 2023.12.13 #pharmaX_tech_collabo
(C)PharmaX Inc. 2023 All Rights Reserve 2 自己紹介 尾崎皓一 PharmaX
(旧YOJO Technologies) エンジニアリーダ 2人目のエンジニア正社員としてジョイン 最近はあまりコード書いてないですが、 PharmaXの歴史を 知る古参メンバーとして今日は色々お話しできれば! Twitter:@FooOzaki
3 (C)PharmaX Inc. 2022 All Rights Reserve プロダクトの簡単な説明
(C)PharmaX Inc. 2023 All Rights Reserve 4 「薬局」は医療体験の中でも身近な存在 日用品から処方薬まで。「薬局」は皆さまの日常の近くに存在している ドラックストア
調剤薬局
(C)PharmaX Inc. 2023 All Rights Reserve 5 医療体験を横断する2つの事業領域 YOJO事業 未病・予防
治療 薬局DX事業
(C)PharmaX Inc. 2023 All Rights Reserve 6 LINE上でのチャットを通じて薬剤師と会話 日々の相談や健康状態に応じて、 漢方・サプリメントを購入
使い慣れたUI上から手軽に細かく体質チェック 薬剤師から漢方・サプリのご提案 そのほか健康相談やオンラインでの処方箋受付 YOJOのオペレーションシステム 1 2 3 患者向けチャットシステム
(C)PharmaX Inc. 2023 All Rights Reserve 7 PSチームと患者をつなぐオペレーションシステム 患者とのスムーズなコミュニケーション 薬剤師向け管理画面
チャット形式での診断・相談・購入 患者向けチャットシステム
8 (C)PharmaX Inc. 2022 All Rights Reserve バックエンドソフトウェアアーキテクチャの歴史と 課題
(C)PharmaX Inc. 2023 All Rights Reserve 9 YOJO サービス開始 ソフトウェアリアーキテクチャ着手
アーキテクチャ設計者退職 リアーキテクチャ完了 Rails x レイヤ化アーキテクチャ 〜エンジニア4名〜5名体制で運用〜 最小チームで開発(薬局DX事業へ異動) 〜エンジニア1名〜2名体制で1年間運用〜 YOJO事業エンジニアチーム再組成 YOJO事業のグロースとリアーキテクチャ 2019年06月 2021年01月 2021年05月 2021年09月 2022年09月 2023年08月 ユーザ数の遷移
(C)PharmaX Inc. 2023 All Rights Reserve 10 Ruby On Rails
x レイヤ化アーキテクチャ導入 • 当初はRails標準のMVCで運用 ◦ コーディング規約やフレームワーク ルール運用ルールもなく、モデルも 肥大化 • コアドメインのリモデリングがきっかけに ドメイン駆動設計(DDD)を導入 • DDDと相性の良いレイヤ化アーキテク チャを選定 • (選定当時)制約の厳しいアーキテクチャ によりスキル感のばらつき・人の入れ替 わりを吸収したかった
(C)PharmaX Inc. 2023 All Rights Reserve 11 YOJO サービス開始 リアーキテクチャ着手
アーキテクチャ設計者退職 リアーキテクチャ完了 Rails x レイヤ化アーキテクチャ 〜エンジニア4名〜5名体制で運用〜 最小チームで開発(薬局DX事業へ異動) 〜エンジニア1名〜2名体制で1年間運用〜 YOJO事業エンジニアチーム再組成 YOJO事業の歴史 2019年06月 2021年01月 2021年05月 2021年09月 2022年09月 2023年08月
(C)PharmaX Inc. 2023 All Rights Reserve 12 アーキテクチャ設計・導入初期の問題 ソフトウェアアーキテクチャスタイルの初期定義と共にコアドメインを置き換え ソフトウェアアーキテクチャ定義の議論中に設計者が離脱し、問題が山積み
• 各レイヤーの設計思想や責務に曖昧な部分があり、議論がまとまらない ◦ バックグラウンドジョブの呼び出しは?実装はどこに? ◦ 通知系の処理はどこから(メール通知、 LINE通知、Slack通知など) ◦ xxxのケースを共通利用したい • メンバーの入れ替わりもあり、コアドメインリプレース時にも解釈が分かれる ◦ 各メンバーの解像度も浅く、各々の解釈でコードが書かれる ◦ レビュー後の手戻り多発 ◦ リプレースの最中に新規コードのリファクタリングが走る
(C)PharmaX Inc. 2023 All Rights Reserve 13 YOJO サービス開始 リアーキテクチャ着手
アーキテクチャ設計者退職 リアーキテクチャ完了 Rails x レイヤ化アーキテクチャ 〜エンジニア4名〜5名体制で運用〜 最小チームで開発(薬局DX事業へ異動) 〜エンジニア1名〜2名体制で1年間運用〜 YOJO事業エンジニアチーム再組成 YOJO事業の歴史 2019年06月 2021年01月 2021年05月 2021年09月 2022年09月 2023年08月
(C)PharmaX Inc. 2023 All Rights Reserve 14 ソフトウェアアーキテクチャの運用期の問題 人の入れ替わりも多く、徐々に歪みが大きくなっていく ソフトウェア以外の課題も大きくコアメンバーが工数を取れなかった
• インフラリプレース(セキュリティ担保やスケーリング上の限界) • BI基盤の構築やデータの民主化(複数のグロース施作実行に伴い、素早い PDCAを) • 薬剤師管理画面フロントのリプレース(薬剤師の生産性が大きな事業課題に) などなど バックエンドソフトウェアは引き続き拡大 • 違和感があったものの、議論やアーキテクチャのアップデートはできておらず。(振り返ると)場 当たり的な対応も目立つ。大きな問題は出ないがソフトウェアは大きくなっていく
15 (C)PharmaX Inc. 2022 All Rights Reserve これまでの2年半で得られた学び
(C)PharmaX Inc. 2023 All Rights Reserve 16 アーキテクチャ設計・導入初期の問題 ソフトウェアアーキテクチャスタイルの初期定義と共にコアドメインを置き換え ソフトウェアアーキテクチャ定義の議論中に設計者が離脱し、問題が山積み
• 各レイヤーの設計思想や責務に曖昧な部分があり、議論がまとまらない ◦ バックグラウンドジョブの呼び出しは?実装はどこに? ◦ 通知系の処理はどこから(メール通知、 LINE通知、Slack通知など) ◦ xxxのケースを共通利用したい • メンバーの入れ替わりもあり、コアドメインリプレース時にも解釈が分かれる ◦ 各メンバーの解像度も浅く、各々の解釈でコードが書かれる ◦ レビュー後の手戻り多発 ◦ リプレースの最中に新規コードのリファクタリングが走る
(C)PharmaX Inc. 2023 All Rights Reserve 17 ソフトウェアアーキテクチャの定義のポイント WHY・アーキテクチャの根幹思想を明確に •
今後の運用・アップデートの拠り所になる ◦ アーキテクチャ選定理由、解決したい課題や目標を明確に ◦ 基本的な設計原則や哲学 ◦ 各レイヤーの導入背景 など 迷わない定義 • スコープ範囲内での適切な運用、少なくとも既存のスコープ範囲においては新規メンバーでも 判断に迷わない状態を目指すべき ◦ DI(依存性注入)・DIP(依存性逆転の原則)などのテクニックを用いてアーキテクチャ制 約をコードで表現 ◦ 各レイヤーやディレクトリの責務を明確に ◦ 迷ったらアーキテクチャ/ドキュメントのアップデート議論のタイミング アーキテクチャに正解はない。常にアップデートしていくもの
(C)PharmaX Inc. 2023 All Rights Reserve 18 ソフトウェアアーキテクチャの運用期の問題 人の入れ替わりも多く、徐々に歪みが大きくなっていく ソフトウェア以外の課題も大きくコアメンバーが工数を取れなかった
• インフラリプレース(セキュリティ担保やスケーリング上の限界) • BI基盤の構築やデータの民主化(複数のグロース施作実行に伴い、素早い PDCAを) • 薬剤師管理画面フロントのリプレース(薬剤師の生産性が大きな事業課題に) などなど バックエンドソフトウェアは引き続き拡大 • 違和感があったものの、議論やアーキテクチャのアップデートはできておらず。(振り返ると)場 当たり的な対応も目立つ。大きな問題は出ないがソフトウェアは大きくなっていく
(C)PharmaX Inc. 2023 All Rights Reserve 19 ソフトウェアアーキテクチャ運用のポイント 人の入れ替わりに耐えうる運用を設計を どんなにリソースがなくてもソフトウェアアーキテクチャを維持するロールは必要
属人化しない仕組みの構築 • サンプルリポジトリを作成する • アーキテクチャに関するドキュメント • レビュープロセス、レビュー観点の定義 …etc 属人化排除は余力のあるうちにやっておく。これらも常にアップデートを。 アーキテクチャに正解はない。常にアップデートしていくもの