When designing a website or software product, the information should be organized based on information gathered from actual users. This organization then needs to be iterated, agreed upon, validated, and communicated in an easy to understand fashion.
Many diagramming techniques are useful in understanding the organization and relationship of objects in a software application. I find object iteraction diagrams paired with process flow diagrams to be effective in communicating the “big” picture with developers.
Once the big picture is understood and agreed upon, wireframes of each view (screen, page, or page type) are created. By creating simple wireframes the design can be reviewed, iterated, and tested before one line of code is written – saving valuable time and money.