イテレーション 4 ふりかえり¶
イテレーション情報¶
| 項目 | 内容 |
|---|---|
| イテレーション | 4 |
| 期間 | Week 7-8 |
| 実施日 | 2026-03-02 |
| 参加者 | 開発者 + AI(Claude + Codex) |
| フォーマット | KPT |
実績サマリー¶
完了状況¶
| 項目 | 計画 | 実績 | 差異 |
|---|---|---|---|
| ストーリーポイント | 13 SP | 13 SP | 0 |
| 記事数 | 12 章 | 12 章 | 0 |
| テスト数 | - | 39 | - |
| カバレッジ(Line) | 80%+ | 95.95% | +15.95pt |
| カバレッジ(Branch) | 80%+ | 100.0% | +20pt |
| コミット数 | - | 10 | - |
| RuboCop エラー | 0 | 0 | 0 |
主要成果物¶
| カテゴリ | 数量 |
|---|---|
| 記事ファイル | 12 章 + index(3,037 行) |
| ソースコード | 15 ファイル(290 行) |
| テストコード | 7 ファイル(723 行) |
| CI ワークフロー | 1 ファイル(ruby-ci.yml) |
モジュール別構成¶
| モジュール | ファイル数 | 役割 |
|---|---|---|
| domain/model/ | 2 | FizzBuzzValue、FizzBuzzList |
| domain/type/ | 4 | FizzBuzzType 基底 + 3 サブクラス |
| application/ | 3 | FizzBuzzCommand + 2 実装 |
| fibonacci/ | 5 | Command + 3 アルゴリズム + barrel |
| テスト | 7 | 4 FizzBuzz + 2 Fibonacci + helper |
KPT 分析¶
Keep(続けること)¶
技術的成功事項¶
- Codex 分業体制の安定運用: 部単位(3 章)で Codex に実装指示 → Claude が受入検証の流れが完全に定着
- TDD サイクルの徹底: 全章で Red-Green-Refactor を厳守し、Branch Coverage 100% を達成
- Ruby 固有機能の活用: Enumerable Mix-in、
frozen_string_literal、thenパイプライン、パターンマッチング(case/in)を適切に活用 - 4 エピソード言語の第 4 部: Fibonacci 3 アルゴリズム + Minitest::Benchmark によるパフォーマンス比較が完全に動作
プロセス的成功事項¶
- 部単位コミット戦略: feat(実装)+ docs(記事)の 2 分割コミットが 4 イテレーション通して一貫
- IT1-IT3 テンプレートの成熟: 4 回目のイテレーションでテンプレート再利用が極めて効率的
- CI の早期追加: IT4 セッション内で ruby-ci.yml を追加し、品質ゲートを確立
Codex の実装品質¶
- 第 3 部(OOP): 11 ソースファイル + 4 テストファイルを一度の指示で正確に実装完了(22 テスト、0 失敗)
- 第 4 部(FP): 16 ファイルの修正/新規作成を一度の指示で完了(39 テスト、0 失敗)
- 受入時の手戻りゼロ:
bundle exec rake checkが常にパスし、RuboCop 違反もゼロ
Problem(問題点・課題)¶
技術的課題¶
- RuboCop Style/OneClassPerFile:
FizzBuzzTypeNameモジュールをfizz_buzz_type.rbに追加した際、rubocop:disableコメントが必要になった。別ファイルに分離すべきだったか検討の余地あり - テストカバレッジ 95.95%: 6 行の未カバー行が存在(主に
FizzBuzzType#generateのNotImplementedErrorとFizzBuzzCommand#executeのNotImplementedError)。基底クラスの抽象メソッドは意図的に未カバー
プロセス課題¶
- コンテキスト消費: 12 章通しの作業でコンテキストウィンドウを大きく消費。部ごとの
/compactが必須だった - Release 1.0 準備が未完了: タスク 5.1-5.3(クロスレビュー、MkDocs 確認、タグ付け)が残存
Try(次に試すこと)¶
| # | アクション | 責任者 | 期限 | 期待効果 |
|---|---|---|---|---|
| 1 | Release 1.0 のクロスレビューとタグ付けを完了する | AI | IT4 バッファ | Phase 1 完了 |
| 2 | 4 エピソード言語のベンチマークテンプレートを標準化 | AI | Phase 2 | 再利用効率の向上 |
| 3 | RuboCop disable コメントを減らすファイル分割方針を策定 | AI | Phase 2 | コード品質の改善 |
| 4 | ベロシティトレンド分析(4 IT 実績)を次フェーズ計画に反映 | AI | Phase 2 | 計画精度の向上 |
次イテレーションへの引き継ぎ事項¶
必須対応事項¶
- IT4 全 12 章の記事・実装が完了
- テストカバレッジ 80% 以上を達成(Line 95.95%, Branch 100%)
- RuboCop 違反ゼロ
- Release 1.0 準備(クロスレビュー、MkDocs 確認、タグ付け)
テンプレート確立事項¶
- 4 エピソード言語(Ruby)の第 4 部執筆パターンが確立(Fibonacci + Benchmark)
- Codex 分業体制の最適粒度が再確認(部単位が最適)
- Ruby Bundler + Minitest + RuboCop + SimpleCov 環境の標準セットアップが確立
Phase 2 への知見¶
- Phase 1 の 4 言語(Java, Python, Node/TS, Ruby)のテンプレートが完成
- Phase 2 の言語(PHP, Go, Rust, C#/F#)は 3 エピソード言語が中心
- 4 IT の実績でベロシティは安定して 10-13 SP/イテレーション
メトリクス¶
開発メトリクス¶
| メトリクス | 値 |
|---|---|
| コミット数 | 10 |
| feat コミット | 4 |
| docs コミット | 4 |
| ci コミット | 1 |
| chore コミット | 1 |
| ソースコード行数 | 290 行 |
| テストコード行数 | 723 行 |
| 記事行数 | 3,037 行 |
| テスト/ソース比率 | 2.49 |
品質メトリクス¶
| メトリクス | 目標 | 実績 | 判定 |
|---|---|---|---|
| テストカバレッジ(Line) | 80%+ | 95.95% | ✅ |
| テストカバレッジ(Branch) | 80%+ | 100.0% | ✅ |
| テスト数 | - | 39 | ✅ |
| アサーション数 | - | 72 | ✅ |
| RuboCop エラー | 0 | 0 | ✅ |
| ベンチマーク | 3 | 3 | ✅ |
プロセスメトリクス¶
| メトリクス | 値 |
|---|---|
| 計画 SP | 13 |
| 実績 SP | 13 |
| 達成率 | 100% |
| ベロシティ | 13 SP/イテレーション |
IT1-IT4 比較¶
| メトリクス | IT1(Java) | IT2(Python) | IT3(Node/TS) | IT4(Ruby) |
|---|---|---|---|---|
| SP | 10 | 10 | 13 | 13 |
| 達成率 | 100% | 100% | 100% | 100% |
| テスト数 | 27 | 23 | 53 | 39 |
| カバレッジ | 97%+ | 98%+ | 97.27% | 95.95% |
| コミット数 | 8 | 7 | 8 | 10 |
| 記事行数 | 約 2,500 | 約 2,700 | 2,971 | 3,037 |
| ソース行数 | 約 300 | 約 280 | 312 | 290 |
学び(Lessons Learned)¶
技術的学び¶
- Ruby の Enumerable:
include Enumerable+each定義でmap,select,find等が自動的に使えるが、戻り値は Array。FizzBuzzList を返すには独自メソッド(select_type等)の追加が必要 - パターンマッチング: Ruby 3.x の
case/in+deconstruct_keysで自作クラスに対するパターンマッチングが可能。TypeScript の Type Guards に相当する機能 - anonymous block forwarding: Ruby 3.x の
def method(&)/@value.select(&)で明示的なブロックパラメータ名を省略できる。RuboCop も推奨
プロセス的学び¶
- 4 イテレーション目の成熟: テンプレート・ワークフロー・Codex 分業がすべて安定し、13 SP を問題なく消化。Phase 1 の 4 言語を通じてプロセスが完全に確立された
- CI の早期追加: IT4 で ruby-ci.yml を開発初期に追加したことで、品質ゲートが最初から機能した
- テスト/ソース比率: Ruby は 2.49 と他言語(Java 1.0, Python 1.0, Node 1.33)より高い。Minitest のテストケースが詳細なため
更新履歴¶
| 日付 | 更新内容 | 更新者 |
|---|---|---|
| 2026-03-02 | 初版作成 | AI |