Agile Software Construction

If anyone reading this does not believe that it is good to do unit tests before releasing it to your colleagues for integrating into the current build, please put this book down and pick up a first year undergraduate text on software development and start there instead!
You may well wonder why I have just put that sentence here, well, at least one project I know used the "if I compile then you can release it into the current build" rule as sufficient evidence of testing with obvious and predictably disastrous results. So, unit testing all code before releasing it, is not a universal truth!
However, it should be! When you have written some code that is to be used by the rest of the project, you should be sure that it works. Making these unit tests part of what you release into the central source code repository of your project also means that if anything changes anyone can re-run your unit tests and check that your code still works (even if you are not around). Again, this may seem self-evident but the inclusion of unit test code within your version control system is a trick that all too often seems to be overlooked.
At this point, hopefully, we are all agreed that when you write code you should also write the unit tests that go with it to verify that code. The next step towards test first coding is therefore not a huge one. That is,...