Because of the Non-disclosure agreement required to attend the WardCunningham talk at Vulcan some conscientious members of SeaPig did not attend. BrianDorsey set up a DinnerWithWard in a tatami room of a Japanese restaurant in the international district.
In the spirit of open source, we started the session with a Disclosure Agreement. We agreed that anything shared could be used by anyone there.
I took a few notes of some memorable statements, I'll add them later.
One of the most memorable things he said was about Test First and Continous Integration, that the measure you should make when Refactoring is the duration that the code is broken.
When you first start to refactor a module, you will destroy a chunk of working code so that the code test will go red. Work as fast as you can to get the test back to green. In his classes he keeps track of the red, broken, down time (what expression did he use?) and gives an award to the group/pair that had the lowest average or maximum red time. In the classes the winning red time is on the order of 2 minutes! The important point is how long do you want to leave the code red? Do you want to go home at the end of the day with broken code? One lesson learned in the classes is the winner of the lowest red time award did the smallest changes possible, and did lots of these changes. Is this what you want to do, the simplest thing that works? This idea really grabbed me because I know in our ICAD applications, when adding new functionality they will be broken for weeks (maybe months), part of the reason is that we take so long to solve all the problems we created while the code was broken, being worked on, and not being able to test it.
-- JeffSandys
Everyone else who attended, please add your comments to share with Steve and the world.