Это не черно-белая ситуация: для некоторых проектов гораздо лучше приступить к написанию кода, для некоторых лучше иметь обширный этап планирования, а для других это не совсем ясно.
Если проект небольшой и достаточно простой, чтобы над ним работал только один разработчик, и то, как его создать, достаточно очевидно, что они могут представить каждый его аспект в своей голове, тогда они могут очень хорошо начать и начать проектирование.
Необходимость в более обширном планировании возникает, когда у вас несколько разработчиков, или когда проект достаточно большой и сложный, чтобы разработчик не мог знать все возможное о том, как он будет работать с самого начала, потому что он слишком сложен, чтобы знать все аспекты этого в вашей голове.