The Human & Forensic Science of Software

A five-lecture series reading software engineering through anthropology, social science, anatomy and pathology, and the criminology of code.

Software Engineering as Practical Anthropology

A specification document is a fossil: it records what a domain expert managed to say out loud, on a particular day, to a particular analyst, using whatever vocabulary the two of them shared at the time. It is almost…

Software Engineering as Social Science

A codebase does not assemble itself. Every module boundary, every interface, every awkward integration layer is the fossil record of a decision made by a group of people, under a deadline, with a particular reporting…

Software Engineering as Systemic Anatomy & Pathology

Treat a running system as an organism rather than a diagram and a different set of questions becomes natural. Diagrams show structure; organisms have to stay alive — they regulate themselves, they have organs with…

The Criminology of Code, Part 2: Prevention & Profiling

Investigation reconstructs what already went wrong; criminology's other half asks what makes wrongdoing more or less likely in the first place, and what environmental design does to that likelihood before anyone has to…