Division of labor and teamwork for programmers

Hello everyone
I’m programming for games almost for 2 years now, mostly with UnrealScript for UDK, C# for Unity and C++ for UE4 but I was always working alone as a programmer, although I have worked with level designers, modeler, Animators and etc. But now our team is trying to create something bigger than before and I’m realizing it needs more programming force to finish it on deadline and I’m sure we need more in future, according assigned projects. What makes me nervous is how things must be divided between me and the other programmer, I think using source control is inevitable, but beyond that I have no idea, Should I declare classes, methods, member variables and Activity Diagrams and then tell him to implement methods? or should we take responsibility of different sets of Classes? How deep should we use UML and diagrams? or maybe a mixture?How should “chain of command” look like? In general what is the basic structure to organize programmers in a team or company? What are the main roles and tools to keep things coordinated?

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.