"At first, a theory better explains an event in the world, but then, as more details are calculated with it, it breaks because it can't account for some events or predicts results that are different from observed values. Eventually, as more and more 'defects' are found with an existing theory, these defects give rise to a crisis that is only resolved by a new theory which explains and accounts for the observed phenomena. Software development does not escape this historical evolution."
- Agile Software Development with Scrum, Ken Schwaber.