Collaborative Software Development With Distributed Teams

2,089 views

Published on

A quick talk I gave to a group of post-grad students.

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,089
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Collaborative Software Development With Distributed Teams

  1. 1. <ul><ul><li>Collaborative Software Development with Distributed Teams </li></ul></ul><ul><ul><li>Tim Penhey </li></ul></ul><ul><ul><li>[email_address] </li></ul></ul>
  2. 2. About Tim <ul><li>Who is this fella and why do I care? </li></ul>
  3. 3. And now... <ul><li>Team lead for the Launchpad Bazaar integration team of Launchpad </li></ul>
  4. 4. Callolaboration <ul><li>Col·lab·o·ra·tion (Websters) </li></ul><ul><ul><li>n. </li></ul></ul><ul><ul><li>The act of working together; united labor. </li></ul></ul>
  5. 5. Collaborative software development model <ul><li>From Wikipedia, the free encyclopedia </li></ul><ul><ul><li>The Collaborative software development model is a style of software development whose focus is on public availability and communication, usually via the Internet. </li></ul></ul><ul><ul><li>The software development model began widespread adoption with the Linux kernel in 1991. </li></ul></ul><ul><ul><li>This development model is examined by Eric Raymond in his book ”The Cathedral and the Bazaar” where he compares it to a Bazaar. </li></ul></ul>
  6. 6. Distributed Teams <ul><li>Team members not all in the same building </li></ul><ul><li>The Launchpad team has 34 people spread over the globe </li></ul><ul><ul><li>Australia, Brazil, Canada, France, Germany, Lithuania, Netherlands, New Zealand, Serbia, Spain, Thailand, United Kingdom, United States </li></ul></ul>
  7. 7. What do you need to work effectively in distributed teams?
  8. 8. What do you need to work effectively in distributed teams? <ul><li>Good communication </li></ul><ul><li>Discipline </li></ul><ul><li>Appropriate development tools </li></ul><ul><li>Strong development process </li></ul><ul><li>Good project management </li></ul>
  9. 9. Communication <ul><li>Email (direct and mailing lists) </li></ul><ul><li>IRC (freenode.net, Canonical server) </li></ul><ul><li>Skype (VOIP) </li></ul><ul><li>Conference calls </li></ul><ul><li>Sprints </li></ul>
  10. 10. Discipline <ul><li>Need ”work space” </li></ul><ul><li>Can't read all email list conversations </li></ul><ul><li>Can't be reading IRC all the time </li></ul><ul><li>Core work hours </li></ul>
  11. 11. Appropriate Development Tools <ul><li>Distributed Version Control System (DVCS) </li></ul><ul><ul><li>Bazaar </li></ul></ul><ul><li>Full local copy of system available </li></ul><ul><li>PQM – Protected mainline </li></ul><ul><li>Emacs or Vim </li></ul>
  12. 12. Strong Development Process <ul><li>Test Driven Development (TDD) </li></ul><ul><li>Code Reviews of ALL code </li></ul><ul><li>Mentoring </li></ul><ul><li>Small teams within the larger team </li></ul><ul><li>Sprints </li></ul>
  13. 13. Project Management <ul><li>Bug tracking </li></ul><ul><li>Feature planning </li></ul><ul><li>Planned regular releases </li></ul><ul><li>Cross training </li></ul>
  14. 14. Is that so different? <ul><li>Sounds like what is needed for any project </li></ul><ul><li>Being distributed means a higher dependency on good communication </li></ul><ul><ul><li>All the non-verbal communication is lost in conversations </li></ul></ul><ul><ul><li>Sarcasm doesn't work in email </li></ul></ul><ul><li>Discipline is a biggie </li></ul>
  15. 15. Questions?

×