Thanks for the reply.
For my immediate project, I suppose I could put al the code in one .m file There might be 10 or 20 pages of code when I am done.
However, my experience working with c (etc.) is that breaking up the code over multiple files is a good thing.
One idea that I had was to rewrite my c code (about 4000 pages) in Mathematica -- a significantly larger project than my current one, so my question really has to do with this larger project.
If I understand correctly, I could set up a master file that has BeginPackage["myBigProject", {"subProj1", "subProj2:, etc}] and then each sub project would start BeginPackage["subProj1], etc. (I see that the editor messed up what I typed, but I think that the meaning is clear.)
If one (or more) of the projects would have utilities used by other sub projects, could I then use the second argument to Need[] the lower level project into the sub project? It seems logical.
My main reason for doing this type of factoring is to keep the model code separate from the view. Even for a modest project, that seems to be desirable. The view would only need to know about the Public stuff from the model, and vice versa.
I am planning to use Workbench so that I can create the documentation. I know that there is (probably) a way to make the Symbol, Guide, and Tutorial pages without using Workbench, but there may be advantages in using the same tools that Wolfram developers use internally.
I guess I will have to do some experiments....