Skip to content

イテレーション計画 1 - 財務会計システム

基本情報

項目 内容
イテレーション番号 1
期間 2026-01-05 〜 2026-01-16(2週間)
作業日数 10日
チーム人数 3名
総作業可能時間 150時間(3名 × 5時間/日 × 10日)

イテレーションゴール

認証基盤とマスタ管理の基礎を構築し、システムの土台を確立する

ユーザーがログイン・ログアウトでき、システム管理者がユーザーを登録でき、経理責任者が勘定科目を登録・編集できる状態を目指す。

選択したストーリー

ストーリーID ストーリー名 SP 優先度
US-AUTH-001 ログイン 3 必須
US-AUTH-002 ログアウト 2 必須
US-AUTH-003 ユーザー登録 5 必須
US-MST-001 勘定科目登録 5 必須
US-MST-002 勘定科目編集 3 必須
合計 18

コミットメント: 18SP(予定ベロシティ 13〜16SP を若干上回るが、初期セットアップ含むため妥当)


タスク分解

US-AUTH-001: ログイン(3SP) ✅ 完了

受入条件:

  • ユーザーIDとパスワードを入力してログインできる
  • 認証成功時、JWT トークンが発行される
  • 認証失敗時、エラーメッセージが表示される
  • 3回連続でログイン失敗した場合、アカウントがロックされる
  • ログイン成功後、ダッシュボード画面に遷移する
タスクID タスク名 理想時間 担当 状態
AUTH-001-01 認証ドメインモデル設計 2h - 完了
AUTH-001-02 User エンティティ実装 2h - 完了
AUTH-001-03 UserRepository 実装 2h - 完了
AUTH-001-04 JWT トークン生成・検証サービス実装 4h - 完了
AUTH-001-05 ログインユースケース実装 2h - 完了
AUTH-001-06 ログイン API 実装 2h - 完了
AUTH-001-07 単体テスト作成 4h - 完了
AUTH-001-08 ログイン画面 UI 実装 4h - 完了
AUTH-001-09 フロントエンド認証状態管理 2h - 完了
AUTH-001-10 統合テスト 2h - 完了
小計 26h

US-AUTH-002: ログアウト(2SP) ✅ 完了

受入条件:

  • ログアウトボタンをクリックするとログアウトできる
  • ログアウト後、ログイン画面に遷移する
  • JWT トークンが無効化される
タスクID タスク名 理想時間 担当 状態
AUTH-002-01 ログアウトユースケース実装 1h - 完了
AUTH-002-02 トークン無効化機能実装 2h - 完了
AUTH-002-03 ログアウト API 実装 1h - 完了
AUTH-002-04 単体テスト作成 2h - 完了
AUTH-002-05 ログアウトボタン UI 実装 2h - 完了
AUTH-002-06 フロントエンド状態クリア 1h - 完了
AUTH-002-07 統合テスト 1h - 完了
小計 10h

US-AUTH-003: ユーザー登録(5SP) ✅ 完了

受入条件:

  • ユーザーID、氏名、パスワード、ロールを入力して登録できる
  • ユーザーIDは一意である必要がある
  • パスワードは8文字以上で、英数字を含む必要がある
  • ロールは管理者、経理責任者、経理担当者、閲覧者から選択できる
  • 登録成功時、確認メッセージが表示される
タスクID タスク名 理想時間 担当 状態
AUTH-003-01 Role 値オブジェクト実装 2h - 完了
AUTH-003-02 パスワードポリシー実装 2h - 完了
AUTH-003-03 パスワードハッシュ化サービス実装 2h - 完了
AUTH-003-04 ユーザー登録ユースケース実装 3h - 完了
AUTH-003-05 ユーザー登録 API 実装 2h - 完了
AUTH-003-06 一意性チェック実装 2h - 完了
AUTH-003-07 単体テスト作成 4h - 完了
AUTH-003-08 ユーザー登録画面 UI 実装 6h - 完了
AUTH-003-09 バリデーション表示実装 2h - 完了
AUTH-003-10 統合テスト 2h - 完了
小計 27h

US-MST-001: 勘定科目登録(5SP) ✅ 完了

受入条件:

  • 科目コード、科目名、勘定科目種別を入力して登録できる
  • 科目コードは一意である必要がある
  • 勘定科目種別は資産、負債、純資産、収益、費用から選択できる
  • 登録成功時、確認メッセージが表示される
タスクID タスク名 理想時間 担当 状態
MST-001-01 勘定科目ドメインモデル設計 2h - 完了
MST-001-02 AccountCode 値オブジェクト実装 2h - 完了
MST-001-03 AccountType 列挙型実装 1h - 完了
MST-001-04 Account エンティティ実装 3h - 完了
MST-001-05 AccountRepository 実装 3h - 完了
MST-001-06 勘定科目登録ユースケース実装 3h - 完了
MST-001-07 勘定科目登録 API 実装 2h - 完了
MST-001-08 単体テスト作成 4h - 完了
MST-001-09 勘定科目登録画面 UI 実装 6h - 完了
MST-001-10 統合テスト 2h - 完了
小計 28h

US-MST-002: 勘定科目編集(3SP) ✅ 完了

受入条件:

  • 科目名、勘定科目種別を編集できる
  • 科目コードは変更できない
  • 仕訳で使用されている科目の種別は変更できない(スタブ実装: 仕訳機能は将来実装のため、現時点では AccountUsageChecker が常に false を返す)
  • 編集成功時、確認メッセージが表示される
タスクID タスク名 理想時間 担当 状態
MST-002-01 勘定科目編集ユースケース実装 3h - 完了
MST-002-02 使用中チェックロジック実装 2h - 完了
MST-002-03 勘定科目編集 API 実装 2h - 完了
MST-002-04 単体テスト作成 3h - 完了
MST-002-05 勘定科目編集画面 UI 実装 4h - 完了
MST-002-06 統合テスト 2h - 完了
小計 16h

実装詳細

バックエンド実装:

  • UpdateAccountUseCase / UpdateAccountCommand / UpdateAccountResult - Input/Output Port
  • UpdateAccountService - ユースケース実装(Vavr Either/IO モナド使用)
  • AccountUsageChecker / AccountUsageCheckerImpl - 使用中チェック(スタブ)
  • AccountController - PUT /api/accounts/{id}、GET /api/accounts、GET /api/accounts/{id}
  • UpdateAccountRequest / UpdateAccountResponse / AccountResponse - DTO

フロントエンド実装:

  • updateAccount.ts / getAccounts.ts / getAccount.ts - API クライアント
  • AccountList.tsx - 勘定科目一覧ビュー
  • EditAccountForm.tsx - 勘定科目編集フォーム
  • AccountListPage.tsx / EditAccountPage.tsx - ページコンポーネント
  • ルーティング: /master/accounts(一覧)、/master/accounts/:id/edit(編集)

テスト:

  • UpdateAccountServiceTest - ユースケースユニットテスト
  • AccountControllerTest - コントローラーユニットテスト
  • AccountApiIntegrationTest - API 統合テスト

共通タスク(スパイク・環境構築)

タスクID タスク名 理想時間 担当 状態
COMMON-01 開発環境セットアップ確認 2h - 完了
COMMON-02 DB マイグレーション設定 2h - 完了
COMMON-03 JWT ライブラリ選定・検証(スパイク) 4h - 完了
COMMON-04 API 共通エラーハンドリング実装 3h - 完了
COMMON-05 フロントエンド共通レイアウト実装 4h - 完了
COMMON-06 CI/CD パイプライン確認 2h - 完了
小計 17h

完了した共通タスク詳細

COMMON-01: 開発環境セットアップ(完了)

バックエンド環境を apps/backend に構築:

  • Spring Boot 4.0.0 + Java 25 + Gradle 9.2.1
  • 最小限のセットアップで動作確認済み

構築したファイル:

apps/backend/
├── build.gradle.kts          # Spring Boot 4.0.0 + Java 25
├── settings.gradle.kts
├── gradle.properties
├── gradlew / gradlew.bat     # Gradle Wrapper 9.2.1
├── gradle/wrapper/
│   ├── gradle-wrapper.jar
│   └── gradle-wrapper.properties
└── src/main/
    ├── java/com/example/accounting/
    │   ├── Application.java
    │   └── infrastructure/web/controller/
    │       └── HealthController.java
    └── resources/
        └── application.yml

動作確認:

  • ./gradlew build でビルド成功
  • ./gradlew bootRun でアプリケーション起動成功
  • /api/health エンドポイントが正常に応答

次のステップで追加予定:

  • MyBatis 3.0.x
  • PostgreSQL 16
  • Flyway 10.x(マイグレーション)
  • Testcontainers(統合テスト)
  • ArchUnit(アーキテクチャテスト)
  • JWT ライブラリ

COMMON-02: DB マイグレーション設定(完了)

  • Flyway 設定を application.yml に追加
  • 初期マイグレーション V1__create_accounts_table.sql 作成
  • PostgreSQL 16 + Testcontainers による統合テスト環境構築

COMMON-03: JWT ライブラリ選定・検証(完了)

  • jjwt ライブラリ(0.12.6)を選定
  • JwtService 実装(トークン生成・検証)
  • JwtProperties による設定管理
  • 単体テスト作成済み

COMMON-04: API 共通エラーハンドリング実装(完了)

  • ヘルスチェック API /api/health 実装
  • GlobalExceptionHandler 実装
  • BusinessException, ResourceNotFoundException 実装
  • ErrorResponse DTO 実装

COMMON-05: フロントエンド共通レイアウト実装(完了)

  • React + TypeScript + Vite 環境構築
  • TanStack Query によるデータフェッチ
  • MSW によるモック環境
  • ESLint + Prettier 設定
  • Vitest + Cypress テスト環境

COMMON-06: CI/CD パイプライン確認(完了)

  • GitHub Actions ワークフロー構築
  • backend-ci.yml: ビルド、テスト、静的解析
  • frontend-ci.yml: ビルド、テスト、Lint
  • backend-deploy.yml: Heroku デプロイ
  • frontend-deploy.yml: Heroku デプロイ
  • Docker Compose 開発環境
  • Heroku Container デモ環境

作業時間サマリー

カテゴリ 理想時間
US-AUTH-001: ログイン 26h
US-AUTH-002: ログアウト 10h
US-AUTH-003: ユーザー登録 27h
US-MST-001: 勘定科目登録 28h
US-MST-002: 勘定科目編集 16h
共通タスク 17h
合計 124h

キャパシティ: 150h(3名 × 5h × 10日) バッファ: 26h(17%)


詳細スケジュール

gantt
    title イテレーション1 詳細スケジュール(2週間)
    dateFormat  YYYY-MM-DD
    axisFormat  %m/%d

    section 共通タスク
    開発環境・CI/CD確認      :common1, 2026-01-05, 1d
    DBマイグレーション設定    :common2, after common1, 1d
    JWTスパイク              :common3, 2026-01-05, 2d

    section US-AUTH-001 ログイン
    認証ドメインモデル設計    :auth1-1, 2026-01-06, 1d
    User/JWT実装             :auth1-2, after auth1-1, 2d
    ログインAPI実装          :auth1-3, after auth1-2, 1d
    単体テスト               :auth1-4, after auth1-2, 1d
    ログイン画面UI           :auth1-5, 2026-01-08, 2d
    統合テスト               :auth1-6, after auth1-5, 1d

    section US-AUTH-002 ログアウト
    ログアウト実装           :auth2-1, after auth1-3, 1d
    ログアウトUI・テスト      :auth2-2, after auth2-1, 1d

    section US-AUTH-003 ユーザー登録
    Role・パスワードポリシー  :auth3-1, 2026-01-07, 1d
    ユーザー登録ユースケース  :auth3-2, after auth3-1, 1d
    ユーザー登録API          :auth3-3, after auth3-2, 1d
    単体テスト               :auth3-4, after auth3-2, 1d
    ユーザー登録画面UI       :auth3-5, 2026-01-12, 2d
    統合テスト               :auth3-6, after auth3-5, 1d

    section US-MST-001 勘定科目登録
    勘定科目ドメインモデル    :mst1-1, 2026-01-08, 1d
    Account実装              :mst1-2, after mst1-1, 2d
    勘定科目登録API          :mst1-3, after mst1-2, 1d
    単体テスト               :mst1-4, after mst1-2, 1d
    勘定科目登録画面UI       :mst1-5, 2026-01-13, 2d
    統合テスト               :mst1-6, after mst1-5, 1d

    section US-MST-002 勘定科目編集
    勘定科目編集実装         :mst2-1, after mst1-3, 1d
    勘定科目編集UI・テスト    :mst2-2, after mst2-1, 1d

    section マイルストーン
    イテレーション1完了       :milestone, m1, 2026-01-16, 0d

週次計画

Week 1(2026-01-05 〜 2026-01-09)

主要タスク
環境確認、JWT スパイク開始
DB マイグレーション、認証ドメインモデル設計
User エンティティ、JWT サービス実装
ログイン API、Role・パスワードポリシー
ログイン画面 UI、ユーザー登録ユースケース

Week 2(2026-01-12 〜 2026-01-16)

主要タスク
ユーザー登録画面 UI、勘定科目ドメインモデル
Account 実装、勘定科目登録 API
勘定科目登録画面 UI
勘定科目編集実装、統合テスト
最終統合テスト、デモ準備、レビュー

リスクと対策

リスク 影響度 発生確率 対策
JWT 実装の複雑化 Week 1 でスパイク実施、ライブラリ活用
DB 接続の問題 早期に環境確認、Docker 設定見直し
フロントエンド統合の遅延 バックエンド API を先行完成

コミットメント確認

チーム合意事項

  • 全ストーリーの受入条件を理解した
  • タスク分解と見積もりに合意した
  • 18SP を2週間で完了することにコミットする
  • デイリースタンドアップを毎日実施する
  • 問題発生時は即座に共有する

完了の定義(Definition of Done)

  • すべての受入条件を満たしている
  • 単体テストが作成され、すべてパスしている
  • 統合テストが作成され、すべてパスしている
  • コードレビューが完了している
  • CI/CD パイプラインでビルドが成功している
  • ドキュメントが更新されている

進捗状況

ストーリー進捗

ストーリーID ストーリー名 SP 状態 完了日
US-AUTH-001 ログイン 3 完了 2025-12-23
US-AUTH-002 ログアウト 2 完了 2025-12-23
US-AUTH-003 ユーザー登録 5 完了 2026-01-19
US-MST-001 勘定科目登録 5 完了 2026-01-20
US-MST-002 勘定科目編集 3 完了 2026-01-20

日次残理想時間

計画残時間 実績残時間 差異
Day 1 124h - -
Day 2 112h - -
Day 3 100h - -
Day 4 88h - -
Day 5 74h - -
Day 6 62h - -
Day 7 50h - -
Day 8 38h - -
Day 9 24h - -
Day 10 0h - -

更新履歴

日付 更新内容 更新者
2026-01-05 初版作成 -
2025-12-18 バックエンド環境構築完了(COMMON-01, 02, 04) Claude
2025-12-19 共通タスク全完了(COMMON-03, 05, 06) Claude
2025-12-23 US-AUTH-001(ログイン)、US-AUTH-002(ログアウト)完了 Claude
2026-01-19 US-AUTH-003(ユーザー登録)完了 Claude + Codex
2026-01-20 US-MST-001(勘定科目登録)完了、進捗状況更新 Claude Opus 4.5
2026-01-20 US-MST-002(勘定科目編集)完了、イテレーション1全完了 Claude Opus 4.5
2026-01-20 ふりかえり実施、retrospective-1.md 作成 Claude Opus 4.5

関連ドキュメント