Logo

Newwz.Space

check out different kinds of news here.

Adam Ard on Substack

The Uncertainty Principle of Software

Adam Ard on Substack

My Dad, a software developer in his younger years, liked to tell me his version of the Heisenberg Uncertainty Principle, except his applied to software development: If you know what's in it, you don't know when it'll ship. If you know when it'll ship, you don't know what's in it. As a programmer myself, I haven't found many exceptions to this rule. Whether you ship once a day or once a year, there is too much uncertainty in building software to make good predictions about when things will be done. Yet most existing software processes ignore this rule and resort to constraining feature sets and delivery dates (ex. sprints) — which creates dysfunction. What if we took this rule seriously and built a process around it? Instead of wishing it wasn't true? What would that process look like?