Programmers often discover solutions while explaining a problem to someone else, even to people with no programming knowledge. Describing the code, and comparing to what it actually does, exposes inconsistencies. Explaining a subject also forces the programmer to look at it from new perspectives and can provide a deeper understanding.


This is why I put rubber ducks at all desks of my it colleagues. It helps.
It might have escalated a bit after that though. There are hundreds of rubber duckies all around the office now…