Slide 1

Slide 1 text

友人とのアプリ開発を完全に理解した 発表者:馬場俊輔 2025年4月

Slide 2

Slide 2 text

アジェンダ 1. プロジェクトの背景 2. 開発時の実体験 3. 学んだ教訓 4. 得られた経験・知識について 2 / 31

Slide 3

Slide 3 text

自己紹介 氏名と所属 馬場俊輔 ソフトウェアエンジニア 業務内容・専門分野 フロントエンド・バックエンドのWEB開発 LLMを活用したチャットアプリの設計・開発経験(自己開発) 3 / 31

Slide 4

Slide 4 text

アジェンダ 1. プロジェクトの背景 2. 開発時の実体験 3. 学んだ教訓 4. 得られた経験・知識について 4 / 31

Slide 5

Slide 5 text

5 / 31

Slide 6

Slide 6 text

6 / 31

Slide 7

Slide 7 text

プロジェクトの背景 出会いときっかけ M君が起業を決意 アプリ開発への挑戦 Nさん(アルバイト・開発未経験)によるLine公式チャンネルのアプリ開発スタート 7 / 31

Slide 8

Slide 8 text

アジェンダ 2. 開発時の実体験 1. プロジェクトの背景 3. 学んだ教訓 4. 得られた経験・知識について 8 / 31

Slide 9

Slide 9 text

開発の流れ 2024年6月頃 AIを活用したアプリの開発開始 公式LINEチャネル経由のサービス 2024年11月 リリース時には既に有料利用予定のユーザーが存在 「デプロイができない」トラブルが発生 システム開発に緊急参画することに 2025年3月 友人の資金繰りの関係で、開発から離れることに 9 / 31

Slide 10

Slide 10 text

デプロイと初期トラブル Cloud Runを採用したデプロイ Mさんの進捗停滞(3週間) デプロイ支援として参画 アーキテクチャが不明確 アプリの内容や目的も把握できていない 10 / 31

Slide 11

Slide 11 text

初期トラブルの詳細 重大なエラー発生 「ユーザーのセッション情報が保存されない」問題 調査結果 各インスタンスで独立処理 SQLite使用によるセッション情報同期の不具合 11 / 31

Slide 12

Slide 12 text

12 / 31

Slide 13

Slide 13 text

緊急パッチ対応とシステム改善 状況把握と対応策の立案 既存コードの分析 ライブラリのコピペ状態 仕組みやエラー原因の理解不足 並行作業の実施 ゼロからの知識キャッチアップ パッチリリース作業 DBの作成と繋ぎ込み セッション情報管理の修正 13 / 31

Slide 14

Slide 14 text

システム拡張と開発環境整備 環境整備の実施 1. テスト環境(QA環境)用Cloud Run構築 2. GitHub ActionsによるCI/CDパイプライン導入 3. 既存データ構造の整理とリファクタリング 14 / 31

Slide 15

Slide 15 text

追加機能とアーキテクチャの再検討 メッセージの予約送信機能 Cloud Scheduler Cloud Task Googleアカウントとの連携 GAS Credential管理の簡素化 企業導入時のメンテナンス性向上 システムの複雑性低減 15 / 31

Slide 16

Slide 16 text

アジェンダ 3. 学んだ教訓 1. プロジェクトの背景 2. 開発時の実体験 4. 得られた経験・知識について 16 / 31

Slide 17

Slide 17 text

8. 学んだ教訓(1/4) 稼働時間に対する業務の適切な範囲設定 やりすぎず、求められる範囲に留める 前提や期待値の明確な共有 稼働に対する成果量を伝えておく 17 / 31

Slide 18

Slide 18 text

18 / 31

Slide 19

Slide 19 text

8. 学んだ教訓(1/4) 適切な範囲設定の重要性 やりすぎず、求められる範囲に留める 前提や期待値の明確な共有 稼働に対する成果量を伝えておく 19 / 31

Slide 20

Slide 20 text

9. 学んだ教訓(2/4) 技術的課題への向き合い方 0からのバグ修正は負荷が高いと伝える アプリ開発の流れを共有しておく インフラ周りの責任範囲を明確に 20 / 31

Slide 21

Slide 21 text

21 / 31

Slide 22

Slide 22 text

9. 学んだ教訓(2/4) 技術的課題への向き合い方 0からのバグ修正は負荷が高いと伝える アプリ開発の流れを共有しておく インフラ周りの責任範囲を明確に 22 / 31

Slide 23

Slide 23 text

10. 学んだ教訓(3/4) 開発工数の見積もりギャップ 理想と現実の実装スピードの乖離 非エンジニアとの認識のずれ タスクの優先順位を明確にする 23 / 31

Slide 24

Slide 24 text

24 / 31

Slide 25

Slide 25 text

10. 学んだ教訓(3/4) 開発工数の見積もりギャップ 理想と現実の実装スピードの乖離 非エンジニアとの認識のずれ タスクの優先順位を明確にする 25 / 31

Slide 26

Slide 26 text

11. 学んだ教訓(4/4) プロジェクトへの動機付け 善意だけのサポートは限界が来る 目的や理由を複数作る 理想は「無償でもやりたい」 26 / 31

Slide 27

Slide 27 text

27 / 31

Slide 28

Slide 28 text

11. 学んだ教訓(4/4) プロジェクトへの動機付け 善意だけのサポートは限界が来る 目的や理由を複数作る 理想は「無償でもやりたい」 28 / 31

Slide 29

Slide 29 text

アジェンダ 4. 得られた経験・知識について 1. プロジェクトの背景 2. 開発時の実体験 3. 学んだ教訓 29 / 31

Slide 30

Slide 30 text

13. 得られた経験・知識 プロジェクトからの収穫 新規アーキテクチャ設計の経験 ユーザーUXを意識した改善プロセス チーム間・友人間でのコミュニケーションスキル 30 / 31

Slide 31

Slide 31 text

14. 最後に 友達との開発は貴重な経験 技術面での成長 期待値の調整の重要性 大切なこと 仕事の方向性が合わなくても友人関係は継続する 31 / 31