Programming by yourself is a fairly straightforward task from an organisational point of view, because when it comes to deciding what features are wanted, how they are implemented, when backups are taken, or even what working hours are done you are the boss. This has its advantages, but when it comes to designing and producing large projects a single-man team soon becomes impractical within reasonable timeframes.
Once you start working with other people, a number of considerations come to the forefront that need to be addressed and agreed upon if the amount of working overlap between team members is to be kept to a minimum. To start with, you will need to decide what method of programming is to be done - are tasks going to be partitioned up into small pieces and spread out amongst programmers, or are programmers going to work in groups? Are you going to maintain one code block or use version control? When contemplating group programming, do try to keep in mind Lynch's law: "When the going gets tough, everyone leaves."