Always make a prototype. Do not obtain funding or set deadlines with the assumption that the prototype will be salvageable. It is background research and should be done during a time when you are not expecting the project to generate any revenue. Doing so will doom you so bad . Do not add people to the task unless you really need them.
New people step on one another's toes.
To do this requires few minds in the design-space. Do regular code review and be extremely punitive with people who write unreadable code. Do not accept unreadable code into the source base. Make them rewrite it. Develop testable requirements, and use a regression testing tool as soon as you have testable requirements.