Skip to content

イテレーション 1 ふりかえり(Retrospective)

基本情報

項目 内容
イテレーション番号 1
期間 2026-01-05 〜 2026-01-20
実施日 2026-01-20
参加者 開発チーム全員
フォーマット KPT(Keep, Problem, Try)

実績サマリー

完了状況

項目 計画 実績 達成率
ストーリーポイント 18SP 18SP 100%
ユーザーストーリー 5件 5件 100%
理想時間 124h 124h 100%
コミット数 - 177件 -

テスト結果

カテゴリ 件数 結果
フロントエンドユニットテスト 197件 ✅ 全パス
バックエンドユニットテスト 35ファイル ✅ 全パス
E2E テスト 52件 ✅ 全パス
テストカバレッジ(フロントエンド) 92%+ ✅ 良好

ビルド状態

環境 状態
バックエンドビルド ✅ 成功
フロントエンドビルド ✅ 成功
CI/CD パイプライン ✅ 正常稼働

主要成果物

  1. 認証基盤

  2. JWT ベースの認証システム

  3. ログイン/ログアウト機能
  4. ユーザー登録機能(4種類のロール対応)

  5. マスタ管理基盤

  6. 勘定科目登録機能

  7. 勘定科目編集機能
  8. 勘定科目一覧表示

  9. インフラ・共通基盤

  10. Spring Boot 4.0.0 + Java 25 環境

  11. React + TypeScript + Vite 環境
  12. PostgreSQL + Flyway マイグレーション
  13. MSW によるモック環境
  14. GitHub Actions CI/CD

KPT 分析

Keep(続けること)

技術的成功事項

  • TDD サイクルの徹底: Red → Green → Refactor の流れを守り、高品質なコードを維持できた
  • モナディックエラーハンドリング: Vavr の Either/IO モナドを活用し、関数型スタイルで副作用を管理
  • コンポーネント設計: フロントエンドの共通コンポーネント(Table, Modal, Button 等)を再利用可能な形で実装
  • E2E テストの充実: MSW を活用した包括的な E2E テストで、ユーザーシナリオを網羅

プロセス的成功事項

  • 段階的な実装アプローチ: バックエンド → フロントエンドの順序で確実に進行
  • ドキュメントの同期更新: コード変更と同時にドキュメントを更新し、常に最新状態を維持
  • 小さなコミット: 各変更を論理的な単位で小さくコミットし、履歴を追跡しやすく維持

チームワーク

  • 問題の即座共有: 技術的課題が発生した際、すぐにチームで共有し解決
  • コードレビューの徹底: 全変更に対してレビューを実施

Problem(問題点・課題)

未完了項目

  • なし(全ストーリー完了)

見積もり精度の課題

  • E2E テスト環境構築の工数: MSW と Vite プロキシの競合解決に予想以上の時間がかかった
  • ESLint 複雑度対応: コード品質基準を満たすためのリファクタリングに追加時間が必要だった

プロセス課題

  • 日次残理想時間の未追跡: バーンダウンチャートのデータが収集できていなかった
  • スケジュールの遅延: 当初計画の 2026-01-16 から 2026-01-20 に延長(4日遅延)

技術的課題

  1. MSW と Vite プロキシの競合

  2. 問題: E2E テスト時に MSW がリクエストを捕捉できない

  3. 原因: Vite のプロキシ設定が MSW より先にリクエストを処理
  4. 解決: VITE_ENABLE_MSW=true 時にプロキシを無効化

  5. React Hooks のルール違反

  6. 問題: 条件付きレンダリング前に hooks を呼び出す必要

  7. 解決: コンポーネント構造のリファクタリング

  8. PMD ExcessiveImports 警告

  9. 問題: バックエンドの一部ファイルでインポート数が多すぎる警告

  10. 状態: 既存コードの技術的負債として認識、今後の改善課題

Try(次に試すこと)

具体的改善アクション

# アクション 責任者 期限 期待効果
1 日次バーンダウンの自動収集仕組み構築 - イテレーション2開始時 進捗の可視化向上
2 MSW セットアップの手順書化 - 完了済み 今後の E2E テスト環境構築の効率化
3 ESLint 複雑度チェックの CI 統合 - イテレーション2中 早期の品質問題検出
4 バックエンドのインポート整理 - イテレーション3 コード品質向上

次イテレーションへの引き継ぎ事項

必須対応事項

  1. 勘定科目削除機能(US-MST-003) - イテレーション2で実装予定
  2. 勘定科目一覧表示(US-MST-004) - イテレーション2で実装予定
  3. 仕訳入力機能(US-JNL-001) - イテレーション2で実装予定

技術検証タスク

  • 仕訳ドメインモデルの設計検証
  • 貸借一致バリデーションロジックの設計

ドキュメント整備タスク

  • イテレーション2計画書の作成
  • 仕訳管理のユースケース詳細化

メトリクス

開発メトリクス

メトリクス
総コミット数 177
追加行数 約 15,000+
削除行数 約 2,000+
変更ファイル数 200+

品質メトリクス

メトリクス 目標 判定
フロントエンドテストカバレッジ 92%+ 80%
ユニットテスト合格率 100% 100%
E2E テスト合格率 100% 100%
ビルド成功率 100% 100%

プロセスメトリクス

メトリクス
計画 SP 18
実績 SP 18
ベロシティ 18SP/イテレーション
予定ベロシティとの差 +2〜5SP(13〜16SP → 18SP 達成)

学び(Lessons Learned)

技術的学び

  1. MSW の効果的な活用

  2. Service Worker の初期化タイミングが重要

  3. Vite のプロキシ設定との競合に注意が必要
  4. E2E テストでは環境変数で切り替えるパターンが有効

  5. 関数型プログラミングの実践

  6. Vavr の Either モナドでエラーハンドリングを宣言的に記述

  7. IO モナドで副作用を遅延評価
  8. パターンマッチングでコードの可読性向上

  9. React コンポーネント設計

  10. 共通コンポーネントは早期に抽象化

  11. Hooks のルールを厳守する設計が重要
  12. TypeScript の型定義で安全性を確保

プロセス的学び

  1. 見積もりの精度向上

  2. E2E テスト環境構築には想定以上の時間がかかる

  3. 新技術スタック導入時はスパイク時間を十分確保

  4. 継続的な品質管理

  5. CI での早期チェックが品質維持に効果的

  6. コード複雑度は継続的にモニタリングが必要

次回イテレーションへの期待

達成目標

  • イテレーション2ゴール: マスタ管理完成と仕訳入力機能の基礎構築
  • 計画 SP: 16SP
  • 対象ストーリー: US-MST-003, US-MST-004, US-JNL-001

重点項目

  1. 仕訳ドメインモデルの堅牢な設計
  2. 貸借一致バリデーションの確実な実装
  3. 日次進捗の可視化

総評

成功した点

  • 全ストーリー完了: 計画した 5 ストーリー(18SP)を 100% 達成
  • 高いテストカバレッジ: フロントエンド 92%+、全テスト合格
  • 堅牢な基盤構築: 認証・マスタ管理の基盤が完成し、今後の開発の土台が確立
  • 技術的チャレンジの克服: MSW 統合、関数型プログラミング適用などを成功裏に実装

改善が必要な点

  • スケジュール管理: 4日の遅延が発生、見積もり精度の向上が必要
  • 進捗可視化: 日次バーンダウンの収集・追跡の仕組み化
  • 技術的負債: PMD 警告への対応(インポート整理)

次イテレーションへの自信度

高い - イテレーション1で基盤が確立され、チームのベロシティも把握できた。 次イテレーションでは実績に基づいた計画が可能。


更新履歴

日付 更新内容 更新者
2026-01-20 初版作成 Claude Opus 4.5