What I do is think of the project as if I was not the only one working on it. Strip down the application down to several individual pieces, each one performing a single function, then make each one of those a module.
in reply to Starting a project and landing between a rock and a hard place.
Then, create a standard way of communicating between modules (inputs/outputs). Most important: document all this.
Now I am ready to start the actual coding. Start with the basics, the very core functionality of the application, and work from there. If you're lucky and you're given other people to help you, you just hand them the documentation you wrote, and have them write some of the little pieces/functionalities you specified. Those pieces will automatically "talk" to yours, since you have created your standard I/Os.