You have to be careful about this. Using this as a justification not to have good tools ("What's wrong with you? Suffering worked great last time") is bogus logic; there's no reason not to have good tools. The other side of the coin, NOT doing something because you don't have good tools yet, is equally poisonous.
- The test team that spends all its time writing test frameworks and tools, and never writing any actual tests. (How many times have I seen this?)
- The engineer who spends half his time "optimizing" (finding the perfect language, defragging his hard disks six times a day, tweaking TCP settings so repository access is as fast as possible) and not writing code.
- Going around and around on a class design until it's /perfect/.
- Not moving on something because you lack complete understanding.
It's hard to overstate the benefit of just getting in the ring and doing /something/.
After 25 years of random fiddling with one side project [not going to tell you want it is] I finally just started writing some fucking code. And you know, it feels darned good. The stuff I'd been worrying about being inefficient and so forth turned out to be only a few hours of thinking and coding. It was fun.
A poor craftsman blames his tools.