Avoiding over-engineering
because I don't want to write a code which is hard to test.
because I'm confident to refactor.
End to end tests
Integration tests
Unit tests
...
Solitary unit test
Integration
Acceptance
E2E
Social unit test
Tests do not create value...
... but they help focus on it!