DEV Community


Discussion on: On Science and Software Development

kayess profile image
Kirit • Edited

Have you read about Karl Popper's notion of falsifiability? This is really the underpinning of modern science, and is the test of whether you're dealing with a science or a pseudo-science. A proper science is one that produces falsifiable predictions.

The key thing is that you should be able to falsify your hypothesis, in software this would be your diagnosis of what is wrong. The power here is that if you can falsify it then you have specific predictions that you can test to tell if you if it holds or not.

That is, you don't try things to verify your hypothesis, rather you think, "What's the quickest way of showing my hypothesis is wrong.". I find this a much sharper knife than going down the verification path.

Of course, if you can't think of anything that you can do that would show that your hypothesis is wrong, then all you have is a nice story, but it doesn't help you to actually understand and fix the underlying fault.

dwd profile image
Dave Cridland Author

This makes a vast amount of sense. I'm almost tempted to reedit the article to note this, but that seems almost cheating.

(Also, awesome to see you here! Can't wait for you to write some of your OO thoughts here)