Files
025-squirrel/docs/project-plan.md
T
Tirsvad d85cfe5c4b Correct the wiki folder references to wiki/
No issue closed: documentation correction only.
2026-10-13 15:56:19 +08:00

101 lines
5.0 KiB
Markdown

# Project Plan
## Metadata
| Key | Value |
| --- | --- |
| ID | PP-001 |
| CrossReference | [BC-001], [SA-001], [MIL-001], [MIL-002], [MIL-003], [MIL-004], [US-001] |
| Language | en |
| Domain | it |
## Version History
| Date | Status | Author | Reviewer | Change | Commit |
| --- | --- | --- | --- | --- | --- |
| 2026-10-13 | Deprecated | Jens Tirsvad Nielsen | AI as stand-in for S01 | CrossReference: added [US-001] | [259d017] |
| 2026-10-13 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Corrected the wiki folder `docs/wiki/` to `wiki/` | pending |
---
## Purpose
This plan schedules the four phases that deliver the squirrel census assignment: tooling, analysis, documentation and wiki publication. It schedules them against the Business Case constraint of one pull request per milestone and a single-day effort.
## Planning Assumptions
- Week 1 starts 2026-10-13 (the day of the plan); the plan ends by 2026-10-16.
- Phase length: one day per phase.
- One branch and one pull request per milestone, each closing the issues of its tasks ([BC-001] Constraints).
- The Product Owner and reviewer is S01 for every phase ([SA-001]); in autonomous mode the AI acts as stand-in and records it in each review record.
- The plan is accepted by S01 in chat; the Project Plan has no quality control (QC) checklist.
## Gateway Schedule
| Gateway | Document | Window | Decision date | Owner | Stories | Main deliverable | Milestone |
| --- | --- | --- | --- | --- | --- | --- | --- |
| G1 Project scaffold and tooling | [MIL-001] | 2026-10-13 to 2026-10-14 | 2026-10-14 | S01 | none | `.gitignore`, `pyproject.toml`, constants, Doxyfile, continuous integration (CI), repository metadata | [Milestone 124][MS-124] |
| G2 Squirrel census analysis | [MIL-002] | 2026-10-14 to 2026-10-15 | 2026-10-15 | S01 | US-001 | Package, tests, census file, `squirrel_count.csv` | [Milestone 125][MS-125] |
| G3 README, source documentation and screenshots | [MIL-003] | 2026-10-15 to 2026-10-16 | 2026-10-16 | S01 | none | README, Doxygen comments, screenshots | [Milestone 126][MS-126] |
| G4 Wiki and publication | [MIL-004] | 2026-10-16 | 2026-10-16 | S01 | none | Wiki in en, da and ms | [Milestone 127][MS-127] |
```plantuml
@startgantt
Project starts 2026-10-13
[G1 Project scaffold] starts 2026-10-13 and ends 2026-10-14
[G2 Census analysis] starts 2026-10-14 and ends 2026-10-15
[G3 Documentation] starts 2026-10-15 and ends 2026-10-16
[G4 Wiki] starts 2026-10-16 and ends 2026-10-16
[G1 Go/No-Go] happens 2026-10-14
[G2 Go/No-Go] happens 2026-10-15
[G3 Go/No-Go] happens 2026-10-16
[G4 Go/No-Go] happens 2026-10-16
@endgantt
```
## Scope Coverage
| Business Case scope item | Gateway |
| --- | --- |
| Reading the census file and counting by primary fur colour | G2 |
| Summary table exported as `squirrel_count.csv` | G2 |
| Command line entry point, `constants.py`, `pyproject.toml`, `.gitignore`, tests, CI | G1 and G2 |
| Doxygen comments, `Doxyfile`, build instructions | G1 and G3 |
| README, screenshots | G3 |
| Three-language wiki | G4 |
| Repository description and topics | G1 (set) and G4 (verified) |
## Dependencies
```
G1 -> G2 -> G3 -> G4
```
A No-Go at a gateway stops the later gateways; their dates move by the days the rework takes.
## Plan Risks
| Risk | Impact | Mitigation |
| --- | --- | --- |
| CI runner is not available on the git host | The CI workflow cannot be shown green | Run the same commands locally and report the missing runner |
| Wiki repository cannot be pushed | G4 deliverable is not published | Keep the pages under `wiki/` and report it |
| Doxygen is not installed locally | The documentation build cannot be verified | Report as not verified; document the command |
## Open Issues
- The repository URL in the request (`Tirsvad-Udemy-100_days_of_code`) differs from `origin` (`Tirsvad-Udemy-100-days-of-code/025-squirrel`); the plan follows `origin`.
- The census file (730 kilobytes) is assumed to be committed under `data/`; S01 can veto this at plan acceptance.
- The lecture uses Pandas; the plan uses the standard library to keep zero runtime dependencies (ADR-0001, [SA-001] conflict list).
---
[BC-001]: ./business-case.md
[SA-001]: ./stakeholder-analysis.md
[MIL-001]: ./milestones/mil-001-project-scaffold.md
[MIL-002]: ./milestones/mil-002-census-analysis.md
[MIL-003]: ./milestones/mil-003-documentation.md
[MIL-004]: ./milestones/mil-004-wiki-publication.md
[MS-124]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/025-squirrel/milestone/124
[MS-125]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/025-squirrel/milestone/125
[MS-126]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/025-squirrel/milestone/126
[MS-127]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/025-squirrel/milestone/127
[US-001]: ./user-stories.md
[259d017]: https://git.tirsystem.com/Tirsvad-Udemy-100-days-of-code/025-squirrel/commit/259d017ad257059330eb9a8bdbf940c9d082664e