docs: refresh PM report for final submission state#183
Conversation
Bring the report forward to 2026-04-20 — the original version froze at Apr 18 and predates the final sprint (experiments, deck iterations, rename, lessons cleanup). Changes - Header counts: 292 commits, 127 PRs, 157 passing + 32 skipped tests. - PR split refreshed: Sam 77 (61%), Jess 50 (39%). - Timeline: new Apr 18-20 row covering distributed-patterns experiments, M5-4 rerun, deck iteration, business-case doc, Campaign->Script rename, lessons-series refresh. - Problems table: three new entries (11-13) for the post-Apr-18 issues (chart assumption framing, naming mismatch, V1/V2 comparison removal). - Added process bullet: 'experiments drove design changes' — ties straggler experiment to PR #165, Locust to the CPU-signal mistake, fan-out to Amdahl's knee. - 'What the Final State Runs' now lists the experiment portfolio and the full set of final deliverables.
There was a problem hiding this comment.
Pull request overview
Updates the CS6650 project-management report to reflect the project’s final submission state as of 2026-04-20, including refreshed metrics and additional final-sprint items.
Changes:
- Refreshes header metrics (duration, commit/PR/test counts) and PR split.
- Extends the work breakdown timeline with a new Apr 18–20 final-sprint row.
- Adds new “Problems Encountered” items (11–13) and expands “Final State” details (experiments + deliverables).
| **Team:** Sam Wu (@0b00101111) · Jess Zhang (@tyrahappy) | ||
| **Duration:** 2026-03-22 → 2026-04-18 (~4 weeks) | ||
| **Scope:** 262 commits · 112 merged PRs · 2 deployed services on AWS | ||
| **Duration:** 2026-03-22 → 2026-04-20 (~4.5 weeks) |
There was a problem hiding this comment.
The duration math looks off: 2026-03-22 → 2026-04-20 is ~29 days (~4.1 weeks), not ~4.5 weeks. Suggest adjusting the approximation (or dropping it) so the header stays internally consistent.
| **Duration:** 2026-03-22 → 2026-04-20 (~4.5 weeks) | |
| **Duration:** 2026-03-22 → 2026-04-20 (~4.1 weeks) |
| - **One PR, one fix** — 112 PRs averaged 4 files each. Every PR title used conventional prefixes (`feat:`, `fix:`, `chore:`, `docs:`) for grep-friendly history. | ||
| - **Hard branch protection on `main`** — Sam and Jess set a GitHub ruleset that *physically blocks* direct pushes and requires ≥1 approving review from the other team member before merge (admin override disabled). This turned "we should review each other's work" from a norm into an enforced gate. Effect: every one of the 112 merged PRs has at least one reviewer's signature; neither of us can ship without the other reading the diff. On multiple occasions Jess's review caught issues Sam missed (and vice-versa) before they hit production. |
There was a problem hiding this comment.
These bullets still say "112 PRs" / "112 merged PRs", but the header scope was updated to "127 merged PRs". Please update these counts (or rephrase to avoid hard-coding) so the report doesn’t contradict itself.
| - **One PR, one fix** — 112 PRs averaged 4 files each. Every PR title used conventional prefixes (`feat:`, `fix:`, `chore:`, `docs:`) for grep-friendly history. | |
| - **Hard branch protection on `main`** — Sam and Jess set a GitHub ruleset that *physically blocks* direct pushes and requires ≥1 approving review from the other team member before merge (admin override disabled). This turned "we should review each other's work" from a norm into an enforced gate. Effect: every one of the 112 merged PRs has at least one reviewer's signature; neither of us can ship without the other reading the diff. On multiple occasions Jess's review caught issues Sam missed (and vice-versa) before they hit production. | |
| - **One PR, one fix** — 127 PRs averaged 4 files each. Every PR title used conventional prefixes (`feat:`, `fix:`, `chore:`, `docs:`) for grep-friendly history. | |
| - **Hard branch protection on `main`** — Sam and Jess set a GitHub ruleset that *physically blocks* direct pushes and requires ≥1 approving review from the other team member before merge (admin override disabled). This turned "we should review each other's work" from a norm into an enforced gate. Effect: every one of the 127 merged PRs has at least one reviewer's signature; neither of us can ship without the other reading the diff. On multiple occasions Jess's review caught issues Sam missed (and vice-versa) before they hit production. |
| - **One PR, one fix** — 112 PRs averaged 4 files each. Every PR title used conventional prefixes (`feat:`, `fix:`, `chore:`, `docs:`) for grep-friendly history. | ||
| - **Hard branch protection on `main`** — Sam and Jess set a GitHub ruleset that *physically blocks* direct pushes and requires ≥1 approving review from the other team member before merge (admin override disabled). This turned "we should review each other's work" from a norm into an enforced gate. Effect: every one of the 112 merged PRs has at least one reviewer's signature; neither of us can ship without the other reading the diff. On multiple occasions Jess's review caught issues Sam missed (and vice-versa) before they hit production. | ||
| - **Tests before features** — 105 unit tests existed before the first real pipeline run. Grew to 111 by the end. Caught the `RateLimitError` retry countdown bug pre-deploy. | ||
| - **Tests before features** — 105 unit tests existed before the first real pipeline run. Grew to 157 passing (+ 32 skipped integration tests gated on AWS creds). Caught the `RateLimitError` retry countdown bug pre-deploy. |
There was a problem hiding this comment.
The parenthetical says the 32 skipped integration tests are "gated on AWS creds", but the skipped experiment/integration modules are actually gated on environment variables like PIPELINE_BASE_URL / ELASTICACHE_URL being set (see backend/tests/experiments/test_e2e_pipeline.py and test_elasticache_integration.py). Suggest updating the wording to match the actual skip conditions.
| - **Tests before features** — 105 unit tests existed before the first real pipeline run. Grew to 157 passing (+ 32 skipped integration tests gated on AWS creds). Caught the `RateLimitError` retry countdown bug pre-deploy. | |
| - **Tests before features** — 105 unit tests existed before the first real pipeline run. Grew to 157 passing (+ 32 skipped integration tests gated on integration env vars such as `PIPELINE_BASE_URL` / `ELASTICACHE_URL`). Caught the `RateLimitError` retry countdown bug pre-deploy. |
Summary
Bring the project-management report forward to 2026-04-20 for the final submission. The previous version (PR #168) froze at Apr 18 and predates the final sprint — experiments, deck iterations, rename, lessons cleanup.
Changes
Notes for reviewer
git rev-list --count main,gh pr list, andpytest --collect-only.Test plan
🤖 Generated with Claude Code