Planning is an important part of software development, but it can also hinder valuable progress. Most of my software development is done under the “agile” or “extreme” development process model, where software is developed on the fly, and used, if possible, during the development process.
For more tangible projects, like say building a bridge, its obvious that everything all the plans to be figured out first, even if the design isn’t perfect. Otherwise, the project would simply not succeed.
With software, the “work-in-progress” is many times more flexible, and thus can shift and change as the project progresses. That doesn’t mean that planning, time lines, and deadlines won’t help, though. The more people that get involved with the development of and start using a software package, it becomes much more important to have a communicable plan of strategy and execution.