Plan the visible colours change (O6, SC8, MIL-003) #19
@@ -15,7 +15,7 @@ document of a type. `Primary File` may contain a glob (e.g.
|
|||||||
| SA | Stakeholder Analysis | docs/stakeholder-analysis.md | 002 |
|
| SA | Stakeholder Analysis | docs/stakeholder-analysis.md | 002 |
|
||||||
| PP | Project Plan | docs/project-plan.md | 002 |
|
| PP | Project Plan | docs/project-plan.md | 002 |
|
||||||
| MIL | Milestone / Gateway | docs/milestones/*.md | 003 |
|
| MIL | Milestone / Gateway | docs/milestones/*.md | 003 |
|
||||||
| RC | SQA Review Record | docs/sqa/reviews/rc-*.md | 007 |
|
| RC | SQA Review Record | docs/sqa/reviews/rc-*.md | 008 |
|
||||||
|
|
||||||
## Languages
|
## Languages
|
||||||
|
|
||||||
|
|||||||
+13
-3
@@ -11,7 +11,8 @@
|
|||||||
## Version History
|
## Version History
|
||||||
| Date | Status | Author | Reviewer | Change | Commit |
|
| Date | Status | Author | Reviewer | Change | Commit |
|
||||||
| --- | --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- | --- |
|
||||||
| 2026-10-07 | Accepted | Jens Tirsvad Nielsen | S01 | Initial version | [b823d1f] |
|
| 2026-10-07 | Deprecated | Jens Tirsvad Nielsen | S01 | Initial version | [b823d1f] |
|
||||||
|
| 2026-10-08 | Accepted | Jens Tirsvad Nielsen | S01 | Added objective O6 and criterion SC8 (every dot clearly visible), the contrast standard, and a risk | pending |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -35,6 +36,9 @@ proceed.
|
|||||||
- **Quality standards:** every quality criterion is tagged with an ISO/IEC
|
- **Quality standards:** every quality criterion is tagged with an ISO/IEC
|
||||||
25010:2023 characteristic. The code is reviewed against `qc-programming-python`
|
25010:2023 characteristic. The code is reviewed against `qc-programming-python`
|
||||||
before the pull request.
|
before the pull request.
|
||||||
|
- **Contrast:** the contrast ratio of the Web Content Accessibility Guidelines
|
||||||
|
(WCAG) 2.x, computed from relative luminance: 1.0 for a colour identical to
|
||||||
|
white and 21.0 for black.
|
||||||
- **Source requirements:** the course lecture "The Hirst Painting Project
|
- **Source requirements:** the course lecture "The Hirst Painting Project
|
||||||
Part 2 - Drawing the Dots" (a written summary of the lecture is the only
|
Part 2 - Drawing the Dots" (a written summary of the lecture is the only
|
||||||
source supplied; the reference image is not).
|
source supplied; the reference image is not).
|
||||||
@@ -46,6 +50,8 @@ Without one, the loops, the `turtle` positioning logic and the colour handling
|
|||||||
taught in the lecture stay theory. The lecture itself names the usual
|
taught in the lecture stay theory. The lecture itself names the usual
|
||||||
failures: a visible trail between dots, a missing last dot, white shades in
|
failures: a visible trail between dots, a missing last dot, white shades in
|
||||||
the palette that make dots invisible, and a slow, visibly drawing turtle.
|
the palette that make dots invisible, and a slow, visibly drawing turtle.
|
||||||
|
Drawing the first painting from a photograph showed one more: faint colours
|
||||||
|
that pass the white-shade rule but still hardly show on the white background.
|
||||||
|
|
||||||
## Business Opportunity
|
## Business Opportunity
|
||||||
|
|
||||||
@@ -63,6 +69,7 @@ so the effort the framework adds can be judged against the size of the work.
|
|||||||
| O3 | Colour every dot by a random choice from that palette. |
|
| O3 | Colour every dot by a random choice from that palette. |
|
||||||
| O4 | Keep the finished painting on screen until the user clicks, and present it cleanly: turtle hidden, no trail between dots. |
|
| O4 | Keep the finished painting on screen until the user clicks, and present it cleanly: turtle hidden, no trail between dots. |
|
||||||
| O5 | Deliver the work through the framework: plan and issues first, then code reviewed against `qc-programming-python` (`RC-*` verdict `Go`) before the pull request. |
|
| O5 | Deliver the work through the framework: plan and issues first, then code reviewed against `qc-programming-python` (`RC-*` verdict `Go`) before the pull request. |
|
||||||
|
| O6 | Keep every dot clearly visible on the white background: drop palette colours whose contrast with white is below 2.0. |
|
||||||
|
|
||||||
## Scope
|
## Scope
|
||||||
|
|
||||||
@@ -70,6 +77,7 @@ so the effort the framework adds can be judged against the size of the work.
|
|||||||
|
|
||||||
- One Python program using the standard `turtle` module, the `random` module and the `colorgram` library.
|
- One Python program using the standard `turtle` module, the `random` module and the `colorgram` library.
|
||||||
- Extraction of the palette from one reference image, with white shades removed.
|
- Extraction of the palette from one reference image, with white shades removed.
|
||||||
|
- Removal of faint colours from the palette: colours whose contrast with white is below 2.0.
|
||||||
- Drawing of the 10 by 10 dot grid: dot size, spacing, row change and heading handling.
|
- Drawing of the 10 by 10 dot grid: dot size, spacing, row change and heading handling.
|
||||||
- Screen handling: `exitonclick`, hiding the turtle, pen up between dots, drawing speed.
|
- Screen handling: `exitonclick`, hiding the turtle, pen up between dots, drawing speed.
|
||||||
- The framework documents the plan-first workflow requires for this work (Business Case, Stakeholder Analysis, Project Plan, milestones), and the review records for them and for the code.
|
- The framework documents the plan-first workflow requires for this work (Business Case, Stakeholder Analysis, Project Plan, milestones), and the review records for them and for the code.
|
||||||
@@ -86,7 +94,7 @@ so the effort the framework adds can be judged against the size of the work.
|
|||||||
|
|
||||||
### Tangible Benefits
|
### Tangible Benefits
|
||||||
|
|
||||||
- A working program that produces the painting described in O1 to O4.
|
- A working program that produces the painting described in O1 to O4, with every dot clearly visible (O6).
|
||||||
- A reviewed codebase with a recorded review (`RC-*`) against the Python checklist.
|
- A reviewed codebase with a recorded review (`RC-*`) against the Python checklist.
|
||||||
- A traceable record from objective to milestone to issue to code.
|
- A traceable record from objective to milestone to issue to code.
|
||||||
|
|
||||||
@@ -112,6 +120,7 @@ framework that the repository is built on.
|
|||||||
| SC5 | Clean result (O4) | Turtle hidden at the end; no line drawn between dots; window stays open until a click | Visual check of one full run |
|
| SC5 | Clean result (O4) | Turtle hidden at the end; no line drawn between dots; window stays open until a click | Visual check of one full run |
|
||||||
| SC6 | Run time (O4) | The full painting is drawn in 30 seconds or less | Timed run on the developer machine (value confirmed by S01) |
|
| SC6 | Run time (O4) | The full painting is drawn in 30 seconds or less | Timed run on the developer machine (value confirmed by S01) |
|
||||||
| SC7 | Review gate (O5) | `RC-*` for the code has verdict `Go`; the pull request closes every issue it completes | Review record and pull request description |
|
| SC7 | Review gate (O5) | `RC-*` for the code has verdict `Go`; the pull request closes every issue it completes | Review record and pull request description |
|
||||||
|
| SC8 | Visible colours (O6) | 0 palette colours with a contrast ratio against white below 2.0; SC3 still holds for the final palette (at least 2 colours) | Print of the extracted palette with the contrast of every colour, checked against the limit (value chosen by S01) |
|
||||||
|
|
||||||
## Risks
|
## Risks
|
||||||
|
|
||||||
@@ -121,6 +130,7 @@ framework that the repository is built on.
|
|||||||
| `colorgram` or the `turtle` graphical toolkit (Tk) cannot be installed or does not run on the developer machine | The program cannot be run or checked | Check both in the first task of the palette phase, before any other work depends on them |
|
| `colorgram` or the `turtle` graphical toolkit (Tk) cannot be installed or does not run on the developer machine | The program cannot be run or checked | Check both in the first task of the palette phase, before any other work depends on them |
|
||||||
| White or near-white shades stay in the palette | Dots are invisible on the white background, so SC1 looks failed | SC3 sets an explicit threshold and is checked on the printed palette |
|
| White or near-white shades stay in the palette | Dots are invisible on the white background, so SC1 looks failed | SC3 sets an explicit threshold and is checked on the printed palette |
|
||||||
| Off-by-one errors: last dot of a row or the last row missing, or a trail drawn | SC1 or SC5 fails | SC1 counts the dots and SC5 checks for a trail; both are verified in the code review |
|
| Off-by-one errors: last dot of a row or the last row missing, or a trail drawn | SC1 or SC5 fails | SC1 counts the dots and SC5 checks for a trail; both are verified in the code review |
|
||||||
|
| The contrast cut-off removes too many colours | The painting looks dull | The limit of 2.0 sits in a gap in the palette of the reference image: 8 of its 30 colours fall below it, and the palest colour kept has a contrast of 2.56, so 22 remain. SC3 still requires at least 2, and S01 judges the picture in the timed run |
|
||||||
| Framework process outweighs the size of the work | Schedule slips and the exercise stops being a small one | Keep to two phases and plain tasks; no use cases or design artifacts (see Out of Scope) |
|
| Framework process outweighs the size of the work | Schedule slips and the exercise stops being a small one | Keep to two phases and plain tasks; no use cases or design artifacts (see Out of Scope) |
|
||||||
| The only named reviewer is also the author | Reviews are not independent, as the review process requires | S01 accepted a documented self-review on 2026-10-07; each review record states it |
|
| The only named reviewer is also the author | Reviews are not independent, as the review process requires | S01 accepted a documented self-review on 2026-10-07; each review record states it |
|
||||||
|
|
||||||
@@ -158,7 +168,7 @@ Roles, power and interest are in [SA-001]; they are not repeated here.
|
|||||||
|
|
||||||
| Stakeholder ID (SA) | Interest in this project |
|
| Stakeholder ID (SA) | Interest in this project |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| S01 | Owner of all objectives (O1 to O5); accepts the work and answers the open questions above |
|
| S01 | Owner of all objectives (O1 to O6); accepts the work and answers the open questions above |
|
||||||
|
|
||||||
## Recommendation
|
## Recommendation
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,68 @@
|
|||||||
|
# Review Record: Business Case BC-001, objective O6 (delta)
|
||||||
|
|
||||||
|
## Metadata
|
||||||
|
| Key | Value |
|
||||||
|
| --- | --- |
|
||||||
|
| ID | RC-007 |
|
||||||
|
| CrossReference | [BC-001], [RC-001], [SA-001], [QC-BC-001], [QC-LANG-001] |
|
||||||
|
|
||||||
|
## Version History
|
||||||
|
| Date | Status | Author | Reviewer | Change | Commit |
|
||||||
|
| --- | --- | --- | --- | --- | --- |
|
||||||
|
| 2026-10-08 | Accepted | Jens Tirsvad Nielsen | S01 | Initial version (draft prepared by the assistant for S01 to confirm)<br>Terms confirmed by S01, verdict `Go` | pending |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Artifact Under Review
|
||||||
|
|
||||||
|
- Instance reviewed: [BC-001], the revision of 2026-10-08 (second row of its Version History)
|
||||||
|
- Checklist used: [QC-BC-001], together with [QC-LANG-001] because the Business Case is written in the PO language
|
||||||
|
- Scope: delta re-review of criteria 2, 3, 4, 5 and 6 of [QC-BC-001] and criteria 3, 4, 5, 9 and 10 of [QC-LANG-001]. Reason: the revision adds objective O6, success criterion SC8, a scope item, a risk row, the contrast standard (WCAG) and a sentence in the Problem Statement, and it changes the Stakeholders row from "O1 to O5" to "O1 to O6". Earlier record: [RC-001], which passed every criterion on the first version. The other criteria are untouched by the revision and keep their earlier result: [QC-BC-001] 1 (cost-benefit), 7 (assumptions and constraints) and 8 (recommendation), and [QC-LANG-001] 1, 2, 6, 7 and 8 (metadata, headings, no translated twin, no change of language)
|
||||||
|
- Language and domain: en / it (the artifact's Metadata rows)
|
||||||
|
- Language reviewer: none. S01 reads English and knows the IT domain. S01 is also the author; S01 accepted a documented self-review on 2026-10-07 (see [RC-001], Action Item 1)
|
||||||
|
|
||||||
|
**Status of this record:** final. The assistant read the revised Business
|
||||||
|
Case against the criteria above; S01 confirmed the open point on 2026-10-08
|
||||||
|
and the verdict is `Go`.
|
||||||
|
|
||||||
|
**Stakeholder Analysis:** [SA-001] is not revised. S01's concern "The result looks clean and the window stays open until a click" (Usability) already covers O6, and every concern still traces to an objective, so its own checklist result is unchanged.
|
||||||
|
|
||||||
|
**Evidence for SC8 and the risk row:** the palette of the reference image was measured on 2026-10-08 with the WCAG contrast ratio against white. The 30 colours range from 1.22 to 15.85; the eight palest lie between 1.22 and 1.96, the next colour is at 2.56, so a limit of 2.0 removes 8 and keeps 22. The limit was chosen by S01 on 2026-10-08.
|
||||||
|
|
||||||
|
## Checklist Results
|
||||||
|
|
||||||
|
| # | Criterion | Status | Evidence/Notes |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| 2 | Risks are identified with documented impact and mitigation | Pass | The Risks table now has 7 rows; the new row (the contrast cut-off removes too many colours) has the impact "The painting looks dull" and a mitigation with figures from the measurement above |
|
||||||
|
| 3 | Success criteria are measurable, stating explicit targets rather than vague aspirations | Pass | SC8 states a target (0 palette colours with a contrast ratio against white below 2.0) and a measure (the printed palette with the contrast of every colour). It is consistent with SC3, which still holds for the final palette |
|
||||||
|
| 4 | Scope explicitly separates In Scope vs Out of Scope | Pass | The new In Scope item names the faint-colour removal and its limit; Out of Scope is unchanged and still distinct (no other parameters, no interface, no packaging) |
|
||||||
|
| 5 | Stakeholders are cross-referenced to Stakeholder Analysis IDs rather than re-described inline | Pass | The Stakeholders table still cites S01 only, now for "O1 to O6"; the new text refers to S01 by ID |
|
||||||
|
| 6 | Methodology and quality-standard foundation are stated explicitly (e.g. ISO/IEC 25010, Larman) | Pass | The Methodological and Standards Foundation gains a "Contrast" bullet naming the WCAG 2.x contrast ratio computed from relative luminance, with its two reference values (1.0 for white, 21.0 for black) |
|
||||||
|
|
||||||
|
## Language and Domain Results
|
||||||
|
|
||||||
|
| # | Criterion | Status | Evidence/Notes |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| 3 | The content (prose and table cells) is written in the stated language | Pass | The new prose and table cells are English |
|
||||||
|
| 4 | The register matches the one the registry gives for the artifact type | Pass | Registry gives IT Executive English for BC. The new objective, criterion and risk state decisions and targets; the technical definition (relative luminance) is confined to the standards bullet where a standard belongs |
|
||||||
|
| 5 | Domain terms are the PO terms of the domain's dictionary, with no synonyms | Pass | S01 confirmed on 2026-10-07 that no dictionary is needed. The new term *faint colour* is used in every new place (Problem Statement, In Scope, Risks) and is defined by SC8 as a contrast below 2.0; *white shade* keeps its meaning from SC3 |
|
||||||
|
| 9 | A reviewer competent in the domain, and in the language, has confirmed that the domain terms are used correctly | Pass | S01 confirmed on 2026-10-08 that the new terms *faint colour* and *contrast ratio* are used correctly (Action Item 1). S01 is also the author; the self-review was accepted on 2026-10-07 |
|
||||||
|
| 10 | Abbreviations are spelled out on first use, in the stated language | Pass | WCAG is spelled out at its first use ("Web Content Accessibility Guidelines (WCAG) 2.x"); O6 and SC8 are defined by their tables |
|
||||||
|
|
||||||
|
## Overall Verdict
|
||||||
|
|
||||||
|
Go — every criterion in the delta passes. S01 confirmed on 2026-10-08 that the new terms *faint colour* and *contrast ratio* are used correctly, so [QC-LANG-001] criterion 9 is closed and the action item is closed. The revision of [BC-001] can be `Accepted`, after which the new phase can be planned against O6 and SC8.
|
||||||
|
|
||||||
|
## Action Items
|
||||||
|
|
||||||
|
| # | Action | Owner | Due |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| 1 | Confirm that the new terms *faint colour* and *contrast ratio* are used correctly (QC-LANG-001 criterion 9). **Closed 2026-10-08:** S01 confirmed both terms | S01 | 2026-10-09 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[BC-001]: ../../business-case.md
|
||||||
|
[RC-001]: ./rc-001-business-case.md
|
||||||
|
[SA-001]: ../../stakeholder-analysis.md
|
||||||
|
[QC-BC-001]: ../../../framework/qc/qc-business-case.md
|
||||||
|
[QC-LANG-001]: ../../../framework/qc/qc-language-domain.md
|
||||||
Reference in New Issue
Block a user