Michael Platt talks about the difference betwee developers and (software) architects. He has interviewed many of them (in job interviews) and has ingenious ways to find out whether they're really an architect or more of a developer. A question he asks is as follows: "I have a cup of coffee and a cup of tea. I take a teaspoon full of coffee and put it in the tea. I then take a teaspoon of the tea and put it in the coffee. Which is the purest, the coffee or the tea? Explain your thinking." What's your answer to that?
Michael explains the answer: "Most people use a logical approach to this problem the first time and that will give you the coffee as the purest. This is the wrong answer. You tell them it is wrong and ask them to do the problem again, again explaining their thinking. There are now two approaches, the mathematical (which is actually quite difficult) and the analytical which is very easy. The key to the analytical approach is to take the limit case, if I put a cup full of coffee in the tea and then a cup full of the tea + coffee in the coffee cup then the answer becomes obvious... they are the same."