Is there a practical solution to organizing the initial tasks for a new project?
To elaborate, imagine the features/stories/goals are laid out for a project. How might one go about organizing those into sane tasks for the first few versions?
The scenario I typically have in mind has the features listed as a high-level reference for what the end user-experience should involve. The tasks for constructing such features are then broken down into chunks (such as "create interface for X component"). Such a task is not necessarily "tied" to only that feature and may be useful when building subsequent features. Is breaking features down into small, code-able solutions valid? Or should they be slightly removed from any specific implementation?
I do not expect that there is one "right" answer to this question, but I am looking for a fairly pragmatic and unobtrusive approach.
As a note, I'm looking for solutions that are independent of any tools or "systems" used for managing the tasks themselves.