How much planning should one do before starting a project? Should they have everything already planned when they begin coding or should they just get a basic idea of what they want and then make things up on the fly?For instance, I want to create a YouTube client that allows for streaming videos and for downloading multiple videos simultaneously (similar to Minitube). I know what I want the interface to look like when the program is first opened. Is this enough for now? Should I create this and then plan the next step or should I continue planning?How much planning is enough?
Planning Before Starting a Project
project management;planning
It depends on the methodology you follow.  I like the Agile approach of doing just enough planning to get through each iteration.  Before you begin, you should have a high level architecture of how everything will fit together. Doing too much planning upfront will be wasteful.  Inevitably, things will change during the course of your project.  You will want to modify your design, refactor your code, add/remove features, and fix bugs. Whatever you do, make sure not to follow a waterfall approach.  There are many models that offer an improved approach.