Baseline: Business Case, Stakeholder Analysis, Project Plan and milestones #1
No files matched your search
@@ -0,0 +1,3 @@
|
||||
[submodule "framework"]
|
||||
path = framework
|
||||
url = ssh://git@git.tirsystem.com:10022/TirSystem/SQA-QC-Framework.git
|
||||
@@ -0,0 +1,59 @@
|
||||
# Artifact Registry
|
||||
|
||||
This project's artifact state. Types, short names and `CrossReference
|
||||
Candidates` come from the framework catalog
|
||||
(`framework/registry/artifact-catalog.md`); this file only records where
|
||||
each document lives in *this* project and the next version to use.
|
||||
|
||||
Delete rows for types you don't use. Add a row the first time you create a
|
||||
document of a type. `Primary File` may contain a glob (e.g.
|
||||
`docs/use-cases/uc-*/uc.md`); `framework/scripts/find-crossreferences.sh` reads it.
|
||||
|
||||
| Short Name | Artifact Type | Primary File | Next Available Version |
|
||||
| --- | --- | --- | --- |
|
||||
| BC | Business Case | docs/business-case.md | 002 |
|
||||
| SA | Stakeholder Analysis | docs/stakeholder-analysis.md | 002 |
|
||||
| PP | Project Plan | docs/project-plan.md | 002 |
|
||||
| MIL | Milestone / Gateway | docs/milestones/*.md | 005 |
|
||||
| RC | SQA Review Record | docs/sqa/reviews/rc-*.md | 008 |
|
||||
|
||||
## Languages
|
||||
|
||||
Set the PO language when the project starts; `project-planning` asks for it
|
||||
if it is missing. An artifact of a type marked "Written in the PO language"
|
||||
exists once, in that language, under its normal name (`business-case.md`); the
|
||||
`artifact` skill ("One file per artifact") has the rule.
|
||||
|
||||
| Setting | Value |
|
||||
| --- | --- |
|
||||
| PO language | en |
|
||||
| PO domain | it |
|
||||
| High-level register | IT Executive English |
|
||||
| Technical register | IT Professional English |
|
||||
| Wiki languages | en and the PO language, at least (`framework/process/wiki.md`) |
|
||||
|
||||
Every artifact of a type marked "Yes" below states its language and domain in
|
||||
its `Language` and `Domain` Metadata rows; `new-artifact.sh` fills them from
|
||||
`PO language` and `PO domain`. `Language` is a BCP 47 code (`da`, `en`).
|
||||
`Domain` is a value from this list; add a row to introduce a domain, so a
|
||||
reviewer can see at once which professional vocabulary a document uses.
|
||||
|
||||
| Domain | Meaning |
|
||||
| --- | --- |
|
||||
| it | Software and IT |
|
||||
| medical | Healthcare and medical devices |
|
||||
| construction | Construction and civil engineering |
|
||||
|
||||
| Artifact types | Register | Written in the PO language |
|
||||
| --- | --- | --- |
|
||||
| BC, KPI, PP, MIL | IT Executive English | Yes |
|
||||
| SA, BMC, BPMN, UCD, US, UC, SSD, DM, RA, GOV, DICT | IT Professional English | Yes |
|
||||
| OC, SD, DCD, ERD, TP, AD, ADR, TM, RC, QC, source code | IT Professional English | No |
|
||||
|
||||
## Notes
|
||||
|
||||
- "Next Available Version" is the zero-padded (3-digit) version to use the
|
||||
*next* time a new document of that type is created. Increment it only when
|
||||
a brand-new document is created, not when an existing document's
|
||||
`## Version History` gets a row.
|
||||
- `ADR` uses 4 digits (`0001`); `RC` is sequential across all artifact types.
|
||||
@@ -0,0 +1,132 @@
|
||||
# Business Case
|
||||
|
||||
## Metadata
|
||||
| Key | Value |
|
||||
| --- | --- |
|
||||
| ID | BC-001 |
|
||||
| CrossReference | |
|
||||
| Language | en |
|
||||
| Domain | it |
|
||||
|
||||
## Version History
|
||||
| Date | Status | Author | Reviewer | Change | Commit |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 2026-11-06 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | pending |
|
||||
|
||||
---
|
||||
## Executive Summary
|
||||
|
||||
Day 55 of the Udemy course "100 Days of Code: The Complete Python Pro Bootcamp" asks the participant to build a "Higher or Lower" guessing game as a Flask website. This project delivers that assignment as a small, readable, runnable Python project with tests, documentation, a screenshot for every lecture step and a wiki in English, Danish and Bahasa Malaysia. It is published as a public learning repository that other course participants can read and compare against.
|
||||
|
||||
## Methodological and Standards Foundation
|
||||
|
||||
The project follows the SQA and QC framework mounted at `framework/` and Larman's *Applying UML and Patterns* where a design artifact is needed. Quality is judged against ISO/IEC 25010:2023. Source code follows the framework's Python conventions and Clean Architecture; tests use pytest.
|
||||
|
||||
## Problem Statement
|
||||
|
||||
Course participants who finish the Day 55 assignment have no common, readable reference to compare against. Shared solutions are scattered and often lack tests, run instructions or an explanation of what each lecture step teaches. The belief that would kill the idea if false: other participants find a documented, step-by-step solution more useful than the bare assignment code. The idea is a hunch, but it costs only the author's time.
|
||||
|
||||
## Business Opportunity
|
||||
|
||||
A single repository that holds the finished assignment, explains each lecture step (Flask routes, URL variables, HTML rendering, decorators with `*args` and `**kwargs`) and ties screenshots to the code makes the course material easier to reuse and shows the author's craft to repository visitors.
|
||||
|
||||
## Objectives
|
||||
|
||||
1. Deliver a Flask application whose home route shows the heading "Guess a number between 0 and 9" and a GIF.
|
||||
2. Deliver a route `/<int:guess>` that compares the guess with a random number and answers "too low", "too high" or "correct", each with its own heading colour and GIF.
|
||||
3. Deliver the lecture's decorator exercises (`make_bold`, `make_emphasis`, `make_underlined`, `is_authenticated`) with the assignment's function names.
|
||||
4. Cover the game logic and the routes with pytest tests.
|
||||
5. Document in the README how to create and use a local `.venv`, run the application and run the tests.
|
||||
6. Provide a screenshot for every lecture step in the README and a wiki in English, Danish and Bahasa Malaysia that explains what each step teaches.
|
||||
7. Publish the repository with a description and topics.
|
||||
|
||||
## Scope
|
||||
|
||||
### In Scope
|
||||
|
||||
- Flask application in `src/`, tests in `tests/`, documents in `docs/`.
|
||||
- Constants in `constants.py`, project configuration in `pyproject.toml`, a Python `.gitignore`, Doxygen comments and a `Doxyfile`.
|
||||
- README from the framework template; wiki in `en`, `da` and `ms`.
|
||||
- A screenshot of each lecture step.
|
||||
- Repository description and topics on the git host.
|
||||
|
||||
### Out of Scope
|
||||
|
||||
- Persistent storage, user accounts, deployment to a hosting service.
|
||||
- Anything from other course days.
|
||||
- Testing a GUI on the host desktop; browser checks run in a container or sandbox (`framework/process/gui-testing.md`).
|
||||
|
||||
## Expected Benefits
|
||||
|
||||
### Tangible Benefits
|
||||
|
||||
- A runnable, tested repository other participants can clone.
|
||||
- A README and a three-language wiki that explain every lecture step.
|
||||
|
||||
### Intangible Benefits
|
||||
|
||||
- Practice in Flask, decorators, testing and documentation.
|
||||
- A visible, well-structured example for repository visitors.
|
||||
|
||||
## Strategic Alignment
|
||||
|
||||
The project supports the participant's goal of completing the 100 Days of Code course with professional habits: planned work, tests, reviewed documents and traceable pull requests.
|
||||
|
||||
## Success Criteria
|
||||
|
||||
| # | Criterion | Target | Measure |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | Game behaviour | Home, too low, too high and correct pages all work | pytest passes for every answer path |
|
||||
| 2 | Tests | All tests pass on Python 3.13 or later | `python -m pytest` exits with 0 |
|
||||
| 3 | Run instructions | A new reader runs the app from the README alone | README steps reproduce a running app |
|
||||
| 4 | Lecture coverage | One screenshot per lecture step | Screenshots listed in the README and in each wiki language |
|
||||
| 5 | Wiki | Three languages | Pages exist in en, da and ms for every lecture step |
|
||||
| 6 | Runtime dependencies | Only Flask | `pyproject.toml` lists one runtime dependency |
|
||||
|
||||
## Risks
|
||||
|
||||
| Risk | Impact | Mitigation |
|
||||
| --- | --- | --- |
|
||||
| Giphy GIF links stop working | Pages show a broken image | Keep GIF URLs in `constants.py`; tests do not depend on the network |
|
||||
| Screenshots need a browser | The host desktop would be taken over | Capture screenshots in a container or sandbox, never on the host desktop |
|
||||
| Translation errors in da or ms | Misleading wiki text | Keep wiki pages short and structurally identical across languages; S01 reviews |
|
||||
| Token leak | Credential exposure | Tokens stay in `.env`, which git ignores and the project never imports |
|
||||
|
||||
## Assumptions
|
||||
|
||||
- S01 is the Product Owner, developer and reviewer; in autonomous mode the AI acts as stand-in reviewer and each review record says so.
|
||||
- S02 and S03 cannot be reached during the project; their needs come from the assignment text.
|
||||
- The idea is a hunch with no cost, so no riskiest-assumption test is needed.
|
||||
- `origin` is `ssh://git@git.tirsystem.com:10022/Tirsvad-Udemy-100-days-of-code/055-higher-lower.git`; the user also named `https://git.tirsystem.com/Tirsvad-Udemy-100_days_of_code`, which is treated as the owning organisation or repository family (an open point in the Project Plan).
|
||||
- The application has a user interface made of four pages; the wireframes are the assignment's own screenshots and the presentation pattern is MVC for the route layer.
|
||||
|
||||
## Constraints
|
||||
|
||||
- Duration: about ten days, from 2026-11-06 to 2026-11-16; effort is the author's own time and there is no budget.
|
||||
- Python 3.13 or later, a local `.venv`, pytest, `pyproject.toml`.
|
||||
- Folders `src/`, `tests/`, `docs/`.
|
||||
- A branch and a pull request per milestone; no direct commits to `main`.
|
||||
- No runtime dependency beyond Flask.
|
||||
- Tokens are read from `.env` for personal use only; the project does not test or import them.
|
||||
- The PO language is English and the domain is IT.
|
||||
|
||||
## Cost–Benefit Assessment
|
||||
|
||||
| Costs | Benefits |
|
||||
| --- | --- |
|
||||
| Author time of a few days, no money | A reusable learning repository and a portfolio example |
|
||||
| Effort for three wiki languages | Wider readership for S02 and S03 |
|
||||
|
||||
The assessment is qualitative because the project has no budget and no revenue.
|
||||
|
||||
## Stakeholders
|
||||
|
||||
| Stakeholder ID (SA) | Interest in this project |
|
||||
| --- | --- |
|
||||
| S01 | Completes the assignment, owns and reviews the work |
|
||||
| S02 | Reads and runs the code, compares solutions |
|
||||
| S03 | Browses the repository for ideas |
|
||||
|
||||
## Recommendation
|
||||
|
||||
Proceed — the scope is small, the cost is time only and the result is a reusable, documented learning project.
|
||||
@@ -0,0 +1,71 @@
|
||||
# MIL-001 Project Setup
|
||||
|
||||
## Metadata
|
||||
| Key | Value |
|
||||
| --- | --- |
|
||||
| ID | MIL-001 |
|
||||
| CrossReference | [BC-001] |
|
||||
| Language | en |
|
||||
| Domain | it |
|
||||
|
||||
## Version History
|
||||
| Date | Status | Author | Reviewer | Change | Commit |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 2026-11-06 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | pending |
|
||||
|
||||
---
|
||||
## Purpose
|
||||
|
||||
Decide whether the project skeleton is sound enough to build the lecture steps on: tooling, configuration, folder layout and repository metadata.
|
||||
|
||||
## Deliverable
|
||||
|
||||
A Python project with `pyproject.toml`, a Python `.gitignore`, `src/` and `tests/` folders, `constants.py`, a `Doxyfile`, a README from the framework template that explains the local `.venv` and the test run, and a repository description and topics on the git host.
|
||||
|
||||
## Go / No-Go Criteria
|
||||
|
||||
| # | Criterion (objectively checkable) | Go | No-Go |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | `pyproject.toml` requires Python 3.13 or later and lists Flask as the only runtime dependency | Yes | No |
|
||||
| 2 | `python -m pytest` runs in a fresh `.venv` and exits with 0 | Yes | No |
|
||||
| 3 | `.gitignore` ignores `.venv`, caches and `.env` | Yes | No |
|
||||
| 4 | The README states how to create and use `.venv` and runs `python -m pip install --upgrade pip` | Yes | No |
|
||||
| 5 | The repository has a description and topics on the git host | Yes | No |
|
||||
|
||||
## Dependencies
|
||||
|
||||
| Depends on | Reason |
|
||||
| --- | --- |
|
||||
| BC-001, SA-001, PP-001 | The baseline must be accepted before code |
|
||||
|
||||
## Traceability
|
||||
|
||||
| Business Case objective / KPI / user story | Reference |
|
||||
| --- | --- |
|
||||
| Objectives 5 and 7 | [BC-001] |
|
||||
|
||||
## Ownership
|
||||
|
||||
| Role | Stakeholder ID (SA) |
|
||||
| --- | --- |
|
||||
| Owner | S01 |
|
||||
| Approving reviewer | S01 |
|
||||
|
||||
## Target Date
|
||||
|
||||
2026-11-08 — inside the few-day effort stated in the Business Case.
|
||||
|
||||
## Tasks
|
||||
|
||||
| # | Task | Summary | Needs its own Use Case/User Story? | Reference |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 1 | Add pyproject.toml and project layout | Create `pyproject.toml` (Python 3.13 or later, Flask as the only runtime dependency, pytest as a test extra), the `src/higher_lower/` package and `tests/` folder with a smoke test, so `python -m pytest` runs. | No | |
|
||||
| 2 | Add constants.py | Create `src/higher_lower/constants.py` holding the heading text, colours, GIF URLs and the number range, so no literal is repeated in the code. | No | |
|
||||
| 3 | Add Python .gitignore | Add a Python `.gitignore` that also ignores `.venv`, caches, `.env` and generated Doxygen output, so no secret or build output is committed. | No | |
|
||||
| 4 | Add Doxyfile | Add a `Doxyfile` configured for the Python sources and Doxygen comment style, so API documentation can be generated. | No | |
|
||||
| 5 | Write README with venv and test instructions | Fill the framework README template: purpose, how to create and use `.venv`, upgrade pip, install, run, test. Lecture screenshots are added by MIL-004. | No | |
|
||||
| 6 | Set repository description and topics | Set a description and topics on the git host repository through its API, reading the token from `.env` without importing `.env` into the project. | No | |
|
||||
|
||||
---
|
||||
|
||||
[BC-001]: ../business-case.md
|
||||
@@ -0,0 +1,71 @@
|
||||
# MIL-002 Lecture Steps
|
||||
|
||||
## Metadata
|
||||
| Key | Value |
|
||||
| --- | --- |
|
||||
| ID | MIL-002 |
|
||||
| CrossReference | [BC-001] |
|
||||
| Language | en |
|
||||
| Domain | it |
|
||||
|
||||
## Version History
|
||||
| Date | Status | Author | Reviewer | Change | Commit |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 2026-11-06 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | pending |
|
||||
|
||||
---
|
||||
## Purpose
|
||||
|
||||
Decide whether the Day 55 lecture material (routes, URL variables, HTML rendering, decorators) is implemented, tested and readable, so the final game can reuse it.
|
||||
|
||||
## Deliverable
|
||||
|
||||
One small module per lecture step under `src/higher_lower/lectures/`, each runnable on its own, with the assignment's function names, plus pytest tests for each.
|
||||
|
||||
## Go / No-Go Criteria
|
||||
|
||||
| # | Criterion (objectively checkable) | Go | No-Go |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | The URL-path step serves `/`, `/bye` and `/username/<name>` with debug mode available | Yes | No |
|
||||
| 2 | The HTML step returns an `<h1>` with inline CSS, a paragraph and an image | Yes | No |
|
||||
| 3 | `make_bold`, `make_emphasis` and `make_underlined` wrap text in `<b>`, `<em>` and `<u>` | Yes | No |
|
||||
| 4 | `is_authenticated` runs the function only for a logged-in `User`, using `*args` and `**kwargs` | Yes | No |
|
||||
| 5 | Tests for every step pass | Yes | No |
|
||||
| 6 | Docstrings use Doxygen comments | Yes | No |
|
||||
|
||||
## Dependencies
|
||||
|
||||
| Depends on | Reason |
|
||||
| --- | --- |
|
||||
| MIL-001 | Needs the project skeleton and constants |
|
||||
|
||||
## Traceability
|
||||
|
||||
| Business Case objective / KPI / user story | Reference |
|
||||
| --- | --- |
|
||||
| Objectives 3 and 4 | [BC-001] |
|
||||
|
||||
## Ownership
|
||||
|
||||
| Role | Stakeholder ID (SA) |
|
||||
| --- | --- |
|
||||
| Owner | S01 |
|
||||
| Approving reviewer | S01 |
|
||||
|
||||
## Target Date
|
||||
|
||||
2026-11-10 — follows MIL-001 within the Business Case's few-day effort.
|
||||
|
||||
## Tasks
|
||||
|
||||
| # | Task | Summary | Needs its own Use Case/User Story? | Reference |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 1 | Implement URL paths and variable routes step | Build the lecture's Flask app with routes `/`, `/bye` and `/username/<name>` (with a converter such as `<int:number>`), runnable in debug mode, so S02 can see how Flask parses URL paths. | No | |
|
||||
| 2 | Implement HTML rendering step | Return an `<h1>` with inline CSS centring, a paragraph and images (a still image and a GIF with a width attribute) from a route, showing that Flask returns HTML strings. | No | |
|
||||
| 3 | Implement make_bold, make_emphasis and make_underlined | Write the three decorators with the assignment's names and apply them to the `/bye` route, so HTML tags are added without repeating them in each function. | No | |
|
||||
| 4 | Implement is_authenticated with *args and **kwargs | Write the `User` class and the `is_authenticated` decorator that reads the first positional argument, so a blog post can be created only by a logged-in user. | No | |
|
||||
| 5 | Test the lecture steps with pytest | Write pytest tests with the Flask test client for each step, with no network access, so the behaviour is proven. | No | |
|
||||
|
||||
---
|
||||
|
||||
[BC-001]: ../business-case.md
|
||||
@@ -0,0 +1,69 @@
|
||||
# MIL-003 Higher or Lower Game
|
||||
|
||||
## Metadata
|
||||
| Key | Value |
|
||||
| --- | --- |
|
||||
| ID | MIL-003 |
|
||||
| CrossReference | [BC-001] |
|
||||
| Language | en |
|
||||
| Domain | it |
|
||||
|
||||
## Version History
|
||||
| Date | Status | Author | Reviewer | Change | Commit |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 2026-11-06 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | pending |
|
||||
|
||||
---
|
||||
## Purpose
|
||||
|
||||
Decide whether the final project, the Higher or Lower game as a website, meets the assignment.
|
||||
|
||||
## Deliverable
|
||||
|
||||
A Flask application (`server.py` entry point, as the assignment names it, delegating to the package) with the home route, the guess route, a game module that holds the logic and tests that cover every answer path.
|
||||
|
||||
## Go / No-Go Criteria
|
||||
|
||||
| # | Criterion (objectively checkable) | Go | No-Go |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | `/` shows an `<h1>` "Guess a number between 0 and 9" and a GIF | Yes | No |
|
||||
| 2 | `/<int:guess>` answers too low, too high or correct, each with a different heading colour and GIF | Yes | No |
|
||||
| 3 | The secret number is random in the range from `constants.py` and fixed for the process | Yes | No |
|
||||
| 4 | Tests cover low, high, correct, home and a number outside the range | Yes | No |
|
||||
| 5 | `python server.py` starts the app as the README says | Yes | No |
|
||||
|
||||
## Dependencies
|
||||
|
||||
| Depends on | Reason |
|
||||
| --- | --- |
|
||||
| MIL-002 | Reuses the HTML rendering step and the app layout |
|
||||
|
||||
## Traceability
|
||||
|
||||
| Business Case objective / KPI / user story | Reference |
|
||||
| --- | --- |
|
||||
| Objectives 1, 2 and 4 | [BC-001] |
|
||||
|
||||
## Ownership
|
||||
|
||||
| Role | Stakeholder ID (SA) |
|
||||
| --- | --- |
|
||||
| Owner | S01 |
|
||||
| Approving reviewer | S01 |
|
||||
|
||||
## Target Date
|
||||
|
||||
2026-11-12 — follows MIL-002 within the Business Case's few-day effort.
|
||||
|
||||
## Tasks
|
||||
|
||||
| # | Task | Summary | Needs its own Use Case/User Story? | Reference |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 1 | Implement game logic | Write a pure function that compares a guess with the secret number and returns low, high or correct, so the rule can be tested without Flask. | No | |
|
||||
| 2 | Implement home and guess routes | Build the Flask app factory and the routes `/` and `/<int:guess>` that render the headings, colours and GIFs from `constants.py`. | No | |
|
||||
| 3 | Add server.py entry point | Add `server.py` at the project root, the file name the assignment asks for, that starts the app. | No | |
|
||||
| 4 | Test the game with pytest | Test the logic and routes with a fixed secret number, covering low, high, correct, home and out-of-range input. | No | |
|
||||
|
||||
---
|
||||
|
||||
[BC-001]: ../business-case.md
|
||||
@@ -0,0 +1,71 @@
|
||||
# MIL-004 Docs, Screenshots and Wiki
|
||||
|
||||
## Metadata
|
||||
| Key | Value |
|
||||
| --- | --- |
|
||||
| ID | MIL-004 |
|
||||
| CrossReference | [BC-001] |
|
||||
| Language | en |
|
||||
| Domain | it |
|
||||
|
||||
## Version History
|
||||
| Date | Status | Author | Reviewer | Change | Commit |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 2026-11-06 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | pending |
|
||||
|
||||
---
|
||||
## Purpose
|
||||
|
||||
Decide whether the documentation lets S02 and S03 understand and run the project: screenshots of each lecture step, the finished README and a wiki in English, Danish and Bahasa Malaysia.
|
||||
|
||||
## Deliverable
|
||||
|
||||
A screenshot for each of the six lecture steps, a README that shows them and explains how to run the project and its tests, and wiki pages in `en`, `da` and `ms` that explain what each lecture step teaches.
|
||||
|
||||
## Go / No-Go Criteria
|
||||
|
||||
| # | Criterion (objectively checkable) | Go | No-Go |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | Six screenshots exist, one per lecture step, taken in a container or sandbox, not on the host desktop | Yes | No |
|
||||
| 2 | The README shows every screenshot | Yes | No |
|
||||
| 3 | The wiki has the same pages in `en`, `da` and `ms` | Yes | No |
|
||||
| 4 | Each wiki page explains what the lecture step teaches | Yes | No |
|
||||
| 5 | `check-readme.sh` and `check-languages.sh` pass | Yes | No |
|
||||
|
||||
## Dependencies
|
||||
|
||||
| Depends on | Reason |
|
||||
| --- | --- |
|
||||
| MIL-003 | The finished application is what the screenshots show |
|
||||
|
||||
## Traceability
|
||||
|
||||
| Business Case objective / KPI / user story | Reference |
|
||||
| --- | --- |
|
||||
| Objectives 5 and 6 | [BC-001] |
|
||||
|
||||
## Ownership
|
||||
|
||||
| Role | Stakeholder ID (SA) |
|
||||
| --- | --- |
|
||||
| Owner | S01 |
|
||||
| Approving reviewer | S01 |
|
||||
|
||||
## Target Date
|
||||
|
||||
2026-11-16 — closes the few-day effort stated in the Business Case.
|
||||
|
||||
## Tasks
|
||||
|
||||
| # | Task | Summary | Needs its own Use Case/User Story? | Reference |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 1 | Capture lecture step screenshots in a container | Run each lecture app and the game in a Docker container (Linux) with a headless browser and capture one screenshot per lecture step, so the host desktop is never used (`framework/process/gui-testing.md`). | No | |
|
||||
| 2 | Add screenshots and step overview to README | Show each screenshot in the README with a one-line description of the lecture step. | No | |
|
||||
| 3 | Write the English wiki | Write the wiki pages in English following `framework/process/wiki.md`: one page per lecture step with its screenshot and what was gained. | No | |
|
||||
| 4 | Write the Danish wiki | Translate the English wiki to Danish with the same page structure. | No | |
|
||||
| 5 | Write the Bahasa Malaysia wiki | Translate the English wiki to Bahasa Malaysia with the same page structure. | No | |
|
||||
| 6 | Publish the wiki | Publish the three language wikis to the git host wiki, if the host exposes it, and check the pages. | No | |
|
||||
|
||||
---
|
||||
|
||||
[BC-001]: ../business-case.md
|
||||
@@ -0,0 +1,90 @@
|
||||
# Project Plan
|
||||
|
||||
## Metadata
|
||||
| Key | Value |
|
||||
| --- | --- |
|
||||
| ID | PP-001 |
|
||||
| CrossReference | [BC-001], [SA-001] |
|
||||
| Language | en |
|
||||
| Domain | it |
|
||||
|
||||
## Version History
|
||||
| Date | Status | Author | Reviewer | Change | Commit |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 2026-11-06 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | pending |
|
||||
|
||||
---
|
||||
## Purpose
|
||||
|
||||
This plan schedules the four phases that deliver the Higher or Lower Flask project within the few-day effort stated in [BC-001]. S01 is the Product Owner and owns every phase; [SA-001] sets the cadence: one reviewed pull request per phase.
|
||||
|
||||
## Planning Assumptions
|
||||
|
||||
- Week 1 starts 2026-11-06; the plan ends by 2026-11-16, the few-day effort of [BC-001] Constraints; the dates are the planner's estimate, accepted by S01 in chat on 2026-11-06.
|
||||
- Phase length: two to three days each; one branch and one pull request per phase.
|
||||
- Autonomous mode: the AI acts as stand-in reviewer for S01 and every review record says so.
|
||||
- The Milestone column stays blank (not yet synced) until the host sync runs.
|
||||
- Tokens come from `.env`, which is ignored by git and never imported by the project.
|
||||
|
||||
## Gateway Schedule
|
||||
|
||||
| Gateway | Document | Window | Decision date | Owner | Stories | Main deliverable | Milestone |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| Project setup | [MIL-001] | 2026-11-06 to 2026-11-08 | 2026-11-08 | S01 | none (technical tasks) | Skeleton, tooling, README, repository metadata | |
|
||||
| Lecture steps | [MIL-002] | 2026-11-08 to 2026-11-10 | 2026-11-10 | S01 | none (technical tasks) | Routes, HTML and decorator modules with tests | |
|
||||
| Higher or Lower game | [MIL-003] | 2026-11-10 to 2026-11-12 | 2026-11-12 | S01 | none (technical tasks) | The final project with tests | |
|
||||
| Docs, screenshots and wiki | [MIL-004] | 2026-11-12 to 2026-11-16 | 2026-11-16 | S01 | none (technical tasks) | Screenshots, README, wiki in en, da, ms | |
|
||||
|
||||
```plantuml
|
||||
@startgantt
|
||||
Project starts 2026-11-06
|
||||
[Project setup] starts 2026-11-06 and ends 2026-11-08
|
||||
[Project setup Go/No-Go] happens 2026-11-08
|
||||
[Lecture steps] starts 2026-11-08 and ends 2026-11-10
|
||||
[Lecture steps Go/No-Go] happens 2026-11-10
|
||||
[Higher or Lower game] starts 2026-11-10 and ends 2026-11-12
|
||||
[Higher or Lower game Go/No-Go] happens 2026-11-12
|
||||
[Docs, screenshots and wiki] starts 2026-11-12 and ends 2026-11-16
|
||||
[Docs Go/No-Go] happens 2026-11-16
|
||||
@endgantt
|
||||
```
|
||||
|
||||
## Scope Coverage
|
||||
|
||||
| Business Case scope item | Gateway |
|
||||
| --- | --- |
|
||||
| Flask application in `src/`, tests in `tests/` | MIL-002, MIL-003 |
|
||||
| `constants.py`, `pyproject.toml`, `.gitignore`, Doxygen comments, `Doxyfile` | MIL-001 |
|
||||
| README from the framework template | MIL-001, MIL-004 |
|
||||
| Screenshots and wiki in en, da, ms | MIL-004 |
|
||||
| Repository description and topics | MIL-001 |
|
||||
|
||||
## Dependencies
|
||||
|
||||
```
|
||||
MIL-001 → MIL-002 → MIL-003 → MIL-004
|
||||
```
|
||||
|
||||
A No-Go on a phase stops the later phases; their dates and the end date move by the length of the rework, and S01 decides the move.
|
||||
|
||||
## Plan Risks
|
||||
|
||||
| Risk | Impact | Mitigation |
|
||||
| --- | --- | --- |
|
||||
| Docker Desktop is not running on the host, so screenshots cannot be taken in a container (BC-001 risk: screenshots need a browser) | MIL-004 blocked | Start Docker Desktop, or use Windows Sandbox; stop and report if neither is available |
|
||||
| The three-language wiki takes longer than planned (BC-001 risk: translation errors in da or ms) | MIL-004 slips | Keep pages short and structurally identical |
|
||||
|
||||
## Open Issues
|
||||
|
||||
- The user named `https://git.tirsystem.com/Tirsvad-Udemy-100_days_of_code`; `origin` points at `Tirsvad-Udemy-100-days-of-code/055-higher-lower`. The plan uses `origin`; S01 can correct this at plan acceptance.
|
||||
- The tasks are plain technical tasks with no use case, because the assignment text is the specification; a use case is added if the reviewer asks for one.
|
||||
- The wiki is written as files in the repository (`docs/wiki/en`, `da`, `ms`) and published to the host wiki only if the host exposes it.
|
||||
|
||||
---
|
||||
|
||||
[BC-001]: ./business-case.md
|
||||
[SA-001]: ./stakeholder-analysis.md
|
||||
[MIL-001]: ./milestones/mil-001-project-setup.md
|
||||
[MIL-002]: ./milestones/mil-002-lecture-steps.md
|
||||
[MIL-003]: ./milestones/mil-003-higher-lower-game.md
|
||||
[MIL-004]: ./milestones/mil-004-docs-screenshots-wiki.md
|
||||
@@ -0,0 +1,57 @@
|
||||
# RC-001 Business Case review
|
||||
|
||||
## Metadata
|
||||
| Key | Value |
|
||||
| ---
|
||||
|
||||
## Artifact Under Review
|
||||
|
||||
- Instance reviewed: [BC-001]
|
||||
- Checklist used: [QC-BC-001]
|
||||
- Scope: full review
|
||||
- Language and domain: en / it
|
||||
- Language reviewer: none, the reviewer reads English and knows the IT domain
|
||||
- Mode: autonomous, not independent (the reviewer is `AI as stand-in for S01`)
|
||||
|
||||
## Checklist Results
|
||||
|
||||
| # | Criterion | Status | Evidence/Notes |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | ROI/Cost-Benefit analysis is quantitative, or where qualitative, is explicitly justified | Pass | Cost–Benefit says the assessment is qualitative because there is no budget and no revenue |
|
||||
| 2 | Risks are identified with documented impact and mitigation | Pass | Four risks, each with impact and mitigation |
|
||||
| 3 | Success criteria are measurable, stating explicit targets rather than vague aspirations | Pass | Six success criteria with targets and measures, for example `python -m pytest` exits with 0 |
|
||||
| 4 | Scope explicitly separates In Scope vs Out of Scope | Pass | `### In Scope` and `### Out of Scope` are separate |
|
||||
| 5 | Stakeholders are cross-referenced to Stakeholder Analysis IDs rather than re-described inline | Pass | Stakeholders table cites S01, S02, S03 only |
|
||||
| 6 | Methodology and quality-standard foundation are stated explicitly (e.g. ISO/IEC 25010, Larman) | Pass | Methodological and Standards Foundation names the framework, Larman and ISO/IEC 25010:2023 |
|
||||
| 7 | Assumptions and constraints are explicit and clearly distinguished from one another | Pass | Assumptions and Constraints are separate lists |
|
||||
| 8 | Document supports executive decision-making with a clear, unambiguous recommendation | Pass | Recommendation: Proceed, with a one-sentence rationale |
|
||||
|
||||
## Language and Domain Results
|
||||
|
||||
| # | Criterion | Status | Evidence/Notes |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | The Metadata table has a `Language` row and a `Domain` row, and neither is a placeholder | Pass | Metadata has `Language | en` and `Domain | it`, no placeholder |
|
||||
| 2 | `Language` is a BCP 47 code and `Domain` is a value from the registry's domain list | Pass | `en` is BCP 47; `it` is in the registry domain list |
|
||||
| 3 | The content (prose and table cells) is written in the stated language | Pass | BC-001 prose and table cells are in English |
|
||||
| 4 | The register matches the one the registry gives for the artifact type | Pass | Register is IT Executive English for BC, PP and MIL, IT Professional English for SA, as the registry gives |
|
||||
| 5 | Domain terms are the PO terms of the domain's dictionary, with no synonyms | Pass | Only standard IT terms are used (Flask, route, decorator, test); the project has no `DICT` and no PO-specific term needs one |
|
||||
| 6 | Metadata keys, section headings, IDs and statuses are in English | Pass | Metadata keys, headings, IDs and statuses are English |
|
||||
| 7 | No translated twin (`<name>.<language>.md`) exists beside the document | Pass | No `.en.md`/`.da.md` twin exists beside the document |
|
||||
| 8 | A change of language or domain since the previous accepted version has a Version History row and was reviewed again | Pass | No change of language or domain; this is the first version |
|
||||
| 9 | A reviewer competent in the domain, and in the language, has confirmed that the domain terms are used correctly | Pass | AI as stand-in for S01 read the terms as correct IT usage; S01 accepted the plan in chat on 2026-11-06. Stand-in decision, not independent; open to challenge in the run summary |
|
||||
| 10 | Abbreviations are spelled out on first use, in the stated language | Pass | Abbreviations (BC, SA, MIL, GIF, HTML, PR) are spelled out or are standard IT abbreviations |
|
||||
|
||||
## Overall Verdict
|
||||
|
||||
Go — All Mandatory and Optional criteria pass for BC-001 and QC-LANG-001; no blocking finding.
|
||||
|
||||
## Action Items
|
||||
|
||||
| Action | Owner | Due |
|
||||
| --- | --- | --- |
|
||||
| None | S01 | 2026-11-06 |
|
||||
|
||||
---
|
||||
|
||||
[BC-001]: ../../docs/business-case.md
|
||||
[QC-BC-001]: ../../framework/qc/artifacts/qc-business-case.md
|
||||
@@ -0,0 +1,58 @@
|
||||
# RC-002 Stakeholder Analysis review
|
||||
|
||||
## Metadata
|
||||
| Key | Value |
|
||||
| ---
|
||||
|
||||
## Artifact Under Review
|
||||
|
||||
- Instance reviewed: [SA-001]
|
||||
- Checklist used: [QC-SA-001]
|
||||
- Scope: full review
|
||||
- Language and domain: en / it
|
||||
- Language reviewer: none, the reviewer reads English and knows the IT domain
|
||||
- Mode: autonomous, not independent (the reviewer is `AI as stand-in for S01`)
|
||||
|
||||
## Checklist Results
|
||||
|
||||
| # | Criterion | Status | Evidence/Notes |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | Power/Interest grid is filled for every stakeholder, with no gaps or unclassified entries | Pass | S01, S02 and S03 each have power, interest and quadrant |
|
||||
| 2 | Each stakeholder is assigned a unique, stable ID (e.g. S01-S11 style) reusable for RACI assignments in other artifacts | Pass | IDs S01–S03 are unique and stable |
|
||||
| 3 | Roles and organizational context are defined with explicit Power and Interest levels, not just narrative description | Pass | Role, organization and levels are explicit |
|
||||
| 4 | Communication needs (channel, frequency, deliverable type) are mapped to project phases or milestones | Pass | CM-001 to CM-003 map channel, frequency and deliverable to milestones |
|
||||
| 5 | Conflicting stakeholder interests are identified with documented mitigation or resolution strategies | Pass | One conflict (small code vs. three-language documentation) with a mitigation |
|
||||
| 6 | Stakeholder concerns are explicitly traced to Business Case objectives | Pass | Business Goal Alignment table traces each concern to BC-001 objectives |
|
||||
| 7 | Primary concerns are expressed in both business language and a recognized quality-attribute mapping (e.g. FURPS+) | Pass | Each concern has a business statement and a FURPS+ attribute |
|
||||
| 8 | Document is understandable and navigable by non-technical stakeholders reviewing their own entry | Pass | Short plain-language table; each stakeholder can find their row |
|
||||
| 9 | Every concern has a stable ID (`CN-NNN`) in the concern register, with the stakeholder who raised it; IDs are never renumbered or reused | Pass | CN-001 to CN-007, each with its stakeholder |
|
||||
|
||||
## Language and Domain Results
|
||||
|
||||
| # | Criterion | Status | Evidence/Notes |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | The Metadata table has a `Language` row and a `Domain` row, and neither is a placeholder | Pass | Metadata has `Language | en` and `Domain | it`, no placeholder |
|
||||
| 2 | `Language` is a BCP 47 code and `Domain` is a value from the registry's domain list | Pass | `en` is BCP 47; `it` is in the registry domain list |
|
||||
| 3 | The content (prose and table cells) is written in the stated language | Pass | SA-001 prose and table cells are in English |
|
||||
| 4 | The register matches the one the registry gives for the artifact type | Pass | Register is IT Executive English for BC, PP and MIL, IT Professional English for SA, as the registry gives |
|
||||
| 5 | Domain terms are the PO terms of the domain's dictionary, with no synonyms | Pass | Only standard IT terms are used (Flask, route, decorator, test); the project has no `DICT` and no PO-specific term needs one |
|
||||
| 6 | Metadata keys, section headings, IDs and statuses are in English | Pass | Metadata keys, headings, IDs and statuses are English |
|
||||
| 7 | No translated twin (`<name>.<language>.md`) exists beside the document | Pass | No `.en.md`/`.da.md` twin exists beside the document |
|
||||
| 8 | A change of language or domain since the previous accepted version has a Version History row and was reviewed again | Pass | No change of language or domain; this is the first version |
|
||||
| 9 | A reviewer competent in the domain, and in the language, has confirmed that the domain terms are used correctly | Pass | AI as stand-in for S01 read the terms as correct IT usage; S01 accepted the plan in chat on 2026-11-06. Stand-in decision, not independent; open to challenge in the run summary |
|
||||
| 10 | Abbreviations are spelled out on first use, in the stated language | Pass | Abbreviations (BC, SA, MIL, GIF, HTML, PR) are spelled out or are standard IT abbreviations |
|
||||
|
||||
## Overall Verdict
|
||||
|
||||
Go — All criteria pass; no blocking finding.
|
||||
|
||||
## Action Items
|
||||
|
||||
| Action | Owner | Due |
|
||||
| --- | --- | --- |
|
||||
| None | S01 | 2026-11-06 |
|
||||
|
||||
---
|
||||
|
||||
[SA-001]: ../../docs/stakeholder-analysis.md
|
||||
[QC-SA-001]: ../../framework/qc/artifacts/qc-stakeholder-analysis.md
|
||||
@@ -0,0 +1,64 @@
|
||||
# RC-003 Project Plan review
|
||||
|
||||
## Metadata
|
||||
| Key | Value |
|
||||
| ---
|
||||
|
||||
## Artifact Under Review
|
||||
|
||||
- Instance reviewed: [PP-001]
|
||||
- Checklist used: [QC-PP-001]
|
||||
- Scope: full review
|
||||
- Language and domain: en / it
|
||||
- Language reviewer: none, the reviewer reads English and knows the IT domain
|
||||
- Mode: autonomous, not independent (the reviewer is `AI as stand-in for S01`)
|
||||
|
||||
## Checklist Results
|
||||
|
||||
| # | Criterion | Status | Evidence/Notes |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | The plan states its start date, end date and the constraint it must fit | Pass | Start 2026-11-06, end 2026-11-16, fits the Duration constraint of BC-001 |
|
||||
| 2 | Every milestone or gateway is listed once with its document, decision date and owner | Pass | Four gateways, each once, with document, decision date and owner S01 |
|
||||
| 3 | Every decision date lies inside the plan's window and is consistent with the dates in the linked `MIL-*` document | Pass | Decision dates 11-08, 11-10, 11-12, 11-16 equal the MIL target dates and lie in the window |
|
||||
| 4 | Every in-scope item of the Business Case is delivered at a named gateway (scope coverage) | Pass | Scope Coverage maps every In Scope item to MIL-001 to MIL-004 |
|
||||
| 5 | Dependencies between gateways are stated, acyclic and consistent with the schedule order | Pass | Chain MIL-001 → MIL-002 → MIL-003 → MIL-004 is acyclic and matches the dates |
|
||||
| 6 | The plan states what happens to later gateways and to the end date when a gateway is No-Go | Pass | Dependencies section: a No-Go moves later dates and the end date; S01 decides |
|
||||
| 7 | Owners, reviewers and escalation roles use Stakeholder Analysis IDs and match the governance RACI | Pass | Owner S01 only; no `GOV` exists in this project, so there is no RACI to cross-check |
|
||||
| 8 | Planning assumptions are listed with their source, and a changed baseline is recorded with its reason | Pass | Assumptions list their source, including the planner's date estimate accepted by S01 |
|
||||
| 9 | Plan risks are listed with impact and a mitigation, and trace to Business Case risks where they come from there | Pass | Two plan risks with impact, mitigation and the BC-001 risk they come from |
|
||||
| 10 | Open issues are listed, and none contradicts a statement elsewhere in the plan | Pass | Open issues are current: repository URL, no use cases, wiki location; none contradicts the plan |
|
||||
| 11 | Each gateway's main deliverable is stated and matches the deliverable of its `MIL-*` document | Pass | Each deliverable matches its MIL Deliverable section in substance |
|
||||
| 12 | Gateways that deliver user stories name them, and those that do not say why | Pass | Stories column says "none (technical tasks)" |
|
||||
| 13 | The schedule view (table, Gantt) and the dependency view agree with each other | Pass | Gantt bars and table dates agree; the chain matches the dependency list |
|
||||
| 14 | Each gateway is linked to its issue-tracker milestone, or marked as not yet synced | Pass | Milestone column blank and stated as not yet synced |
|
||||
| 15 | The plan is a singleton: one Project Plan per project, changes recorded in Version History | Pass | One Project Plan, PP-001, with a Version History |
|
||||
|
||||
## Language and Domain Results
|
||||
|
||||
| # | Criterion | Status | Evidence/Notes |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | The Metadata table has a `Language` row and a `Domain` row, and neither is a placeholder | Pass | Metadata has `Language | en` and `Domain | it`, no placeholder |
|
||||
| 2 | `Language` is a BCP 47 code and `Domain` is a value from the registry's domain list | Pass | `en` is BCP 47; `it` is in the registry domain list |
|
||||
| 3 | The content (prose and table cells) is written in the stated language | Pass | PP-001 prose and table cells are in English |
|
||||
| 4 | The register matches the one the registry gives for the artifact type | Pass | Register is IT Executive English for BC, PP and MIL, IT Professional English for SA, as the registry gives |
|
||||
| 5 | Domain terms are the PO terms of the domain's dictionary, with no synonyms | Pass | Only standard IT terms are used (Flask, route, decorator, test); the project has no `DICT` and no PO-specific term needs one |
|
||||
| 6 | Metadata keys, section headings, IDs and statuses are in English | Pass | Metadata keys, headings, IDs and statuses are English |
|
||||
| 7 | No translated twin (`<name>.<language>.md`) exists beside the document | Pass | No `.en.md`/`.da.md` twin exists beside the document |
|
||||
| 8 | A change of language or domain since the previous accepted version has a Version History row and was reviewed again | Pass | No change of language or domain; this is the first version |
|
||||
| 9 | A reviewer competent in the domain, and in the language, has confirmed that the domain terms are used correctly | Pass | AI as stand-in for S01 read the terms as correct IT usage; S01 accepted the plan in chat on 2026-11-06. Stand-in decision, not independent; open to challenge in the run summary |
|
||||
| 10 | Abbreviations are spelled out on first use, in the stated language | Pass | Abbreviations (BC, SA, MIL, GIF, HTML, PR) are spelled out or are standard IT abbreviations |
|
||||
|
||||
## Overall Verdict
|
||||
|
||||
Go — All Mandatory criteria pass after the plan was corrected before review (No-Go effect, risk traceability, stories reason); no blocking finding.
|
||||
|
||||
## Action Items
|
||||
|
||||
| Action | Owner | Due |
|
||||
| --- | --- | --- |
|
||||
| None | S01 | 2026-11-06 |
|
||||
|
||||
---
|
||||
|
||||
[PP-001]: ../../docs/project-plan.md
|
||||
[QC-PP-001]: ../../framework/qc/artifacts/qc-project-plan.md
|
||||
@@ -0,0 +1,55 @@
|
||||
# RC-004 MIL-001 review
|
||||
|
||||
## Metadata
|
||||
| Key | Value |
|
||||
| ---
|
||||
|
||||
## Artifact Under Review
|
||||
|
||||
- Instance reviewed: [MIL-001]
|
||||
- Checklist used: [QC-MIL-001]
|
||||
- Scope: full review
|
||||
- Language and domain: en / it
|
||||
- Language reviewer: none, the reviewer reads English and knows the IT domain
|
||||
- Mode: autonomous, not independent (the reviewer is `AI as stand-in for S01`)
|
||||
|
||||
## Checklist Results
|
||||
|
||||
| # | Criterion | Status | Evidence/Notes |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | A concrete deliverable is defined for every gate | Pass | The Deliverable section names concrete output |
|
||||
| 2 | Explicit Go/No-Go criteria are stated for each gate | Pass | The Go / No-Go table has objectively checkable rows |
|
||||
| 3 | Dependencies on other milestones are explicitly mapped | Pass | The Dependencies table maps the predecessor, or the baseline for MIL-001 |
|
||||
| 4 | Each milestone is traceable to a Business Case objective or KPI | Pass | Traceability cites BC-001 Objectives 5 and 7 |
|
||||
| 5 | Milestone owner and approving reviewer are identified | Pass | Owner and approving reviewer are S01 |
|
||||
| 6 | Milestone has a defined target date consistent with project constraints | Pass | Target date 2026-11-08 lies inside the Business Case duration (to 2026-11-16) |
|
||||
|
||||
## Language and Domain Results
|
||||
|
||||
| # | Criterion | Status | Evidence/Notes |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | The Metadata table has a `Language` row and a `Domain` row, and neither is a placeholder | Pass | Metadata has `Language | en` and `Domain | it`, no placeholder |
|
||||
| 2 | `Language` is a BCP 47 code and `Domain` is a value from the registry's domain list | Pass | `en` is BCP 47; `it` is in the registry domain list |
|
||||
| 3 | The content (prose and table cells) is written in the stated language | Pass | MIL-001 prose and table cells are in English |
|
||||
| 4 | The register matches the one the registry gives for the artifact type | Pass | Register is IT Executive English for BC, PP and MIL, IT Professional English for SA, as the registry gives |
|
||||
| 5 | Domain terms are the PO terms of the domain's dictionary, with no synonyms | Pass | Only standard IT terms are used (Flask, route, decorator, test); the project has no `DICT` and no PO-specific term needs one |
|
||||
| 6 | Metadata keys, section headings, IDs and statuses are in English | Pass | Metadata keys, headings, IDs and statuses are English |
|
||||
| 7 | No translated twin (`<name>.<language>.md`) exists beside the document | Pass | No `.en.md`/`.da.md` twin exists beside the document |
|
||||
| 8 | A change of language or domain since the previous accepted version has a Version History row and was reviewed again | Pass | No change of language or domain; this is the first version |
|
||||
| 9 | A reviewer competent in the domain, and in the language, has confirmed that the domain terms are used correctly | Pass | AI as stand-in for S01 read the terms as correct IT usage; S01 accepted the plan in chat on 2026-11-06. Stand-in decision, not independent; open to challenge in the run summary |
|
||||
| 10 | Abbreviations are spelled out on first use, in the stated language | Pass | Abbreviations (BC, SA, MIL, GIF, HTML, PR) are spelled out or are standard IT abbreviations |
|
||||
|
||||
## Overall Verdict
|
||||
|
||||
Go — All criteria pass; no blocking finding.
|
||||
|
||||
## Action Items
|
||||
|
||||
| Action | Owner | Due |
|
||||
| --- | --- | --- |
|
||||
| None | S01 | 2026-11-06 |
|
||||
|
||||
---
|
||||
|
||||
[MIL-001]: ../../docs/milestones/mil-001-project-setup.md
|
||||
[QC-MIL-001]: ../../framework/qc/artifacts/qc-milestones-gateways.md
|
||||
@@ -0,0 +1,55 @@
|
||||
# RC-005 MIL-002 review
|
||||
|
||||
## Metadata
|
||||
| Key | Value |
|
||||
| ---
|
||||
|
||||
## Artifact Under Review
|
||||
|
||||
- Instance reviewed: [MIL-002]
|
||||
- Checklist used: [QC-MIL-001]
|
||||
- Scope: full review
|
||||
- Language and domain: en / it
|
||||
- Language reviewer: none, the reviewer reads English and knows the IT domain
|
||||
- Mode: autonomous, not independent (the reviewer is `AI as stand-in for S01`)
|
||||
|
||||
## Checklist Results
|
||||
|
||||
| # | Criterion | Status | Evidence/Notes |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | A concrete deliverable is defined for every gate | Pass | The Deliverable section names concrete output |
|
||||
| 2 | Explicit Go/No-Go criteria are stated for each gate | Pass | The Go / No-Go table has objectively checkable rows |
|
||||
| 3 | Dependencies on other milestones are explicitly mapped | Pass | The Dependencies table maps the predecessor, or the baseline for MIL-001 |
|
||||
| 4 | Each milestone is traceable to a Business Case objective or KPI | Pass | Traceability cites BC-001 Objectives 3 and 4 |
|
||||
| 5 | Milestone owner and approving reviewer are identified | Pass | Owner and approving reviewer are S01 |
|
||||
| 6 | Milestone has a defined target date consistent with project constraints | Pass | Target date 2026-11-10 lies inside the Business Case duration (to 2026-11-16) |
|
||||
|
||||
## Language and Domain Results
|
||||
|
||||
| # | Criterion | Status | Evidence/Notes |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | The Metadata table has a `Language` row and a `Domain` row, and neither is a placeholder | Pass | Metadata has `Language | en` and `Domain | it`, no placeholder |
|
||||
| 2 | `Language` is a BCP 47 code and `Domain` is a value from the registry's domain list | Pass | `en` is BCP 47; `it` is in the registry domain list |
|
||||
| 3 | The content (prose and table cells) is written in the stated language | Pass | MIL-002 prose and table cells are in English |
|
||||
| 4 | The register matches the one the registry gives for the artifact type | Pass | Register is IT Executive English for BC, PP and MIL, IT Professional English for SA, as the registry gives |
|
||||
| 5 | Domain terms are the PO terms of the domain's dictionary, with no synonyms | Pass | Only standard IT terms are used (Flask, route, decorator, test); the project has no `DICT` and no PO-specific term needs one |
|
||||
| 6 | Metadata keys, section headings, IDs and statuses are in English | Pass | Metadata keys, headings, IDs and statuses are English |
|
||||
| 7 | No translated twin (`<name>.<language>.md`) exists beside the document | Pass | No `.en.md`/`.da.md` twin exists beside the document |
|
||||
| 8 | A change of language or domain since the previous accepted version has a Version History row and was reviewed again | Pass | No change of language or domain; this is the first version |
|
||||
| 9 | A reviewer competent in the domain, and in the language, has confirmed that the domain terms are used correctly | Pass | AI as stand-in for S01 read the terms as correct IT usage; S01 accepted the plan in chat on 2026-11-06. Stand-in decision, not independent; open to challenge in the run summary |
|
||||
| 10 | Abbreviations are spelled out on first use, in the stated language | Pass | Abbreviations (BC, SA, MIL, GIF, HTML, PR) are spelled out or are standard IT abbreviations |
|
||||
|
||||
## Overall Verdict
|
||||
|
||||
Go — All criteria pass; no blocking finding.
|
||||
|
||||
## Action Items
|
||||
|
||||
| Action | Owner | Due |
|
||||
| --- | --- | --- |
|
||||
| None | S01 | 2026-11-06 |
|
||||
|
||||
---
|
||||
|
||||
[MIL-002]: ../../docs/milestones/mil-002-lecture-steps.md
|
||||
[QC-MIL-001]: ../../framework/qc/artifacts/qc-milestones-gateways.md
|
||||
@@ -0,0 +1,55 @@
|
||||
# RC-006 MIL-003 review
|
||||
|
||||
## Metadata
|
||||
| Key | Value |
|
||||
| ---
|
||||
|
||||
## Artifact Under Review
|
||||
|
||||
- Instance reviewed: [MIL-003]
|
||||
- Checklist used: [QC-MIL-001]
|
||||
- Scope: full review
|
||||
- Language and domain: en / it
|
||||
- Language reviewer: none, the reviewer reads English and knows the IT domain
|
||||
- Mode: autonomous, not independent (the reviewer is `AI as stand-in for S01`)
|
||||
|
||||
## Checklist Results
|
||||
|
||||
| # | Criterion | Status | Evidence/Notes |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | A concrete deliverable is defined for every gate | Pass | The Deliverable section names concrete output |
|
||||
| 2 | Explicit Go/No-Go criteria are stated for each gate | Pass | The Go / No-Go table has objectively checkable rows |
|
||||
| 3 | Dependencies on other milestones are explicitly mapped | Pass | The Dependencies table maps the predecessor, or the baseline for MIL-001 |
|
||||
| 4 | Each milestone is traceable to a Business Case objective or KPI | Pass | Traceability cites BC-001 Objectives 1, 2 and 4 |
|
||||
| 5 | Milestone owner and approving reviewer are identified | Pass | Owner and approving reviewer are S01 |
|
||||
| 6 | Milestone has a defined target date consistent with project constraints | Pass | Target date 2026-11-12 lies inside the Business Case duration (to 2026-11-16) |
|
||||
|
||||
## Language and Domain Results
|
||||
|
||||
| # | Criterion | Status | Evidence/Notes |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | The Metadata table has a `Language` row and a `Domain` row, and neither is a placeholder | Pass | Metadata has `Language | en` and `Domain | it`, no placeholder |
|
||||
| 2 | `Language` is a BCP 47 code and `Domain` is a value from the registry's domain list | Pass | `en` is BCP 47; `it` is in the registry domain list |
|
||||
| 3 | The content (prose and table cells) is written in the stated language | Pass | MIL-003 prose and table cells are in English |
|
||||
| 4 | The register matches the one the registry gives for the artifact type | Pass | Register is IT Executive English for BC, PP and MIL, IT Professional English for SA, as the registry gives |
|
||||
| 5 | Domain terms are the PO terms of the domain's dictionary, with no synonyms | Pass | Only standard IT terms are used (Flask, route, decorator, test); the project has no `DICT` and no PO-specific term needs one |
|
||||
| 6 | Metadata keys, section headings, IDs and statuses are in English | Pass | Metadata keys, headings, IDs and statuses are English |
|
||||
| 7 | No translated twin (`<name>.<language>.md`) exists beside the document | Pass | No `.en.md`/`.da.md` twin exists beside the document |
|
||||
| 8 | A change of language or domain since the previous accepted version has a Version History row and was reviewed again | Pass | No change of language or domain; this is the first version |
|
||||
| 9 | A reviewer competent in the domain, and in the language, has confirmed that the domain terms are used correctly | Pass | AI as stand-in for S01 read the terms as correct IT usage; S01 accepted the plan in chat on 2026-11-06. Stand-in decision, not independent; open to challenge in the run summary |
|
||||
| 10 | Abbreviations are spelled out on first use, in the stated language | Pass | Abbreviations (BC, SA, MIL, GIF, HTML, PR) are spelled out or are standard IT abbreviations |
|
||||
|
||||
## Overall Verdict
|
||||
|
||||
Go — All criteria pass; no blocking finding.
|
||||
|
||||
## Action Items
|
||||
|
||||
| Action | Owner | Due |
|
||||
| --- | --- | --- |
|
||||
| None | S01 | 2026-11-06 |
|
||||
|
||||
---
|
||||
|
||||
[MIL-003]: ../../docs/milestones/mil-003-higher-lower-game.md
|
||||
[QC-MIL-001]: ../../framework/qc/artifacts/qc-milestones-gateways.md
|
||||
@@ -0,0 +1,55 @@
|
||||
# RC-007 MIL-004 review
|
||||
|
||||
## Metadata
|
||||
| Key | Value |
|
||||
| ---
|
||||
|
||||
## Artifact Under Review
|
||||
|
||||
- Instance reviewed: [MIL-004]
|
||||
- Checklist used: [QC-MIL-001]
|
||||
- Scope: full review
|
||||
- Language and domain: en / it
|
||||
- Language reviewer: none, the reviewer reads English and knows the IT domain
|
||||
- Mode: autonomous, not independent (the reviewer is `AI as stand-in for S01`)
|
||||
|
||||
## Checklist Results
|
||||
|
||||
| # | Criterion | Status | Evidence/Notes |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | A concrete deliverable is defined for every gate | Pass | The Deliverable section names concrete output |
|
||||
| 2 | Explicit Go/No-Go criteria are stated for each gate | Pass | The Go / No-Go table has objectively checkable rows |
|
||||
| 3 | Dependencies on other milestones are explicitly mapped | Pass | The Dependencies table maps the predecessor, or the baseline for MIL-001 |
|
||||
| 4 | Each milestone is traceable to a Business Case objective or KPI | Pass | Traceability cites BC-001 Objectives 5 and 6 |
|
||||
| 5 | Milestone owner and approving reviewer are identified | Pass | Owner and approving reviewer are S01 |
|
||||
| 6 | Milestone has a defined target date consistent with project constraints | Pass | Target date 2026-11-16 lies inside the Business Case duration (to 2026-11-16) |
|
||||
|
||||
## Language and Domain Results
|
||||
|
||||
| # | Criterion | Status | Evidence/Notes |
|
||||
| --- | --- | --- | --- |
|
||||
| 1 | The Metadata table has a `Language` row and a `Domain` row, and neither is a placeholder | Pass | Metadata has `Language | en` and `Domain | it`, no placeholder |
|
||||
| 2 | `Language` is a BCP 47 code and `Domain` is a value from the registry's domain list | Pass | `en` is BCP 47; `it` is in the registry domain list |
|
||||
| 3 | The content (prose and table cells) is written in the stated language | Pass | MIL-004 prose and table cells are in English |
|
||||
| 4 | The register matches the one the registry gives for the artifact type | Pass | Register is IT Executive English for BC, PP and MIL, IT Professional English for SA, as the registry gives |
|
||||
| 5 | Domain terms are the PO terms of the domain's dictionary, with no synonyms | Pass | Only standard IT terms are used (Flask, route, decorator, test); the project has no `DICT` and no PO-specific term needs one |
|
||||
| 6 | Metadata keys, section headings, IDs and statuses are in English | Pass | Metadata keys, headings, IDs and statuses are English |
|
||||
| 7 | No translated twin (`<name>.<language>.md`) exists beside the document | Pass | No `.en.md`/`.da.md` twin exists beside the document |
|
||||
| 8 | A change of language or domain since the previous accepted version has a Version History row and was reviewed again | Pass | No change of language or domain; this is the first version |
|
||||
| 9 | A reviewer competent in the domain, and in the language, has confirmed that the domain terms are used correctly | Pass | AI as stand-in for S01 read the terms as correct IT usage; S01 accepted the plan in chat on 2026-11-06. Stand-in decision, not independent; open to challenge in the run summary |
|
||||
| 10 | Abbreviations are spelled out on first use, in the stated language | Pass | Abbreviations (BC, SA, MIL, GIF, HTML, PR) are spelled out or are standard IT abbreviations |
|
||||
|
||||
## Overall Verdict
|
||||
|
||||
Go — All criteria pass; no blocking finding.
|
||||
|
||||
## Action Items
|
||||
|
||||
| Action | Owner | Due |
|
||||
| --- | --- | --- |
|
||||
| None | S01 | 2026-11-06 |
|
||||
|
||||
---
|
||||
|
||||
[MIL-004]: ../../docs/milestones/mil-004-docs-screenshots-wiki.md
|
||||
[QC-MIL-001]: ../../framework/qc/artifacts/qc-milestones-gateways.md
|
||||
@@ -0,0 +1,81 @@
|
||||
# Stakeholder Analysis
|
||||
|
||||
## Metadata
|
||||
| Key | Value |
|
||||
| --- | --- |
|
||||
| ID | SA-001 |
|
||||
| CrossReference | [BC-001] |
|
||||
| Language | en |
|
||||
| Domain | it |
|
||||
|
||||
## Version History
|
||||
| Date | Status | Author | Reviewer | Change | Commit |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 2026-11-06 | Accepted | Jens Tirsvad Nielsen | AI as stand-in for S01 | Initial version | pending |
|
||||
|
||||
---
|
||||
## Purpose
|
||||
|
||||
This analysis names the people who care about the Higher or Lower project and what each needs, so later documents cite stakeholder IDs. It uses the power/interest grid.
|
||||
|
||||
## Stakeholder Summary Table
|
||||
|
||||
| ID | Name | Role/Title | Organization | Power Level | Interest Level | Quadrant | Primary Concern (Business Language) |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| S01 | Jens Tirsvad Nielsen | Course participant, Product Owner, developer and reviewer | Private | HIGH | HIGH | Manage Closely | Finish the assignment with professional quality |
|
||||
| S02 | Udemy coursists | Fellow course participants | Udemy course community | LOW | HIGH | Keep Informed | Readable, runnable code with the assignment's function names, and run instructions |
|
||||
| S03 | GitHub viewers | Repository visitors | Public | LOW | MEDIUM | Monitor | A clear description, topics and README, and no runtime dependencies beyond the need |
|
||||
|
||||
## Power/Interest Classification Rationale
|
||||
|
||||
- **Manage Closely (S01):** decides scope, writes and reviews everything.
|
||||
- **Keep Informed (S02):** cannot change the project but depends on its README and code to learn.
|
||||
- **Monitor (S03):** browses the repository; the only need is a clear first impression.
|
||||
|
||||
## Primary Concerns and FURPS+ Mapping
|
||||
|
||||
| Concern ID | Stakeholder | Concern | FURPS+ attribute |
|
||||
| --- | --- | --- | --- |
|
||||
| CN-001 | S01 | The game works as the assignment describes | Functionality |
|
||||
| CN-002 | S01 | Work is planned, reviewed and traceable per pull request | Supportability |
|
||||
| CN-003 | S02 | Code is readable and uses the assignment's function names | Usability |
|
||||
| CN-004 | S02 | The README explains how to run the app and the tests | Usability |
|
||||
| CN-005 | S02 | Each lecture step has a screenshot and an explanation in English, Danish and Bahasa Malaysia | Usability |
|
||||
| CN-006 | S03 | The repository has a description, topics and a clear README | Usability |
|
||||
| CN-007 | S03 | No runtime dependencies beyond Flask | Supportability |
|
||||
|
||||
## Communication Requirements
|
||||
|
||||
| ID | Channel | Frequency | Deliverable | Phase / Milestone |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| CM-001 | Chat with S01 | At plan acceptance and at the end of the run | Plan dry run, then run summary | All milestones |
|
||||
| CM-002 | Pull request | Once per milestone | Reviewed change set | Each milestone |
|
||||
| CM-003 | README and wiki | At release | Instructions, screenshots, explanations | Documentation milestone |
|
||||
|
||||
## Conflicting Interests and Mitigations
|
||||
|
||||
| Conflict | Stakeholders | Mitigation |
|
||||
| --- | --- | --- |
|
||||
| S01 wants a small solution; S02 and S03 want clear documentation in three languages | S01, S02, S03 | Keep the code small and put the explanation in the README and wiki |
|
||||
|
||||
## Traceability Analysis
|
||||
|
||||
### Business Goal Alignment
|
||||
|
||||
| Stakeholder | Concern | Business Case objective |
|
||||
| --- | --- | --- |
|
||||
| S01 | CN-001 | Objectives 1, 2 and 3 in [BC-001] |
|
||||
| S01 | CN-002 | Branch and pull request constraint in [BC-001] |
|
||||
| S02 | CN-003, CN-004 | Objectives 3, 4 and 5 in [BC-001] |
|
||||
| S02 | CN-005 | Objective 6 in [BC-001] |
|
||||
| S03 | CN-006, CN-007 | Objective 7 and success criterion 6 in [BC-001] |
|
||||
|
||||
## Sign-Off
|
||||
|
||||
| Stakeholder | Decision | Date |
|
||||
| --- | --- | --- |
|
||||
| S01 | Go (RC-002, AI as stand-in for S01) | 2026-11-06 |
|
||||
|
||||
---
|
||||
|
||||
[BC-001]: ./business-case.md
|
||||
Submodule
+1
Submodule framework added at be602df82f.
Reference in new issue
Block a user