Hope is not a plan.
A lack of planning on your part does not constitute an emergency on my part.
90% of the functionality delivered now is better than 100% delivered never.
In carpentry you measure twice and cut once. In software development you never measure and make cuts until you run out of time.
Things that are impossible just take longer.
You won't get anything done by planning.
At some point software design becomes less about what and more about when.
Start out with finding the right problem to solve. This is a combination of “what customers are asking for”, “what customers don’t even know they want yet” and “what can be solved with something simple to understand and manage”
The first step of any project is to grossly underestimate its complexity and difficulty.
Feature-based releases expand to fill all available time until someone feels guilty for not finishing the feature on a magical, wish-fulfillment schedule, and hey, has it been a couple of years already?