Development is a complex process and it becomes more complex when many people are pushing code on a same codebase.
- Ideally a development workflow should be asynchronous, so that one does his work and fixes the issues assigned to him and doesn't get stalled by his team member's progress.
- In order to implement this, put up you more competent programmers to pair for a dependent modules such that that doesn't get stuck if one of the two programmer lag.
- If two developers are working for different modules in a project, working on a DVCS such as Git is a great boon. Also, Github gives a great workflow with Issues and Pull Request. Issues and milestones are a great way to schedule you development such that there is no mistake in planning. You get set tag on the issues so that developer will know what is the high priority task, and plan accordingly.
- Make sure your team members are competent if not experts with Git, it really helps if everyone uses git wisely. Private repos are handy as well when you are working on commercial stuff.
- Using git-flow is a good choice. It truly brings sanity into the development workflow using Github and git.
- Realtime chatting via Skype is also a good choice, developers could ask stuff from each other without breaking other's flow.
- Also, make sure you people plan and discuss with each other before a days work and review at the end of day. One things is for sure, following this process will have you a more effective team.
Thats's it folks. If you like the post follow me on twitter : @vinitcool76