I just saw a tweet from @UncleBobMartin
"If programmers were meant to test everything, God would have given them brains."
Perhaps a little non-diplomatic. Maybe evoking religion into development discussions. Funny and thought provoking though.
Another person I know is facing the task of moving his organization to agile and meeting some resistance from the fabled "crusty old C++ developer".
How do you get others to move to what you consider is a better method of programming?
Persistence? Wear them down over time? The best religion wins?
The problem is developers tend to form camps, often with religious overtones. It is very hard to move someone out of a camp by force. Most people don't look objectively at their beliefs on a regular basis.
Before introducing TDD (a method of programming) into the equation you would be wise to get agreement on the desired outcome: clean, supportable code with zero defects for example.
If you can't agree on the outcome, you won't agree on the method; guaranteed.
Once you agree on the desired outcome then the rest of the conversation is around the best method to get there. Listen objectively to the other person. Learn from what they believe. If they think you are listening to them, they are more likely to listen to your ideas objectively.
Then discuss the merits and weaknesses/costs of both methods. Why do you believe TDD is better? Than what? Manual testing? Ad hoc developer testing? External QA and user testing? What problems does it solve?
If you truly believe TDD is the best method to get there, then prove it over time. Most people who truly believe in the outcome will come around over time to better ideas. Just don't bash them over the head with it. I don't know about you, but I don't tend to agree with people who are yelling at me (unless they have a gun).
If both don't agree to the desired outcome you have bigger problems than TDD discussions. You are on different roads to different destinations.
Caring about the outcome is even more important. Maybe the question should be "Did God give developers hearts?".
Smart and caring about their craft.
Brains and heart… and courage; but that is a different story.
(We're off to see the wizard, the wonderful wizard of Oz, because, because, because, because, the wonderful code he does.)