08.11.2005 Trust Me! Sorry, No.

See: http://blogs.testbit.eu/timj/2005/11/08/08112005-trust-me-sorry-no/ (page moved)

Often i have heard “Just trust me on this!” or similar requests during a technical discussion, and even though I would prefer to please the other person, i simply must say “No” to this kind of request, in bugzilla, on mailing lists, on IRC or even face-to-face discussions.
“Trust Me” simply is not a valid technical argument.
Now don’t get me wrong, i don’t want to attack anyone personally, and on the social level, you probably want to behave the other way around more often than not (most girl friends don’t appreciate “I won’t trust you.” as far as my experience goes at least), but not when you’re trying to maintain reproducible results, often according to scientific method. Many programming errors are based on false untested assumptions and assumptions can be false for an unbelievable variety of reasons, basing on “Trust Me” is just one of them ;)
Conversely, I certainly would love everyone in the world to trust my person on every (technical) fact i present, but over time i had to figure that i can’t even trust myself on every measure, so it would be ridiculous to ask others to do so. Completely valid, long standing assumptions can be broken by such simple things as a package upgrade, a software fix, processor variant switch, hard disk fill level, a timer wrap around or specification changes that i haven’t heard of ;-[]
And that was only warming up the list.
So over the years i have tried to make a habit out of basing every programming or design decision i make on a solid basis of facts, each of which i have checked at least once, heard a sound argument for or seen a reasonable proof for (and usually should be able to dig up the check for it, or relevant information resource).
This does render “Trust Me!” a completely irrelevant statement in technical arguments though, and with this blog entry i want to apologize for every time i had to respond “No” to such a request and plead for an attempt at understanding why i do this. I don’t mean to offend anyone with it, but to improve the software I’m producing for other people; so to a certain extent, i feel i have the obligation to question the reasonings and facts I’m supposed to operate with.
Thank you for reading this.