イテレーション 1 ふりかえり¶
概要¶
| 項目 | 内容 |
|---|---|
| イテレーション | 1 |
| 期間 | 2026-04-10 〜 2026-04-11 |
| ゴール | Python 版(原本)の全 9 章を Wiki 記事から移行・再構成し、TDD で実装する |
| 実績 SP | 5 SP(計画通り) |
| 達成率 | 100% |
実績サマリー¶
成果物¶
| 成果物 | 状態 | 備考 |
|---|---|---|
docs/article/python/ 全 9 章 |
✅ 完了 | index.md 含む 10 ファイル |
apps/python/ TDD 実装 |
✅ 完了 | 239 テスト全通過、カバレッジ 99% |
| mkdocs.yml Python セクション | ✅ 完了 | 全 9 章 nav 追加済み |
| CI/CD(Python ワークフロー) | ✅ 完了 | Nix devShell 経由 |
実装した主要アルゴリズム¶
| アルゴリズム / クラス | 章 | 備考 |
|---|---|---|
| 基本アルゴリズム(最大値・中央値・素数等) | 第 1 章 | |
| 配列操作・バブルソート・選択ソート・挿入ソート | 第 2 章 | |
| 線形探索・番兵法・二分探索・ハッシュ法 | 第 3 章 | |
| Stack / Queue(固定・動的) | 第 4 章 | collections.deque 活用 |
| 再帰(階乗・GCD・ハノイ)、EightQueen × 3 | 第 5 章 | バックトラッキング含む |
| ヒープソート・度数ソート(カウンティングソート) | 第 6 章 | 追加実装 |
| BF / KMP / Boyer-Moore 文字列照合 | 第 7 章 | |
| 連結リスト(ArrayLinkedList)・双方向リスト | 第 8 章 | カーソルによる線形リスト |
| 二分探索木・ヒープ | 第 9 章 |
コミット実績¶
| ハッシュ | 内容 |
|---|---|
bf84013 |
第 1 章 記事・mkdocs.yml |
8643b33 |
第 2 章 |
f652007 |
第 3 章 |
af3af3c |
第 4 章 |
67f2db0 |
第 5 章 |
a68f222 |
第 6 章 |
7422734 |
第 7 章 |
589bb79 |
第 8 章 |
5ffcae5 |
第 9 章 |
da02fa2 |
DoD 達成コミット |
c1caa66 |
記事内容の補完(wiki 比較) |
eb1bf94 |
未実装機能の追加実装 |
KPT ふりかえり¶
Keep(続けること)¶
技術的成功事項¶
- TDD サイクルの徹底: Red → Green → Refactor サイクルで 239 テストが全通過(カバレッジ 99%)。
- Nix devShell による環境統一: Python 環境を
nix develop .#pythonで再現性高く管理できた。 - Conventional Commits の維持: コミット履歴がわかりやすく、変更理由が追跡しやすい。
- 章ごとの独立性: 各章を独立したコミット単位としたことで、レビューと問題切り分けが容易だった。
- CI/CD の早期整備: Python CI ワークフローを Nix 経由で構築し、品質ゲートを自動化した。
プロセス的成功事項¶
- AI ペアプログラミング: 記事執筆と実装を AI と並行して進めることで、単独作業より高速に完了できた。
- wiki 記事を参照源とした移行: オリジナル wiki を正とし、差分を埋めるアプローチが確実だった。
Problem(問題だったこと)¶
未完了・課題¶
- 初回記事の内容不足: 最初に作成した記事は wiki オリジナルと比べて 30〜40% 内容が少なかった。別途補完パス(
c1caa66)が必要になった。 - 実装の後追い:
heap_sort、counting_sort、EightQueen×3、ArrayLinkedListが記事に記述されていたが未実装だった。2 回目のパス(eb1bf94)で追加した。 - テスト実行時間:
TestEightQueen(8^8 = 1,677 万通り)が約 73 秒かかる。CI での待ち時間が長い。 - IT-1 の期間超過: 2 週間の計画に対して、複数セッションにまたがり実際の経過日数が延びた。
見積もり精度の課題¶
- 記事の分量の見積もりが甘かった。wiki 原本との比較検証を計画に含めていなかった。
- 「記事に書いた機能はすべて実装する」という DoD の文言が曖昧で、後から追加実装が生じた。
Try(次に試すこと)¶
| # | アクション | 担当 | 期待効果 |
|---|---|---|---|
| T1 | 記事執筆時に「wiki 比較チェック」を各章の DoD に追加する | IT-2 から | 後から補完パスが不要になる |
| T2 | 「記事に記述した関数・クラスはすべてその章のコミットで実装する」を DoD に明記する | IT-2 から | 実装漏れゼロ |
| T3 | TestEightQueen(8^8)を skip タグ付き slow テストとして分離し、通常 CI では実行しない |
IT-2 開始前 | CI 実行時間を短縮 |
| T4 | イテレーション開始前に nix develop .#<言語> の動作確認をタスクに含める |
IT-2 から | 環境起因の遅延を防ぐ |
ベロシティ実績¶
| 指標 | 値 |
|---|---|
| 計画 SP | 5 SP |
| 実績 SP | 5 SP |
| 達成率 | 100% |
| テスト数 | 239 |
| テストカバレッジ | 99% |
| 総コミット数 | 12 件(IT-1 範囲) |
IT-1 ベロシティ: 5 SP(計画通り)
次のイテレーション(IT-2)への申し送り¶
- 対象ストーリー: US-002 TypeScript 版を Python 版から展開する(3 SP)
- Python 版を基準:
docs/article/python/の 9 章を TypeScript に変換する -
DoD 追加事項:
-
各章執筆時に wiki 比較を実施する
-
記事に記述した関数・クラスは同コミットで実装する
-
環境準備:
nix develop .#node(TypeScript 開発環境)の動作確認
更新履歴¶
| 日付 | 更新内容 | 更新者 |
|---|---|---|
| 2026-04-11 | 初版作成 | - |