3. Quality software projects start with an observation of a need in the real world.
4. Savvy software development teams deliver features one at a time starting with the most useful.
5. Test-first isn’t just a methodology, it is a way of life.
6. What TDD Gives You <ul><li>A way of communicating what a class does and how it should be used. </li></ul><ul><ul><li>And it does this in code not comments. </li></ul></ul><ul><li>The confidence to experiment, to find a better way of doing something. </li></ul><ul><li>A benchmark. After a class is fully unit tested, its unit tests can serve as its regression tests. </li></ul>
7. In old school software development, an architect handed you an interface and said, “Go code an implementation of this.”
8. Now a senior developer can hand a junior developer a functional test and say, “This is what I need it to do, you figure out how.”
9. Internal quality is just as important, as external quality. Ambiguous APIs kill productivity.
10. Good developers never code in isolation. Even if they are working on a solo project.
11. Smoke tests should always, always, always be run before giving your code to someone else.
12. Web Resources <ul><li>http://geekswithblogs.net/rstackhouse/archive/2007/11/28/117174.aspx - Test Driving a Linked List </li></ul><ul><li>http://slideshare.net/rstackhouse </li></ul><ul><li>http://geekswithblogs.net/rstackhouse </li></ul><ul><li>www.jnd.org - Don Norman’s site </li></ul><ul><li>www.useit.com/alertbox – Jakob Nielsen’s site </li></ul>