The document discusses collaborative software development with distributed teams. It provides context about the author and describes collaborative development and distributed teams. The key points needed for effective work in distributed teams are good communication, discipline, appropriate tools, strong processes, and good project management. Communication methods include email, IRC, Skype, and conferences. Discipline around communication channels and work hours is important given the distributed nature. Version control, code reviews, testing, mentoring, and cross-training are cited as part of strong development processes for distributed teams.
1 of 15
More Related Content
Collaborative Software Development With Distributed Teams
5. Collaborative software development model From Wikipedia, the free encyclopedia The Collaborative software development model is a style of software development whose focus is on public availability and communication, usually via the Internet. The software development model began widespread adoption with the Linux kernel in 1991. This development model is examined by Eric Raymond in his book ¡±The Cathedral and the Bazaar¡± where he compares it to a Bazaar.
6. Distributed Teams Team members not all in the same building The Launchpad team has 34 people spread over the globe Australia, Brazil, Canada, France, Germany, Lithuania, Netherlands, New Zealand, Serbia, Spain, Thailand, United Kingdom, United States
7. What do you need to work effectively in distributed teams?
8. What do you need to work effectively in distributed teams? Good communication Discipline Appropriate development tools Strong development process Good project management
9. Communication Email (direct and mailing lists) IRC (freenode.net, Canonical server) Skype (VOIP) Conference calls Sprints
10. Discipline Need ¡±work space¡± Can't read all email list conversations Can't be reading IRC all the time Core work hours
11. Appropriate Development Tools Distributed Version Control System (DVCS) Bazaar Full local copy of system available PQM ¨C Protected mainline Emacs or Vim
12. Strong Development Process Test Driven Development (TDD) Code Reviews of ALL code Mentoring Small teams within the larger team Sprints
14. Is that so different? Sounds like what is needed for any project Being distributed means a higher dependency on good communication All the non-verbal communication is lost in conversations Sarcasm doesn't work in email Discipline is a biggie