Skip to content

イテレーション 2 ふりかえり

イテレーション情報

項目 内容
イテレーション 2
期間 Week 3-4
実施日 2026-03-01
参加者 開発者 1 名 + AI(Claude + Codex)
フォーマット KPT

実績サマリー

完了状況

項目 計画 実績
ストーリーポイント 10 SP 10 SP
達成率 100% 100%
コミット数 - 4
テスト数 - 32
品質チェック PASS ALL PASSED
テストカバレッジ 80% 100%

主要成果物

カテゴリ 成果物 数量
記事 docs/article/python/ 13 ファイル(index + 12 章)
プロダクションコード apps/python/lib/ 11 ファイル / 229 行
テストコード apps/python/test/ 4 ファイル / 199 行
合計追加行数 全体 2,623 行

モジュール別カバレッジ

モジュール カバレッジ
lib/application/ 100%
lib/domain/model/ 100%
lib/domain/type/ 100%
全体 100%

KPT 分析

Keep(続けること)

技術的成功事項

  1. テストカバレッジ 100% 達成: IT1 の課題(75%)を大幅に改善。pyproject.tomlexclude_lines 設定と意識的なテスト設計により、全モジュールで 100% を達成した
  2. TDD サイクルの厳守: Red → Green → Refactor のサイクルを全章で一貫して実行。Java テンプレートの Python 適応がスムーズだった
  3. 型安全性の確保: mypy による静的型チェックをゼロエラーで維持。TYPE_CHECKING パターンで循環インポートを回避した
  4. 段階的リファクタリング: 手続き型 → カプセル化 → ポリモーフィズム → デザインパターン → SOLID → 関数型の段階的進化が、Python でも効果的に機能した

プロセス的成功事項

  1. IT1 テンプレートの再利用: Java で確立した章構成・コード構造・設計パターンを Python に効率的に適応できた
  2. 部単位のコミット戦略: 4 コミット(部ごと)で管理し、変更履歴が明確になった
  3. 品質ツールの統合: Ruff + mypy + pytest-cov の組み合わせが、Java の Checkstyle + PMD + SpotBugs + JaCoCo に匹敵する品質保証を実現した
  4. Pythonic な実装: リスト内包表記、@property、ABC、Enum など Python らしい機能を活用し、Java の直訳にならない記事を執筆できた

IT1 からの改善事項

  1. カバレッジ目標達成: IT1 の 75% → IT2 の 100%。__eq__/__hash__ テストを最初から含める方針が効果的だった
  2. 第 4 部の正規 SP 計上: IT1 で問題になった「0 SP バッファ扱い」を改善し、第 4 部を含む全体を 10 SP として計画した
  3. 進捗ドキュメントの同期: 部完了ごとに workflow.md を更新するリズムを維持した

Problem(問題点・課題)

イテレーション計画のタスク状態未更新

  1. 第 3 部・第 4 部のタスクチェックが未更新: iteration_plan-2.md の第 3 部(タスク 3.1-3.6)と第 4 部(タスク 4.1-4.8)のチェックボックスが [ ] のまま。実際には完了済みだがドキュメントに反映されていない
  2. 進捗率の記載が古い: iteration_plan-2.md に「進捗率: 70%(7/10 SP)」と記載されたまま。実際は 100% 完了

CI/CD の未整備

  1. GitHub Actions python-ci.yml が未コミット: 記事(第 6 章)に CI 設定を記載しているが、実際のワークフローファイルがまだコミットされていない
  2. コード複雑度チェック(C90)の未反映: .ruff.tomlC90 が追加されたが、記事の .ruff.toml 設定例との同期が必要

見積もりの課題

  1. 実時間の未計測: AI 並列作業により理想時間(46h)と実時間の乖離が大きいが、実時間を正確に計測していない。ベロシティ予測の精度向上には実時間データが必要

Try(次に試すこと)

# アクション 責任者 期限 期待効果
1 イテレーション計画のタスクチェックを完了時にリアルタイム更新する IT3 IT3 開始時 ドキュメント整合性の向上
2 python-ci.yml をコミットし CI パイプラインを稼働させる IT2 IT2 終了時 自動品質チェックの実現
3 tox の全品質チェック(uv run tox)を各コミット前に実行するフローを確立 IT3 IT3 品質ゲートの強化
4 次言語(Node/JS/TS)の特徴を事前調査し、第 4 部の内容を計画段階で確定する IT3 IT3 計画時 見積もり精度向上

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

必須対応事項

  • docs/article/python/ に 12 章の記事が作成済み
  • apps/python/ のテストが全パス(32 テスト、カバレッジ 100%)
  • mkdocs.yml に Python セクションが追加済み
  • iteration_plan-2.md のタスクチェックボックスを完了に更新
  • python-ci.yml のコミット
  • release_plan.md の IT2 状態を「完了」に更新

テンプレート確立事項

  • Java → Python のテンプレート適応パターンが確立
  • Python 固有の機能(@property、ABC、Enum、リスト内包表記、ジェネレータ)の記事構成が確立
  • 品質ツールの対応表が確立(Ruff = Checkstyle + PMD、mypy = SpotBugs、pytest-cov = JaCoCo)

次言語(Node/JS/TS)への知見

  1. テストフレームワーク: Jest または Vitest を使用
  2. リンター: ESLint + Prettier(Ruff 相当)
  3. 型チェック: TypeScript のコンパイラが mypy 相当の役割を担う
  4. パッケージマネージャ: npm / pnpm
  5. タスクランナー: npm scripts / package.json

メトリクス

開発メトリクス

メトリクス
コミット数 4
追加行数 2,623
プロダクションコード行数 229
テストコード行数 199
テスト/プロダクション比率 0.87
ファイル数(プロダクション) 11
ファイル数(テスト) 4

品質メトリクス

メトリクス 目標 実績 判定
テストカバレッジ 80% 100% 達成
テスト数 - 32 -
Ruff 違反 0 0 達成
mypy エラー 0 0 達成

プロセスメトリクス

メトリクス
計画 SP 10
実績 SP 10
達成率 100%
記事完成率 12/12 章(100%)
ベロシティ 10 SP/イテレーション

IT1 との比較

メトリクス IT1(Java) IT2(Python) 変化
テスト数 24 32 +33%
カバレッジ 75% 100% +25pt
プロダクションコード行数 333 229 -31%
テストコード行数 277 199 -28%
記事行数 3,399 2,127 -37%
コミット数 11 4 -64%
品質チェック違反 0 0 同等

学び(Lessons Learned)

技術的学び

  1. Python の簡潔さ: 同じ設計パターンを Java の 69% の行数で実装できた。@property、リスト内包表記、ABC の組み合わせが簡潔なコードを実現する
  2. TYPE_CHECKING パターン: 循環インポートを回避しつつ型ヒントを維持する if TYPE_CHECKING: パターンは、Python の大規模プロジェクトで必須のテクニック
  3. Ruff の統合力: Checkstyle + PMD + black + isort に相当する機能を 1 ツールで実現。設定が簡潔で CI 統合も容易
  4. pytest の表現力: JUnit 5 と比較して、フィクスチャやパラメータ化テストが直感的。日本語テスト名もそのまま使えて教育的価値が高い

プロセス的学び

  1. 部単位のコミットが最適: IT1 の 11 コミット(章ごと + 追加修正)に対し、IT2 は 4 コミット(部ごと)。コミット粒度を大きくすることで、まとまった変更を一括管理できた
  2. テンプレート再利用の効果: IT1 で確立した章構成が、IT2 の執筆速度を大幅に向上させた。3 言語目以降はさらに加速が見込める
  3. カバレッジ戦略の重要性: IT1 の反省を活かし、__eq__/__hash__ テストを最初から含め、exclude_lines を適切に設定することで 100% を効率的に達成できた

更新履歴

日付 更新内容 更新者
2026-03-01 初版作成(IT2 ふりかえり) -

関連ドキュメント