Is teaching kids, developers and dogs the same thing?
After a loooong pause this summer due to work I started taking lessons with Sydney again. What I really appreciate about the training is that the instructor does not train Sydney, but me. The instructor never gives a command to Sydney. All commands, and the way Sydney behaves, are explained to me and I do my best to teach Sydney. Instead of coming back with a programmed robot I get trained to understand what Sydney wants, needs and why he behaves the way he does.
I try to take a similar approach with the developers I work with but it is not simple; it is a lot faster to just fix the problem than take the time to explain and teach the developer what is wrong and then guide the developer to fix the problem. I failed at it yesterday evening when I fixed a problem in two minutes in front of the developer instead of couching the developer to fix it. I blame it on the late hour but I shouldn't have as I know better. I really do believe that MS Dos device driver project. Even worse; I fixed the problem with someone else present. A big no-no as it may make the person look "bad" in front of others and reduce self esteem. Sorry...
Back to the training with Sydney; I was a bit disappointed this summer as Sydney was great at home but was difficult to control in a parks with many dogs. The instructor explained the reason earlier this week; staying at home with no dogs around is very different from having another dog around, which is very different from having a female dog around which is completely different from having 10 dogs running around in a park. The only way is to take small steps at a time; don't expect miracles but encourage good behavior and ignore wrong behavior when possible.
(BTW: all the “lessons“ applies to raising kids; just replace "developer" or “Sydney“ with "kid" above…)