Understanding Software as Deterministic: How Code Dictates Outcomes and the Nature of Bugs
Software development can often be seen as a deterministic process, one in which every event or result is preordained based on the input and the underlying code. When we write software, we are explicitly deciding what should happen when things go right, and equally importantly, what should happen when things