The more ambitious your design the more you need the coding experience to keep it in check. That's been a huge factor in my own design - is this feasible...can I implement this in some manner and keep memory in check...will implementing this require more info to be sent to the user which equals higher bandwidth costs...and if so, is it worth it?
And then there is the ever present question: How long will this take to implement and do the pro's outweigh the costs both in money and time? And even if you answer yes to that, you have to prioritize all of your ideas. It gets harder when all those ideas are inter-related and depend on each other being present for maximum effect - how can you cut an idea out while minimizing the negative effects that'll have on your other ideas.
And then there is the ever present question: How long will this take to implement and do the pro's outweigh the costs both in money and time? And even if you answer yes to that, you have to prioritize all of your ideas. It gets harder when all those ideas are inter-related and depend on each other being present for maximum effect - how can you cut an idea out while minimizing the negative effects that'll have on your other ideas.