One of the tenets of eXtreme Programming is that a series of test cases must be used to drive development. Hence the acronym TDD; Test Driven Development . These test cases not only act to guarantee reliability of the working system into the future but also as specifications for its expected behaviour before any application code is written.
One of the mantras of the eXtreme Programmer is: "Never write a line of code unless you have a failing test".
Programming in the Debugger
Using TDD in Smalltalk we can take advantage of the ability to program application classes directly from within the debugger. The tests are coded first and then run. As each test fails (at first because the code does not exist), control passes to the Smalltalk debugger and the missing methods can be coded directly in that window. Then execution is resumed until a subsequent test fails and the process is repeated until all the tests pass.
This way of working is not appreciated by all developers (some say it is akin to "hacking"). We like it. It is FAST and the act of coding within the debugger is aided by the increased amount of context available from the surrounding live objects. Any "hack-like" side effects can normally be resolved by constant refactoring (which is something we do continually anyway).
New Releases
In general, during periods of active development we create a new build of the Trading Machine Workbench and the ALCHEMeTRICS.org trading strategies at the start of each day. All the test cases are run and, if they pass, we transfer the new build to the live trading computers before market open. A new system will only be released if all tests pass.