Все продумать не возможно, путь эволюционирования проекта гораздо лучше чем попытка сразу создать идеал

. Но это не исключает того что архитектуру нужно изначально понимать конечно же

.
А вот про МВЦ нужно сказать что когда люди за него берутся без опыта абстракция мвц убивает их и превращает проект просто в коричневатое месиво.
А что тут говорится по срокам то тут можно сказать так. Пытаться писать криво и быстро в итоге в 99% случаев будет дольше из за исправления багов которые во 1х будет сложно править во 2х исправление будет вызывать новые. Кроме того вдруг понадобится расширении проекта?) А это смерть.
Я вообще предпочитаю писать с начала тест, патом код. Это не только качество кода это еще и проще просто для самого себя