Upgrade to Pro — share decks privately, control downloads, hide ads and more …

お薬手帳アプリ開発における スピード開発 x 安定運用の取り組み

kakehashi
February 22, 2023

お薬手帳アプリ開発における スピード開発 x 安定運用の取り組み

TechPlay_2023年2月21日登壇資料です。

kakehashi

February 22, 2023
Tweet

More Decks by kakehashi

Other Decks in Business

Transcript

  1. Pocket Musubi 開発チーム Copyright © KAKEHASHI Inc. All Rights Reserved.

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

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

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

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

    インフラの管理だけでなく、アプリケーションコードの開発支援してくれる CDK ライブデバッグ可能( VS Code,WebStorm,IntelliJ IDEA) Live Lambda Developmentが優秀(Local環境でLambdaのロジック開発) メンバー毎の開発環境が簡単に構築できる
  6. 変更を都度デプロイ Lambdaが利用するサービスをローカルでモック Lambda開発のつらみ Copyright © KAKEHASHI Inc. All Rights Reserved.

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

    Reserved. 
 17 ローカルでLambdaの ロジック開発に専念 専用の開発DB ライブデバッグ Lambda以外のサービ スはそのまま使える
  8. 安定運用に向けて Copyright © KAKEHASHI Inc. All Rights Reserved. 
 19

    おくすり連絡帳アプリはエンジニア総力戦で開発した
  9. 運用面での課題 Copyright © KAKEHASHI Inc. All Rights Reserved. 
 20

    メンテナンス対象が増える 全員が等しくコードベースで理解するのが難しい 認知負荷の増大 ドメイン知識の共有の難しさ チーム分割
  10. チーム分割のための輪読会 Copyright © KAKEHASHI Inc. All Rights Reserved. 
 21

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

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

    DB DBが密結合 コンウェイの法則 (1つのチームで開発した影響) 開発スピードは間違いなく出た Pros Cons DBスキーマ管理や変更時影響範囲の確 認の負荷が高い
  13. マイクロサービス化 Copyright © KAKEHASHI Inc. All Rights Reserved. 
 24

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

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

    • フロントエンドエンジニア
 • バックエンドエンジニア
 • PdM
 • 開発ディレクター
 • UXデザイナー
 • SRE
 • データエンジニア
 ポジションの詳細はコチラ 
 
 https://herp.careers/v1/kakehashi