ну то есть не знаю как Вы, но у меня не получается прям сразу учесть все. Если у вас так получается, расскажите как Вам удается?
вначале можно сделать архитектурное ревью, типо написать вначале какие будут энтити, накидать интерфейсы которые будут, описать возможные флоу на экране, убедиться что апи возращает все нужное, раскидать по слоям. да, редко когда удается прям все возможные стейты учесть, но если хорошо спланировать, и общаться с продуктовой командой и дизайнером, и учесть все стейты заранее, то потом это окупиться сильно, чтобы сократтиь переделки. потому что в процессе обсуждения и планирование может выяснится что фича не нужна, или есть какой то скрытый стейт и переход, который надо заложить. плюс если у тебя будет код отделен на слои и будут тесты, ты сможешь изи рефачить/добавлять/удалять, особо не переживая. это кэпство конечно, но на практике работает, особенно если проект не имеет большой кодобазы/легаси