My Secret Life as a Spaghetti Coder
home | about | contact | privacy statement | getting started with cfrails
If we accept the notion that we need to figure out how to work with outsourcing because it's more likely to increase than decrease or stagnate, then it would be beneficial for us to become "Distributed Software Development Experts" (Fowler, pg 169).

To do that, you need to overcome challenges associated with non-colocated teams that exceed those experienced by teams who work in the same geographic location. Chad lists a few of them in this week's advice from My Job Went To India (I'm not quoting):
  • Communication bandwidth is lower when it's not face to face. Most will be done through email, so most of it will suck comparatively.

  • Being in (often widely) different time zones means synchronous communication is limited to few overlapping hours of work. If you get stuck and need an answer, you stay stuck until you're in one of those overlaps. That sucks.

  • Language and cultural barriers contribute to dysfunctional communication. You might need an accent to accent translator to desuckify things.

  • Because of poor communication, we could find ourselves in situations where we don't know what each other is doing. That leads to duplicative work in some cases, and undone work in others. Which leads to more sucking for your team.

A pacifier, made of white gold, with diamonds.

The bad news is that there's a lot of potential to suck. The good news is there's already a model for successful and unsuccessful geographically distributed projects: those of open source.

You can learn in the trenches by participating. You can find others' viewpoints on successes and failures by asking them directly, or by reviewing open source project case studies. Try to think about the differences and be creative with ways to address them.

Doing that means you'll be better equipped to cope with challenges inherent with outsourced development. And it puts you miles ahead of your bitchenmoaning colleagues who end up trying to subvert the outsourcing model.

Hey! Why don't you make your life easier and subscribe to the full post or short blurb RSS feed? I'm so confident you'll love my smelly pasta plate wisdom that I'm offering a no-strings-attached, lifetime money back guarantee!


Comments
Leave a comment

sammy,

i strongly suggest thinking ahead of where you are working. having a good plan for your direction makes movement in that direction faster, and allows you to see issues well before they are problems. if you can ask the questions days or weeks before the information is required, then you are better off.

regarding language, the accents and choice of words can be a barrier. give it a while, and what is obvious at the start of the relationship will not even be noticed. i would highly suggest that when communicating that you take as long as you need to repeat what each party said. i've spent 20-30 minutes over a sentence or two that had a major impact on what was done. repeating things in your own words (and the other party doing the same) will help you to see if you are on the same page. its much better than saying you've got it when you really don't.

just my thoughts.

Posted by shag on Sep 12, 2008 at 10:30 AM UTC - 6 hrs

shag - as always, thanks for the advice and thoughts!

Posted by Sammy Larbi on Sep 16, 2008 at 01:00 PM UTC - 6 hrs

"The bad news is that there's a lot of potential to suck. The good news is there's already a model for successful and unsuccessful geographically distributed projects: those of open source. "

I am glad you pointed this out!!! Many people do not realize this when they start to enter into one of these projects!

Posted by John McCain on Oct 10, 2008 at 04:41 PM UTC - 6 hrs

Leave a comment

Leave this field empty
Your Name
Email (not displayed, more info?)
Website

Comment:

Subcribe to this comment thread
Remember my details
Google
Web CodeOdor.com

Me
Picture of me

Topics
.NET (26)
AI/Machine Learning (15)
Bioinformatics (3)
C++ (7)
cfrails (22)
ColdFusion (84)
Customer Relations (20)
Databases (2)
DRY (19)
DSLs (13)
Electronics (2)
Future Tech (6)
Games (8)
Groovy/Grails (8)
Hardware (2)
IDEs (10)
Java (44)
JavaScript (5)
Lisp (2)
Mac OS (3)
Management (4)
Miscellany (63)
OOAD (39)
Programming (132)
Programming Quotables (9)
Rails (21)
Ruby (59)
Save Your Job (63)
scriptaGulous (4)
Software Development Process (28)
TDD (43)
TDDing xorblog (6)
Tools (6)
Web Development (8)
YAGNI (12)

Resources
Agile Manifesto & Principles
Principles Of OOD
ColdFusion
CFUnit
Ruby
Ruby on Rails
JUnit



RSS 2.0: Full Post | Short Blurb
Subscribe by email:

Delivered by FeedBurner