A critical problem in the early stages of development is to determine what details are appropriate at each level of abstraction, and more importantly what details should be omitted. It is important to not ignore or throw away important information, but on the other hand one does not want to manage too much information, or have the burden of a lot of information hiding critical details.
For the most part, there are few guidelines to help address this problem. A solution comes only from experience and practice.