Presentation: The Ethics of Error Prevention
No one wants programming errors. We have many tools to detect and correct errors in code. We also have a number of techniques we can use to prevent the introduction of errors. In this presentation, Michael Feathers looks at error prevention while posing a number of interesting questions.
Watch: The Ethics of Error Prevention (56 min.)
Michael starts his presentation noting that we are very aware of the need for error prevention and most of us are aware of several techniques to achieve this goal. But do we practice these techniques, and if so how many of them, and why or why not? If we fail to practice these techniques are we less than professional? Are we unethical practitioners?
Five "Good Ideas" are introduced and discussed:
- Design by Contract
- Clean Room Engineering
- Test Driven Development
- Pair Programming / Software Inspection
Each idea is examined and the manner in which it helps prevent errors is explored. He also discusses the advantages and disadvantages of each idea. For example: an advantage of contracts and test driven techniques is automation, an advantage not shared by software inspections.
In the last part of his talk, Michael suggests that all of these ideas share a common purpose - to make us reflect on our code, to actually think about what it does and why. Not only does this reflection help prevent errors, it also motivates us to write better code - code that is simpler, easier to read, properly refactored, and better designed.