Files
016-oop-coffee-machine/docs/project-plan.md
T
Tirsvad c24f41207f
CI / test (push) Successful in 54s
Plan project and set up Phase 1 skeleton
Add the framework submodule and the accepted planning documents:
Business Case, Stakeholder Analysis, Project Plan, three milestones,
review records RC-001 to RC-006 and the traceability matrix.

Set up the project skeleton for MIL-001: pyproject.toml (Python
>=3.13, no runtime dependencies, pytest/ruff/mypy as dev extra),
 src/coffee_machine/constants.py, a constants consistency test,
 Doxyfile and a CI workflow that runs ruff, mypy and pytest.

Task: MIL-001#1
Task: MIL-001#2
Task: MIL-001#3
Task: MIL-001#4
Task: MIL-001#5
Closes #1
Closes #2
Closes #3
Closes #4
Closes #5
2026-10-07 10:43:22 +08:00

85 lines
3.3 KiB
Markdown

# Project Plan: OOP Coffee Machine
## Metadata
| Key | Value |
| --- | --- |
| ID | PP-001 |
| CrossReference | [BC-001], [SA-001], [MIL-001], [MIL-002], [MIL-003] |
| Language | en |
| Domain | it |
## Version History
| Date | Status | Author | Reviewer | Change | Commit |
| --- | --- | --- | --- | --- | --- |
| 2026-10-07 | Deprecated | Jens Tirsvad Nielsen | S01 | Initial version | pending |
| 2026-10-07 | Accepted | Jens Tirsvad Nielsen | S01 | Accepted after RC-006 (Go) | pending |
---
## Purpose
Schedules the three phases that deliver the coffee machine repository, as
required by [BC-001], with the communication cadence of [SA-001].
## Planning Assumptions
- Start date 2026-10-07; one phase per week or less, each ending in a pull request.
- S01 is owner and reviewer of every phase; S02 and S03 are informed through the README.
- Nothing under `src/` or `tests/` is written until the milestones are `Accepted` with a `Go` review.
## Gateway Schedule
| Gateway | Document | Window | Decision date | Owner | Stories | Main deliverable | Milestone |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Phase 1: Project Setup | [MIL-001] | 2026-10-07 to 2026-10-09 | 2026-10-09 | S01 | None | Skeleton, `pyproject.toml`, Doxyfile, CI | |
| Phase 2: Coffee Machine Program | [MIL-002] | 2026-10-10 to 2026-10-14 | 2026-10-14 | S01 | None | Menu, CoffeeMaker, MoneyMachine, main loop, tests | |
| Phase 3: Documentation and Publication | [MIL-003] | 2026-10-15 to 2026-10-16 | 2026-10-16 | S01 | None | README, Doxygen docs, repository description and topics | |
## Timeline diagram
```plantuml
@startgantt
Project starts 2026-10-07
[Phase 1: Project Setup] starts 2026-10-07 and ends 2026-10-09
[Phase 2: Coffee Machine Program] starts 2026-10-10 and ends 2026-10-14
[Phase 3: Documentation and Publication] starts 2026-10-15 and ends 2026-10-16
[Phase 1: Project Setup] -> [Phase 2: Coffee Machine Program]
[Phase 2: Coffee Machine Program] -> [Phase 3: Documentation and Publication]
@endgantt
```
## Scope Coverage
| Business Case scope item | Gateway |
| --- | --- |
| Package, tests, `pyproject.toml`, `.gitignore`, `constants.py`, Doxyfile | [MIL-001] |
| Coffee machine program and tests | [MIL-002] |
| README, Doxygen build | [MIL-003] |
| Repository description and topics | [MIL-003] |
## Dependencies
[MIL-001] precedes [MIL-002], which precedes [MIL-003]. A No-Go on a phase moves every later date by the rework time.
## Plan Risks
| Risk | Impact | Mitigation |
| --- | --- | --- |
| Review of each document delays the next phase | Medium | S01 reviews in the same session as the draft |
| The git host token cannot set topics through the API | Low | Set the description and topics by hand in the web UI |
## Open Issues
- Dates are proposals; S01 confirms or changes them.
- Tasks are all plain tasks: the course supplies the design, so no use case or user story is modelled. S01 may ask for a use case "User orders a drink".
- `PP` has no QC checklist yet; the plan is validated against the Go / No-Go criteria of each milestone.
- Which remote receives the repository description and topics (`git.tirsystem.com`, GitHub mirror, or both) is for S01 to confirm; both remotes exist.
---
[BC-001]: ./business-case.md
[SA-001]: ./stakeholder-analysis.md
[MIL-001]: ./milestones/mil-001-setup.md
[MIL-002]: ./milestones/mil-002-core.md
[MIL-003]: ./milestones/mil-003-docs.md