TDD — это не инструмент, это метод проектирования, основанный на модульном тестировании ДО написания кода.
Техника также является инструментом в контексте разработки программного обеспечения. Существует множество методов решения различных проблем в различных обстоятельствах. Когда я говорю инструменты, я имею в виду методы, а не IDE, стул или стикер, которые тоже являются инструментами, хотя и менее важными в контексте этого разговора.
«TDD — это еще один инструмент в вашем арсенале». Вы, наверное, слышали это раньше.
Вся энергия, которую вы тратите на соблюдение принципов TDD, может быть использована более продуктивно, уделяя больше внимания предварительному проектированию.
TDD — это не серебряная пуля, и во многих случаях я бы не стал его использовать, например, когда я хочу рассуждать о всей системе в «достаточно достаточном» предварительном дизайне.
Это зависит от проблемы, которую вы пытаетесь решить. Если вы хотите решить проблему, в которой имеет смысл предварительный дизайн без TDD, сделайте это.
Опять же, пожалуйста, укажите, какая часть сообщения противоречит всему, что вы сказали в своем предыдущем комментарии. Кажется, вы спорите с соломенным человеком.