DEV Community

Discussion on: An Iterative Lifestyle

Collapse
 
sshine profile image
Simon Shine

This is a very interesting frame of thought. I would like to add:

Just like "Writing code to pass the test", we could say that the step before is "Writing test to fail the code", since TDD (under some interpretation) prescribes that we specify future behavior via tests.

"Failing forward" describes what I have experienced lately in my spare-time project doing pair programming. We celebrate when we have made the program fail in a new way. Overcoming one problem often does not mean a final goal has been reached. The intermediate steps can often be characterised by having fixed a part, to reveal the next broken part.

Not all errors are happy errors, of course. But there is a special feeling of "We have made it not fail for the obvious reason we have been aware of, and now it fails for reasons we do not yet know." Going from known problems to unknown problems means progress. This is particularly easier to acknowledge when you are not sitting alone with a problem. ;-)