Сейчас наконец пересилил себя и взялся за задачку, которую откладывал уже пару месяцев, и понял:
Test-driven development — это воплощение идеи "ленивых вычислений" в самом программисте.
Тебе облом. Тебе ОБЛОМ. Тебе облом в кубе. Но надо делать. Ты смотришь на обломки старых недоделок. Ты понимаешь, что нет никаких сил разбираться во всём этом, тебе абсолютно по барабану, что внутри делается каким кодом и почему. Но тебе НАДО это сделать.
Ты хочешь, чтобы оно хоть что-то сделало. Ты пишешь тест, чтобы оно хоть чихнуло. Ты его запускаешь... кодишь... запускаешь... кодишь... запускаешь... кодишь... запускаешь... кодишь... и всё это через большой, тотальный ОБЛОМ.
Наконец заработало, ты его спихиваешь и с чистой душой идёшь в отпуск.
И даже процесс, как ты это делаешь сам для себя, точно соответствует определению "ленивых вычислений". Находишь, что недоделано — и лечишь именно его, прямым и простейшим образом.
И как ни странно, потом оно работает. До следующего изменения требований.:))