Whoever is the “lead” should break the project into logical systems and assign them appropriately. Try to avoid having more than one programmer working on a particular system - this means fewer conflicts when checking code into your source control solution, among other things.
There are a million books written on the subject - just google for something like “software development for small teams” and you’ll find plenty of advice.