Zen Software Development

Software development involves following various levels of rules: rules for language syntax, rules for comprehensibility, rules for testability, scalability, essentially rules for every requirement or constraint.

When we engage in test-first development, it is as if we are writing the rules in a way that cannot be forgotten. When we write code, and the tests pass, proving that the requirements and constraints have been met, the code possesses elegance and beauty.

There is a tremendous and valuable freedom in being able to make large-scale changes in code without breaking any rules. We frequently find that rules are too strong. They have sufficient exceptions that they must be weakened.

We frequently find that rules are too weak. They allow undesirable effects to occur.

There is also satisfaction in understanding that the rules (tests) are written by us. We are free to change them if requirements change, but there is value in writing them nevertheless.

Tags: Philosophy, Technical

Updated at: 28 June 2010 5:06 PM