Skip to content

Unit 3 — Requirements & specification

Weeks 9–11. (Draft — outcomes and vocabulary to follow.)

Units 1 and 2 assumed you already knew what to build. Every exercise handed you a target and asked what the change would cost. This unit removes that assumption and asks the prior question: where does the target come from, and what are you allowed to build?

That question has a cost-of-change answer too, and it's the most expensive one in the course. A design mistake is priced in refactoring. A requirements mistake is priced in everything downstream of it — you build the wrong thing correctly, and no amount of clean design saves you. So the unit starts with the decision that governs all the others: how much do you commit to up front?

Then it works outward through the constraints. What you're permitted to build is bounded before you write anything: by ethics, by licensing, by what the system must guarantee about the data it holds. Only once those are on the table does it become worth saying precisely what the thing does — precisely enough that someone else could check it.

Lectures

LectureWhat it answersRead before
Where requirements come fromHow much do you decide up front — and what does deciding early cost?Software Process · User Stories
Ethics & IPWho does this affect, and what are you permitted to build with?Ethics · Intellectual Property
Information securityWhat must the system guarantee, and to whom?Information Security
Specification & modelingHow do you say what it must do precisely enough to check?Specifications · Technical Representations
Specification is RightCan you tell a good specification from a plausible one?

Slides are posted on the schedule as we go.

The shape of the unit

Commit late, but commit. The waterfall-versus-agile argument is usually taught as a history lesson. It isn't one — it's a live disagreement about when a requirement stops being negotiable, and both answers cost something. Fixing requirements early makes them expensive to change; leaving them open makes everything downstream provisional. You'll be asked which cost you're buying.

Constraints are requirements you didn't choose. Ethics, licensing, and security aren't a compliance appendix bolted on at the end. They bound the solution space before design starts, which is exactly why they sit here rather than in a final-week wrap-up. A library you can't legally ship and a guarantee you can't actually make are both requirements failures, discovered late.

Precision is the deliverable. A specification isn't a longer description — it's a description someone can disagree with. The last two lectures are about getting to that, and then about telling the difference between a specification that constrains behaviour and one that merely sounds like it does.

Where this is going

You now know what to build and what bounds it. Unit 4 asks the last question left: what happens when it isn't just you building it.

Course reader licensed under CC BY-SA 3.0.