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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
PharmaX(旧YOJO Technologies)開発チーム
December 12, 2023
Technology
0
75
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)開発チーム
PdMによるLiveバイブコーディング〜プロトタイプ開発実践〜
pharma_x_tech
1
34
2025.10.28_CodexとClaude Codeの比較検討 社内座談会
pharma_x_tech
2
510
LLMのアウトプットの評価と改善 〜DSPyによるプロンプト最適化入門によせて〜
pharma_x_tech
5
1.1k
2025.09.02_AIコーディングを利用した開発自動化を目指しての座談会
pharma_x_tech
5
290
AIコーディングを前提にした開発プロセス再設計〜開発生産性向上に向けた試行錯誤〜
pharma_x_tech
4
350
AIエージェントの評価・改善サイクル
pharma_x_tech
2
540
MCP & Computer Useをフル活用した社内効率化事例〜現在地と将来の展望
pharma_x_tech
1
390
AIエージェントの継続的改善のためオブザーバビリティ
pharma_x_tech
7
2.4k
Roo CodeとClaude Code比較してみた
pharma_x_tech
5
4.9k
Other Decks in Technology
See All in Technology
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
2
410
学生・新卒・ジュニアから目指すSRE
hiroyaonoe
2
770
旅先で iPad + Neovim で iOS 開発・執筆した話
zozotech
PRO
0
100
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
350
制約が導く迷わない設計 〜 信頼性と運用性を両立するマイナンバー管理システムの実践 〜
bwkw
3
1.1k
茨城の思い出を振り返る ~CDKのセキュリティを添えて~ / 20260201 Mitsutoshi Matsuo
shift_evolve
PRO
1
430
マネージャー視点で考えるプロダクトエンジニアの評価 / Evaluating Product Engineers from a Manager's Perspective
hiro_torii
0
190
Agent Skils
dip_tech
PRO
0
140
コミュニティが変えるキャリアの地平線:コロナ禍新卒入社のエンジニアがAWSコミュニティで見つけた成長の羅針盤
kentosuzuki
0
130
OCI Database Management サービス詳細
oracle4engineer
PRO
1
7.4k
配列に見る bash と zsh の違い
kazzpapa3
3
170
Exadata Fleet Update
oracle4engineer
PRO
0
1.1k
Featured
See All Featured
エンジニアに許された特別な時間の終わり
watany
106
230k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
210
The World Runs on Bad Software
bkeepers
PRO
72
12k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.2k
A Modern Web Designer's Workflow
chriscoyier
698
190k
The Cost Of JavaScript in 2023
addyosmani
55
9.5k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
740
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
450
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
110
The untapped power of vector embeddings
frankvandijk
1
1.6k
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 属人化排除は余力のあるうちにやっておく。これらも常にアップデートを。 アーキテクチャに正解はない。常にアップデートしていくもの