Imagine that you are designing a web application that could possibly grow to the scale of Amazon or Google. In the beginning you start with only one small aspect of the project knowing that, in the name of agile development, you have to start somewhere. For example, you might choose to create a simple directory of books hoping that your project takes off and some day you'll be not just a directory but a one-stop site for buying and selling books as well as all kinds of other merchandise. (This is all purely hypothetical.)
What are the different types of modeling you would employ? What are the different "entities" that you would model in the beginning? How important do you think modeling is and what information should you use to determine when and what to model?
In an answer on a previously asked question on SO there is reference made to the "data centric world view" versus the "process centric world view". Do you model the flow of information across an application or website(s) before you start to perform logical data modeling and physical data modeling? Or do these phrases refer to something different?
What tools might you use for modeling the different types of information?
My modeling is usually done on a piece of paper or sometimes a whiteboard. I came a long way from writing exhaustive technical designs, but I found out that it is no use at all to think ahead to features you'd like to have in a few years or even a few months. Your requirement will change continuously, so you should program for the 'now'.
That is, when it comes to modeling.
Of course you should think of what what happen if your company grows, but not in features, only in performance. Would your app still run if you got 10 times the visitors, 10 times the products, 10 times the orders... Those things you need to worry about, not about what you are intending to build in 2 years. There's no way you can foresee everything, and all attempts to write 'smart' and 'extendable' code, will result in a more complex system that is even harder to customize in two years than it would have been if you didn't think about it at all.
Just build what you need now, and build it lean and clean so it can be extended, refactored or replaced in the future.