Distributed software development teams are becoming more common. There are some good reasons for it. Here are a few:
- Access to potentially lower cost talent
- Ability to attract highly-specialized and hard-to-find talent
- Outreach to a larger and more diverse labor pool
- Advantages of an extended work day via time differences
The potential benefits are enticing though they come with unique challenges. Software development is hard enough when the entire team is together in one place. Adding the complexity of having team members scattered around the country or around the world only makes it harder.
The traditional approach to this added complexity is to document, approve and control every aspect of the development process. Fight complexity with complexity! This is an administrative and legal solution to a problem that’s founded in people and technical issues. It doesn’t work.
If you have an interest in distributed software development, I invite you to read a guest post I wrote for Colabpro. Agile development techniques reduce risk and simplify the management of distributed software teams. The post is called “How Agile Principles Make Distributed Software Development Better”.
Please take a look and let me know what you think by leaving a comment at Colabpro or here.