Maybe I am one of those writers, but I don't think you and I have the same definitions of greatness in this context.
To me, greatness comes from wise economic reasoning. Using TDD is an economic choice. Using a more sophisticated type system is an economic choice. Being quicker at typing is an economic choice — you can be the fastest typist in the world, but it's not much use if everything you type exists in a vacuum.
I think the software craftsmanship idea of greatness is to be disciplined enough to refactor every bit of code until it's squeaky "clean", whereas greatness in my mind is [at least partially] the ability to recognise when a part of a system is a bit of a mess, but functions correctly and reliably and is unlikely to ever need to be changed, rendering any effort expended in "refactoring" to be a waste.
Comments
Maybe I am one of those writers, but I don't think you and I have the same definitions of greatness in this context.
To me, greatness comes from wise economic reasoning. Using TDD is an economic choice. Using a more sophisticated type system is an economic choice. Being quicker at typing is an economic choice — you can be the fastest typist in the world, but it's not much use if everything you type exists in a vacuum.
I think the software craftsmanship idea of greatness is to be disciplined enough to refactor every bit of code until it's squeaky "clean", whereas greatness in my mind is [at least partially] the ability to recognise when a part of a system is a bit of a mess, but functions correctly and reliably and is unlikely to ever need to be changed, rendering any effort expended in "refactoring" to be a waste.