“Many programmers have had the experience of explaining a programming problem to someone else… and then hitting upon the solution in the process of explaining the problem… By using an inanimate object, the programmer can try to accomplish this without having to involve another person.” Source