イテレーション 3 ふりかえり¶
イテレーション情報¶
| 項目 | 内容 |
|---|---|
| イテレーション | 3 |
| 期間 | Week 5-6 |
| 実施日 | 2026-03-01 |
| 参加者 | 開発者 + AI(Claude + Codex) |
| フォーマット | KPT |
実績サマリー¶
完了状況¶
| 項目 | 計画 | 実績 | 差異 |
|---|---|---|---|
| ストーリーポイント | 13 SP | 13 SP | 0 |
| 記事数 | 12 章 | 12 章 | 0 |
| テスト数 | - | 53 | - |
| カバレッジ | 80%+ | 97.27% | +17.27pt |
| コミット数 | - | 8 | - |
| ESLint エラー | 0 | 0 | 0 |
| TypeScript エラー | 0 | 0 | 0 |
主要成果物¶
| カテゴリ | 数量 |
|---|---|
| 記事ファイル | 12 章 + index(2,971 行) |
| ソースコード | 12 ファイル(312 行) |
| テストコード | 5 ファイル(416 行) |
| CI ワークフロー | 1 ファイル |
モジュール別カバレッジ¶
| モジュール | Statements | Branches | Functions | Lines |
|---|---|---|---|---|
| application/ | 100% | 100% | 100% | 100% |
| domain/model/ | 96.03% | 97.14% | 96% | 96.03% |
| domain/type/ | 97.59% | 100% | 94.11% | 97.59% |
| 全体 | 97.27% | 98.71% | 95.91% | 97.27% |
KPT 分析¶
Keep(続けること)¶
技術的成功事項¶
- Codex 分業体制の確立: Claude(計画・設計・受入)+ Codex(実装)の分業が安定した
- TDD サイクルの徹底: 全章で Red-Green-Refactor を厳守し、テストカバレッジ 97%+ を達成
- ESM + TypeScript 環境の安定: .js 拡張子 import、vitest.config.ts の ESM 設定が問題なく動作
- Jest → Vitest 移行: 第 2 部で Jest から Vitest に移行し、ESM 互換性と速度を改善
プロセス的成功事項¶
- 部単位コミット戦略: 実装コミット + 記事コミットの 2 分割が一貫して維持された
- IT1/IT2 テンプレートの再利用: Java/Python で確立した章構成と記事フォーマットを効率的に適用
- 章単位の Codex 委譲: 1 章ずつ Codex に実装指示を出す粒度が最適と確認された
チームワーク¶
- Codex の実装品質: 3 章分(第 3 部・第 4 部)とも Codex が初回で正しく実装を完了
- 受入テストのスムーズさ: Codex 実装後の
npm run checkが常にパスし、手戻りなし
Problem(問題点・課題)¶
見積もり精度¶
- 13 SP の妥当性: JS + TS の両方をカバーするため 13 SP としたが、実際には TypeScript 中心の実装となり、JavaScript 固有のコード例は限定的
- 第 4 部の FP 内容: JS/TS は FP 専用エピソードがないため、他言語(Haskell、Clojure 等)と比べて内容が薄くなるリスクがあった
プロセス課題¶
- コンテキスト管理: 12 章通しの作業はコンテキストウィンドウを消費するため、部ごとの
/compactが必須 - 循環参照: FizzBuzzList.generate() で FizzBuzzType を直接 import すると循環参照が発生 → 構造的型付けで解決したが、設計指示に含めるべきだった
Try(次に試すこと)¶
| # | アクション | 責任者 | 期限 | 期待効果 |
|---|---|---|---|---|
| 1 | Codex への指示に循環参照回避パターンを含める | AI | IT4 | 実装の手戻り削減 |
| 2 | 3 エピソード言語の第 4 部テンプレートを標準化 | AI | IT4 | 執筆効率の向上 |
| 3 | JS 固有のコード例(CommonJS、動的型付け)を補強検討 | AI | IT4 | 記事の網羅性向上 |
| 4 | ベロシティトレンド分析(3 IT 実績) | AI | IT4 開始時 | 計画精度の向上 |
次イテレーションへの引き継ぎ事項¶
必須対応事項¶
- IT3 全 12 章の記事・実装が完了
- テストカバレッジ 80% 以上を達成(97.27%)
- ESLint エラーゼロ、TypeScript コンパイルエラーゼロ
テンプレート確立事項¶
- 3 エピソード言語の第 4 部執筆パターンが確立(JS/TS: Arrow Functions、Generics、Union Types、Type Guards)
- Codex 分業体制の最適粒度が確認(章単位が最適)
- ESM + TypeScript プロジェクトの標準セットアップが確立
次言語への知見¶
- Ruby(IT4)は 4 エピソード言語のため、第 4 部がフル対応(ベンチマーク含む)
- Ruby の Bundler + minitest/RSpec 環境は Node とは大きく異なるため、環境構築に注意
- IT1-IT3 の 3 イテレーション実績でベロシティトレンド分析が可能
メトリクス¶
開発メトリクス¶
| メトリクス | 値 |
|---|---|
| コミット数 | 8 |
| feat コミット | 4 |
| docs コミット | 4 |
| ソースコード行数 | 312 行 |
| テストコード行数 | 416 行 |
| 記事行数 | 2,971 行 |
| テスト/ソース比率 | 1.33 |
品質メトリクス¶
| メトリクス | 目標 | 実績 | 判定 |
|---|---|---|---|
| テストカバレッジ(Statements) | 80%+ | 97.27% | ✅ |
| テストカバレッジ(Branches) | 80%+ | 98.71% | ✅ |
| テスト数 | - | 53 | ✅ |
| ESLint エラー | 0 | 0 | ✅ |
| TypeScript エラー | 0 | 0 | ✅ |
| Prettier 違反 | 0 | 0 | ✅ |
プロセスメトリクス¶
| メトリクス | 値 |
|---|---|
| 計画 SP | 13 |
| 実績 SP | 13 |
| 達成率 | 100% |
| ベロシティ | 13 SP/イテレーション |
IT1/IT2 との比較¶
| メトリクス | IT1(Java) | IT2(Python) | IT3(Node/TS) |
|---|---|---|---|
| SP | 10 | 10 | 13 |
| 達成率 | 100% | 100% | 100% |
| テスト数 | 27 | 23 | 53 |
| カバレッジ | 97%+ | 98%+ | 97.27% |
| コミット数 | 8 | 7 | 8 |
| 記事行数 | 約 2,500 | 約 2,700 | 2,971 |
| ソース行数 | 約 300 | 約 280 | 312 |
学び(Lessons Learned)¶
技術的学び¶
- TypeScript ESM: TypeScript で ESM を使う場合、import パスに
.js拡張子が必要。Vitest は ESM と相性が良く、Jest より設定が簡単 - 構造的型付け: TypeScript のダックタイピングを活用すると、循環参照を回避しつつ型安全なコードが書ける
- Codex の TypeScript 対応: Codex は TypeScript の abstract class、Generics、Union Types を正確に実装でき、ESM の import 規約も維持できる
プロセス的学び¶
- 3 イテレーション目の効率: テンプレートが確立されたことで、13 SP(IT1/IT2 より 3 SP 多い)でも同等の工数で完了
- Codex の安定性: 章単位で指示を出す場合、Codex は一発で正しい実装を返すことが多く、受入時の手戻りはゼロだった
/compactの重要性: 部ごとにコンテキストを圧縮することで、12 章通しの作業でもコンテキスト不足が発生しなかった
更新履歴¶
| 日付 | 更新内容 | 更新者 |
|---|---|---|
| 2026-03-01 | 初版作成 | AI |