No-one is paying us to...

A great quote I recently heard whilst watching a conference talk was "No-one is paying us to do something, but we need to do it to work effectively".

This talk was about decoupling, but the same quote could be re-used for various topics.

A common one is automated tests and test-driven development.

Tests aren't a line item that should be billed for separately and clients and customers just want their software to work.

Generally, they aren't concerned that there are automated tests or whether the tests were written before the code.

If I need to give an estimate, I always include time to write automated tests.

It's part of my software development process.

Whether people know they're paying for me to write automated tests as part or not, I can work more effectively when I have tests and am doing test-driven development.

Both when writing the code, but also if it needs to be refactored or changed in the future.