|
I don't think anyone is suggesting a lack of honest feedback. I don't like the phrase "constructive criticism" because it's been used into meaningless, but that's basically what's being suggested. Let me try an example instead of a definition. Let's say someone is making a clear architectural misstep: They're trying to use python/django on a project, but their goals really require something like Tornado, and they're building themselves into a corner. Maybe from where you're sitting it looks like an idiot mistake. The question is then, how to engage? Do you tell them condescendingly that only an idiot would misuse tools like that, and that they're foolishly the HTTP request/response model that Django implements? Or, do you try to guess at where their knowledge fails, and give them links to writeups about asynchronous programming? Or do you engage them in conversation and try to ascertain why they're making the mistake, and gently explain that better programming models have been devised for the problem they're trying to solve, and why don't they look into it and see if they agree, and "by the way if you have any more questions here's my email, I'd be happy to help." If people can't handle receiving this last approach, then it speaks to a certain lack of immaturity. If people can't handle acting taking this, it also speaks to a certain lack of maturity. We should try to build and enforce social norms that help growth as programmers and minimize conflict. Fortunately these goals aren't inimical; in fact, the more contentious the discussion, the less learning gets done. |