Как начать разработку приложения?
В идеале - продумать идею до мелочей, описать все возможные use cases, нарисовать прототипы экранов, продумать архитектуру и приступить к разработке.
Но что мы делаем идеально? Поэтому, можно просто начать делать приложение, и отнестись к этому как к разработке прототипа. В процессе всплывет очень много деталей и тонкостей, до которых просто умом дойти очень сложно. Потом, когда будет хоть что то работающее, можно выйти с этим на рынок, собрать фидбэк. И после того, как пользователи скажут, что это совсем не то, а надо так то и так то, можно более обстоятельно итеративно дорабатывать прототип до ума или просто начать все с нуля и сделать нормально.
Прототипирование как раз нацелено на визуализацию идей и сценариев. Работать нужно этапами, делая каждый раз инкриз прототипа. Не все так умеют работать, чаще всего, прототипировщики сразу рисуют все и до конца.
Начинать нужно с юз кейсов, пускай проработает их по экранам, так станет понятно больше требований. Затем это согласуется, меняется, компонуется. И так кейсы увеличиваются, и проект обростает функционалом. Каждая фича должна от начала и до конца записыватся а не только зарисовыватся.
Записывать фичи нужно сразу в трекер заказчика, какой нибудь Trello, Pivotal. Это нужно что бы всегда перед глазами видеть юз кейсы, задавать им приоритет. 
Соотв, прототипировщик работает, вы в него вбрасываете идеи, он возвращает юз кейсы и мокапы, затем вы это апрувите и он вносит их в трекер. Когда кейсов будет достаточно для первой версии продукта, можно запускать разработчика, что бы тот по кейсам начинал разработку.
Если вам кто скажет, что прототипировщик не работает без ТЗ, то разворачивайтесь и уходите, это не прототипировщик, это недо-дизайнер. Работа начинается с идеи, которую бьют на сценарии, артефакты, всё это разносится по разным углам и вы уже можете посмотреть на них конкретно. Прототипировщик=аналитик. Если это не так - недодизайнер.