Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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 ご清聴ありがとうございました