1. Abstraction: Use of object oriented languages and higher end languages.
2. Design by contract: document precondition and post-conditions. The clients of the routine are obligated to fulfill them.
3. Clean room engineering: discipline of annotating code that proves to yourself that the code you are writing is correct.
4. Test driven development: write a test for a new capability, compile, fix compile error, run test and see it fail, write code, run the test and see it pass, refactor as needed, repeat.
5. Pair programming/software inspections: Fagan inspection: planning, overview, preparation, meeting, rework (looping back to planning), follow-up
Michael wraps up by mentioning that each of these techniques forces us to focus on what we are doing and steers us away from complication. They each trigger contemplation. The craft of software development is not about languages or tools. It is about practices. Quality is in the intangibles.
This presentation is available on InfoQ at http://www.infoq.com/presentations/error-prevention-ethics