Shape: project
One project, from a problem to its result, written as a tree of six topics. Its first reader is the person who does the work, its second is whoever resumes it later. The root holds the project and lists its parts; each part is a topic of its own.
Shape: topic, as every part here. A project root announces this shape the same way, on a line labelled Shape:.
When to use it
- Before a job that takes more than one sitting, or that someone else may resume.
- When the result will be judged against something, so a baseline is worth naming.
- Not for the document the project produces: a report, a design or a talk keeps the shape of its genre.
- Not for one choice made along the way: that is a decision record.
The skeleton
<folder of the project>/
README.md the root: title, summary, Shape line, Contents table of the six parts, See also
problem.md the problem in one sentence, and what the field calls it
scope.md what is in, what is out, and why
review.md the review's first four steps: frame, literature review, state of the art, position
baseline.md step five, the exit test: the baseline named, and how the result is compared
plan.md the steps, what is decided first, what is left to the person
trail.md what was asked, found, produced, and where it livesEvery file opens as a topic does: one title, then a summary, then the body, and a Shape: line linking the topic shape. The root's Shape line links this shape.
The parts
| Part | Holds | Why this part | Grade |
|---|---|---|---|
| problem | a line labelled Problem:, one sentence |
the design science process starts at problem identification (Peffers 2006) | supported with caveat, as a process model; the one-sentence form is a convention |
| scope | a table: in, out, and a Why column | the objectives of a solution come before design (Peffers 2006) | convention, untested |
| review | the headings Frame, Literature review, State of the art, Position | the maintainer's practice, written down for the review; no step is measured | convention, untested |
| baseline | a line labelled Named baseline: and one labelled Compared by: |
the review is finished when it can name the baseline (baseline) | convention, untested |
| plan | the headings Steps, Decided first, For the person to decide | the person's decisions are settled before the work, so they cost no round trip | convention, untested |
| trail | a table with the rows Asked, Found, Produced, Where it lives | an overview file, a folder per project and a dated log (Noble 2009; Wilson 2017) | convention, adopted by guides; resumption untested |
No source isolates a written scope or a named baseline and measures rework (the review's finding; the grades are defined in the position). The shape is a convention to test, not a result.
The rules
A repository that holds several projects in this shape adds their skeleton files, such as 0*/problem.md, to [duplication] exempt in checks/config.toml, because the skeleton is one shape, not one fact copied.
Where it stops
The shape ends where the genres begin. The plan may name the document the project will produce and link the shape of its genre; it does not restate it. A software design and its decision records are the business of reader-ergonomics-software-design.
A filled example
The first job of this repository, written in the shape: the literature review that produced the repository's evidence.
The check
checks/local/project_shape.py reads every file that declares this shape, and runs on the parts [project_shape] parts names in checks/config.toml:
| Rule | Kind |
|---|---|
| the six parts exist beside the root, and the root links each | error |
each part announces the topic shape on a Shape: line |
error |
problem: a line labelled Problem: |
error |
| problem: more than one sentence | warning |
scope: a table with an in row, an out row and a Why column |
error |
| review: the four step headings | error |
baseline: a Named baseline: line that is not empty or a placeholder |
error |
baseline: no Compared by: line |
warning |
| plan: the three headings | error |
| trail: the four rows | error |
What a run with no error guarantees: a project that declares the shape has every part, and its review names a baseline. It does not guarantee that the baseline is the right one, that the comparison was run, or that a part says anything true; those are judgment. A skeleton inside fenced code, as above, declares nothing.
See also
The front page; the baseline of the review; the topic shape.