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:
- Abstraction
- 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.
Community comments
Dowloadable version?
by Brad Bruce /
Re: Dowloadable version?
by Dmitry Tsygankov /
Dowloadable version?
by Brad Bruce /
Your message is awaiting moderation. Thank you for participating in the discussion.
Is there a downloadable version of this presentation? My company doesn't allow streaming video. I have a team of about 10 developers who SO need to watch this!!!
Re: Dowloadable version?
by Dmitry Tsygankov /
Your message is awaiting moderation. Thank you for participating in the discussion.
Not sure if it's legal, but you can:
- at home
- with Firefox
- and DownloadHelper extension
- click Play once, so that DownloadHelper can see the video (DownloadHelper doesn't seem to support infoq.com directly)
- then download it with DownloadHelper