Collaboration Strategies for Software Development Teams
Ideally, programmers will work remotely or have private offices, or both. Collaboration should be asynchronous and online whenever possible—allowing remote efforts to be on equal footing with on-premise work and giving permanent records to items discussed.
Have everyone do meetings online, even if many programmers work in the same office. Use video/voice tools (Hangouts, Skype, FaceTime) sparingly. Record the meetings and document the agreement.
Don’t waste time estimating, planning, or designing tasks as a team if those tasks lie within someone’s particular area of responsibility. Limit collaborative planning and design to specifying interfaces between individual programmers’ duties. Others can contribute by submitting suggested changes that they can reject or accept based on their quality and utility.
Make your product department a service organization. Product provides programmers with feedback and information but does not direct or manage their work. Let programmers make the final calls about what features to build.