3 ms·
I'll generalize this and say that TDD is terrible whenever trying to learn new tools. It seems to work really well when you're using the same tools you've alway
by raganwald 15y ago
I'll generalize this and say that TDD is terrible whenever trying to learn new tools. It seems to work really well when you're using the same tools you've always used--frameworks, plugins, gems, libraries, architecture, server stacks, whatever--and the only new area of research is the domain logic and implementation thereof.
I'm running into this exact thing right now on a new project that uses some tooling I haven't used before, and I'm doing an awful lot of yak-shaving. Some of it I would have done anyway just writing code with the new tools, but writing effective tests really does require a certain base comfort with the tools.
- tednaleid 15y agoIt feels like yak-shaving, but when you're learning a new language, that yak-shaving helps you dig into areas of the language (and it's infrastrucutre) that you wouldn't otherwise know about. It will pay off in the long run. Your productivity is down, but that's expected, you're learning a new language.
- raganwald 15y agoNot always the case. While it's true that my total knowledge is going up, it's going up slowly because I'm trying to learn two things at once instead of learning one thing and then another. Consider someone who wishes to learn how to drive a car and also how a car works under the hood. Learning how to steer and learning the complete function of the steering apparatus at the same time is not as effective (for me at least) as learning how to drive in one session with the mechanism either not explained or vastly simplified. At another time, I can learn about steering mechanisms and hear all about power steering and differential gears and what-not.