Chapter 25 — Team project studio
Lesson map
Lesson 25 published. Map, example, EX073.
flowchart TD
N0["Learning outcomes"]
N1["25.1 The brief"]
N2["25.2 Roles"]
N3["25.3 Planning"]
N4["25.4 Scope"]
N5["25.5 Quality"]
N6["25.6 Ethics in the studio"]
N7["25.7 Presentation"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
N7 --> EX["Worked example"]
EX --> Q["Exercise EX073"]
Logical drawing
flowchart LR
N0["Learning outcomes"]
N1["25.1 The brief"]
N2["25.2 Roles"]
N3["25.3 Planning"]
N4["25.4 Scope"]
N5["25.5 Quality"]
N6["25.6 Ethics in the studio"]
N7["25.7 Presentation"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX073"]
[Learning outcomes]
|
v
[25.1 The brief]
|
v
[25.2 Roles]
|
v
[25.3 Planning]
|
v
[25.4 Scope]
|
v
[25.5 Quality]
|
v
[25.6 Ethics in the studio]
|
v
[25.7 Presentation]
|
v
[Worked example] --> [Exercise EX073]
Learning outcomes
You will (1) plan and deliver a small CTI tool or process as a team; (2) divide roles and review each other's work; (3) manage scope and deadlines; (4) present results to a client.
25.1 The brief
Teams of three build a "lookalike watch" for a fictional client council: generate candidate names, check them against a provided synthetic certificate-log extract, triage matches and produce a weekly report template.
The brief mirrors CMS's own needs: lookalikes of a council's names are what the certificate-transparency watch in chapter 19 looks for. Using a provided synthetic extract keeps the work offline and repeatable. The report template is part of the deliverable because a watch that produces matches nobody can read is not finished.
25.2 Roles
One student owns the generator, one the matcher, one triage and reporting. Each reviews another's work. Roles rotate at mid-point so everyone learns all parts.
Owning one part gives each student responsibility for a working component, and reviewing another's part catches mistakes the owner overlooks, as the worked example below shows. Rotating at mid-point means each student understands every stage by the end, which matters when one is absent or the team presents to the panel. Reviews are recorded on the board, so the tutor can credit reviewing work alongside building it.
25.3 Planning
A simple board with to-do, doing and done columns. Weekly stand-ups: what I did, what I will do, what blocks me.
The board shows at a glance what each student is doing and what is waiting. The third stand-up question, what blocks me, matters most: a matcher waiting for the generator's output format can say so immediately rather than discovering the problem a week later. Stand-ups stay short because each answer is one or two sentences. The board also holds the client's mid-project request, so the scope decision is visible to the whole team.
25.4 Scope
The client asks midway for SMS-scam monitoring. The team records it, estimates effort and agrees with the tutor to note it as future work.
Recording the request and estimating it shows the client that it was heard, while agreeing it as future work protects the lookalike watch from being left half-built. Adding SMS monitoring would have needed new data and different methods. Writing it into the report also gives a later team a clear starting point. The estimate stays in the project record, which shows the tutor that the team made the scope decision deliberately.
25.5 Quality
Each component has tests on synthetic inputs. The final report includes a table of planted lookalikes found and missed.
Planted lookalikes give a known answer, so the team can count what the system found and missed. The report's table makes misses visible rather than hiding them behind a list of successes. In the worked example, a reviewer's planted case revealed that names replacing o with 0 were missed until a rule was added. Tests run each time a component changes, so a fix to the generator cannot silently break the matcher.
25.6 Ethics in the studio
All data is synthetic. The team must not run the generator against live certificate services during the studio unless the tutor approves and terms allow.
Live certificate services are public, but running a new generator against them repeatedly could breach their terms or produce real names that the team then has no authority to act on. Keeping to synthetic data means every name in the studio is invented, and results can be shared within the class without risk. The team's notes record this rule at the start, together with the name of the tutor who could approve an exception.
25.7 Presentation
Ten minutes to the client panel: problem, demo on synthetic data, results, limits, next steps.
Ten minutes forces the team to choose what matters to the client: whether the watch finds lookalikes and how much noise it produces. The demonstration uses the same synthetic extract, so the panel sees real output. Limits and next steps, including the SMS request, show the panel what the watch does not yet do. The team rehearses the presentation once with the tutor, so timing problems are found before the panel.
Handling disagreement
Teams disagree about design. Agree a rule early: the component owner decides after hearing the reviewer, and unresolved issues go to the tutor with both views written down. Disagreement handled openly improves the design; disagreement left unspoken delays it.
Worked example
Lena's team finds their generator misses names that replace "o" with "0". The reviewer catches it with a planted test case. They add the rule; the next run finds all twelve planted lookalikes and flags three harmless names, which triage dismisses.
Synthetic case. The client and data are invented teaching material.
Errors and limits
Team projects reward visible work; make sure reviewing and testing are credited too.
Exercises
- EX073 — Role rotation. Why rotate roles at mid-point? Rubric: 3 = everyone learns all parts; reduces dependency; 2 = partial; 1 = no reason; 0 = none.
- EX074 — SMS request. How was the client's mid-project SMS request handled? Rubric: 3 = recorded, estimated, agreed as future work; 2 = partial; 1 = added immediately; 0 = none.
- EX075 — Planted cases. How did planted test cases improve the generator? Rubric: 3 = revealed missing 0-for-o rule; after fix all 12 found; 2 = partial; 1 = vague; 0 = none.
Synthesis
Plan with clear roles, review each other, control scope, test with planted cases and present honestly.
Continue studying — chapter 25 of 30
← Chapter 24 (draft) · Course chapter index · Chapter 26 (draft) →