This article reminds me of an essay by Edsger Dijkstra, EWD1036 [0], comparing digital vs analog processes, and how they lead us to think of discrete bugs vs continuous errors.<p>(I recall it as arguing against the naive tendency of considering machines as continuous devices).<p>Interestingly, Dijkstra also uses a musician as example, for the alternative view:<p><i>if the violinist slightly misplaces his finger, he plays slightly out of tune</i><p>[0] <a href="http://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD1036.html" rel="nofollow">http://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD1036...</a>
I try to attribute behavior to extrinsic properties whenever possible. And then consider it intrinsic if proven otherwise.<p>Most people seem to do it the opposite way, which probably leads to a lot of classification errors. Fixing an intrinsic problem is so hard that it's considered a waste of time by most, whereas fixing an extrinsic problem is within the realm of possibility.<p>I figure it's better to waste time trying to do the impossible if the alternative is to leave a lot of low hanging fruit untouched.
Interesting view, but I wonder if it applies on so large a field the author seem to believe. Piano may be a good example: some wrong notes can be bugs but if the kid do not enjoy playing music and take it as a chore, no amount of bug fixing will help.<p>Same for math, no-one said everyone must love them, because it is not that lovable, and to be good at it math lover have a head start. So before getting to the learning disability bug fixer you might want to make your kids fall in love with math or grammar or whatever.<p>That's how I remember my love affair with math: one day a math teacher did trigger love for math in me. It was a mix of telling me I was good at it, showing me how powerful and wonderful a machine it is, and so on.
If I had to summarize this blog post in one phrase it would be: <i>work the problem not the person</i>. The act of solving the problem changes the person.<p>The major exception to this is intent. When a person isn't interested in solving the problem this technique will be less effective. And since all pre-college education is compulsory there will always be a significant percentage of students in need of an attitude adjustment.
In the matter of talking about bugs, I try to use terminology influenced by the SEI.<p>"It's crashed" --> "It has failed".<p>"It's behaving buggily" --> "There is a fault / it is faulting".<p>"It's a bug" --> "It's a defect".<p>The one to me that really matters is "defects". It's a matter of taste, but I find that the term "bug" implies mysterious agency. "Defect" correctly describes that ... there's a defect. Something is wrong and it can be fixed.