Slide 1

Slide 1 text

お薬手帳アプリ開発における スピード開発 x 安定運用の取り組み 株式会社カケハシ 種岡篤志

Slide 2

Slide 2 text

自己紹介 ・カケハシ入社 3年目 ・Pocket Musubiを開発するチームに所属 ・バックエンドを主軸にインフラやフロントエンドも従事 ・2人の娘の育児に奮闘中 Copyright © KAKEHASHI Inc. All Rights Reserved. 
 2

Slide 3

Slide 3 text

アジェンダ 昨年、iOS/Androidでリリースした電子お薬手帳アプリについて Copyright © KAKEHASHI Inc. All Rights Reserved. 
 3 スピード開発 安定運用 チーム分割

Slide 4

Slide 4 text

株式会社カケハシとは? Copyright © KAKEHASHI Inc. All Rights Reserved. 
 4 Mission: 日本の医療体験を、しなやかに。

Slide 5

Slide 5 text

Pocket Musubi 開発チーム Copyright © KAKEHASHI Inc. All Rights Reserved. 
 5 主に患者さん向けサービスの開発チーム LINE上で動作するWebアプリ(Pocket Musubi) エンジニア 10名 スクラム開発

Slide 6

Slide 6 text

おくすり連絡帳について Copyright © KAKEHASHI Inc. All Rights Reserved. 
 6 おくすり手帳アプリ( iOS / Android) 開発期間:約半年 LINE版Pocket Musubiとのデータ連携して より便利に!

Slide 7

Slide 7 text

アジェンダ 昨年、iOS/Androidでリリースした電子お薬手帳アプリについて Copyright © KAKEHASHI Inc. All Rights Reserved. 
 7 スピード開発 安定運用 チーム分割

Slide 8

Slide 8 text

スピード感ある開発できたのか? Copyright © KAKEHASHI Inc. All Rights Reserved. 
 8

Slide 9

Slide 9 text

システム設計概要 Copyright © KAKEHASHI Inc. All Rights Reserved. 
 9

Slide 10

Slide 10 text

FlutterFlow選定の背景 当時、社内にはiOS/Androidそれぞれ一人しかエンジニアがいなく、圧倒的 に開発リソースが足らない状況で、MVPを作らないといけない Copyright © KAKEHASHI Inc. All Rights Reserved. 
 10 Flutter ローコードツールの活用 iOS/Android両方のリリースが必要

Slide 11

Slide 11 text

FlutterFlowとは? Copyright © KAKEHASHI Inc. All Rights Reserved. 
 11 GUIでFlutterアプリが作れる ソースコードのDLとGitHubと の連携(有料プラン) デザインだけでなくロジックの 実装もツール上で可能

Slide 12

Slide 12 text

FlutterFlowを使ってみてどうだったのか? Copyright © KAKEHASHI Inc. All Rights Reserved. 
 12

Slide 13

Slide 13 text

FlutterFlowの使用感 Copyright © KAKEHASHI Inc. All Rights Reserved. 
 13 ・各画面の作成とデザインの当て込みで活用 テストをきちんと書いて、将来的に容易にリプレース可能な準備をしておくこと で許容 ・ローコードツールが自動生成する抽象化コンポーネント管理 (FlutterFlowXXXのような抽象化した独自コンポーネントを作ってくれるが負債化の懸念) デザインの作成と修正したものを適宜エクスポート ロジックは自前で実装 ・ツール上だけではロジック実装が難しい or 設計観点でツール依存にする難しさ

Slide 14

Slide 14 text

システム設計概要 Copyright © KAKEHASHI Inc. All Rights Reserved. 
 14

Slide 15

Slide 15 text

ServerlessStackとは Copyright © KAKEHASHI Inc. All Rights Reserved. 
 15 インフラの管理だけでなく、アプリケーションコードの開発支援してくれる CDK ライブデバッグ可能( VS Code,WebStorm,IntelliJ IDEA) Live Lambda Developmentが優秀(Local環境でLambdaのロジック開発) メンバー毎の開発環境が簡単に構築できる

Slide 16

Slide 16 text

変更を都度デプロイ Lambdaが利用するサービスをローカルでモック Lambda開発のつらみ Copyright © KAKEHASHI Inc. All Rights Reserved. 
 16 CDKにhotswap deployments機能が追 加されたことで改善 しかし、ライブデバッグはできない LocalStackのメンテコスト高い ・利用するサービスのモック作るコスト ・LocalStackの変更追従コスト デプロイにかかる待ち時間発生 【Lambda開発パターン例】

Slide 17

Slide 17 text

Live Lambda Development 利用例 Copyright © KAKEHASHI Inc. All Rights Reserved. 
 17 ローカルでLambdaの ロジック開発に専念 専用の開発DB ライブデバッグ Lambda以外のサービ スはそのまま使える

Slide 18

Slide 18 text

アジェンダ 昨年、iOS/Androidでリリースした電子お薬手帳アプリについて Copyright © KAKEHASHI Inc. All Rights Reserved. 
 18 スピード開発 安定運用 チーム分割

Slide 19

Slide 19 text

安定運用に向けて Copyright © KAKEHASHI Inc. All Rights Reserved. 
 19 おくすり連絡帳アプリはエンジニア総力戦で開発した

Slide 20

Slide 20 text

運用面での課題 Copyright © KAKEHASHI Inc. All Rights Reserved. 
 20 メンテナンス対象が増える 全員が等しくコードベースで理解するのが難しい 認知負荷の増大 ドメイン知識の共有の難しさ チーム分割

Slide 21

Slide 21 text

チーム分割のための輪読会 Copyright © KAKEHASHI Inc. All Rights Reserved. 
 21 トップダウンでチームを分割するのではなく チームの形としてどういうものがあるのか? チーム間のコミュニケーション方法は? などのベストプラクティスを体系的に学ぶことでチーム分割導 入ハードルを下げる

Slide 22

Slide 22 text

チーム分割 Copyright © KAKEHASHI Inc. All Rights Reserved. 
 22 ・認知負荷が下がり、それぞれのサービスで開発・運用効率が上がった ・新しくメンバーが入った時のキャッチアップも楽になった

Slide 23

Slide 23 text

設計に関する課題 Copyright © KAKEHASHI Inc. All Rights Reserved. 
 23 DB DBが密結合 コンウェイの法則 (1つのチームで開発した影響) 開発スピードは間違いなく出た Pros Cons DBスキーマ管理や変更時影響範囲の確 認の負荷が高い

Slide 24

Slide 24 text

マイクロサービス化 Copyright © KAKEHASHI Inc. All Rights Reserved. 
 24 新規プロダクトはドメインの粒度が粗く、変更頻度が高いため、マイクロサービス化の意思決定が しにくい マイクロサービス化したサービスの運用経験者の有無 チーム分割を先に行っていたらマイクロサービス化の判断は変わっていたかもしれない 組織のフェーズや開発リソースなどの外的要因によって変わりうるため、今回の経験を今後の判 断軸として活かしていきたい

Slide 25

Slide 25 text

まとめ Copyright © KAKEHASHI Inc. All Rights Reserved. 
 25 FlutterFlowやServerlessStackを使ってスピード開発できた チーム分割することで認知負荷を下がり、安定運用につながった 新規プロダクト開発前にローンチ後のチーム構成を思案すると共に、マクロサービス化について 検討しておこう

Slide 26

Slide 26 text

全プロダクト絶賛採用強化中! Copyright © KAKEHASHI Inc. All Rights Reserved. 
 26 ● フロントエンドエンジニア
 ● バックエンドエンジニア
 ● PdM
 ● 開発ディレクター
 ● UXデザイナー
 ● SRE
 ● データエンジニア
 ポジションの詳細はコチラ 
 
 https://herp.careers/v1/kakehashi 


Slide 27

Slide 27 text

Copyright © KAKEHASHI Inc. All Rights Reserved. 
 27 ご清聴ありがとうございました󰢛