Quality cannot be tested in. Quality must be built in.
Software development is often seen as a process of : write software, then remove bugs. This often leads to fragile code, and an endless game of whack-a-bug. How about an alternative: design software that can't have bugs in the first place. In this 2-hour workshop, we'll explore principles and techniques for making it difficult to make mistakes, examine bugs that hid from trained engineers for months and what allowed them to occur, design a tic-tac-toe API that can't be used incorrectly, and learn why the power of software comes not from what it can do, but from what it can't do.