I disagree with the definition of “good programmer”. In my opinion being a good programmer is not just about being able to bang out X lines of quality code per hour. It’s about knowing your limits, and searching for ways to extend them (static analysis, metrics, continuous integration, unit testing – these are all about keeping yourself in check). No one is infallible and the most dangerous people are the ones who believe they are. Such cowboy / wild west programming only leads to problems.
In conclusion: good programmers by definition are willing to embrace solutions (be they technical or procedural) to extend their limits. Those who don’t – are not good programmers, they are a liability.