The challenge of the experienced developer is to pass on wisdom without passing on dogma, but most developers think their personal experience should be enshrined as a best practice. ... The difference between saying "I used X and it sucked" and "I used X for Y and it didn't work out because of Z" is the difference between becoming experienced and simply growing cynical.