Aim Small, Miss Small: Writing Correct Programs - stuarthalloway/presentations GitHub Wiki
Resources
- Slides from May 2018
Abstract
We have tons of tools and practices to help us write correct programs, including:
- red squiggly underlines
- type systems
- automated tests
- proofs
- generative testing
- stacktraces
- frameworks
- agile methods
- test-driven development
- logging
- humane error messages
- step debuggers
- simulation
Net result so far: We invest a lot of time and money, and our programs are still full of bugs.
I don't have a silver bullet to offer, nor do I plan to denigrate any of the ideas listed above. But I will say this: I regularly watch programmers aim too large and miss by miles.
To aim small is to:
- plan ahead and catch misconceptions early before they ramify
- make small things, at every level
and then plan to miss anyway:
- expect failures and make them more evident
- divide and conquer when things go wrong
This talk will show you how.