But if you are working on critical parts or products you know will be in use for a longer time it is usually the right approach.
To defend why you should throw spike results away in TDD:
- Usually during a spike you learn how to use an api/framework. You are focusing on very low level solutions.
- You made it work the first time. But now when you do it again you wouldn't do it the same way. You don't redo usually.
- Usually the second time the solution is clean and proper strcutured.
TDD is very focused around proper software design. And for the areas where you actually need that it is a great tool.
But if you are working on critical parts or products you know will be in use for a longer time it is usually the right approach.
To defend why you should throw spike results away in TDD:
- Usually during a spike you learn how to use an api/framework. You are focusing on very low level solutions.
- You made it work the first time. But now when you do it again you wouldn't do it the same way. You don't redo usually.
- Usually the second time the solution is clean and proper strcutured.
TDD is very focused around proper software design. And for the areas where you actually need that it is a great tool.