I get it, in principle, but in every project I've been in, actually nailing down the business logic itself is the tricky part, more than coding it up. It usually goes like this.<p>"I want it to work like A."
<i>code it up, find twenty edge case potentials</i>
"Well, 3, 5, 6, and 7 can be solved like this, let's guard to make sure 1, 3, 8, 9 never happen, 10-13 can never happen, and let me get back to you on the rest."
<i>code it up, notice a few more edge cases.</i>
Lather, rinse, repeat.<p>Along the way, one of the edge cases will show me that what they really want is B, and time and budget let me know if we start down that path.