Friend: Ok, got it. I used to think these are instincts.
Me: Well, you can hack it, i.e. ignore your conscience, but then you're corrupting your "code" and it affects your "program" behavior. And soon, you can't fix it anymore.
It's gone, unless you do major "refactoring".
Or a complete rewrite- which for humans is death and rebirth... and what does anyone know about death and beyond anyway?
In this life, you can only do refactoring, there's no rewrite.
Friend: Nice analogy. TDD!
Me: Well, TDD- Test-driven development is to ensure you are always following your conscience...But at the same time, allowing yourself the oppportunity to learn and the privilege to change your mind some day as you mature. TDD lets you easily incorporate lessons you learn as you grow and mature. It helps you change more easily than would be otherwise possible for you. It helps you easily figure out what we…