Re: What are the most important issues during offshore software development
"jtigg3r" <[email protected]>
| Newsgroups | gmane.comp.programming.language-of-the-year |
|---|---|
| Message-ID | <[email protected]> |
Forrest,
This is a very involved topic. There are a ton of concerns here. I'm
assuming that you're employing "modern" software development practices
(so-called "Agile"; where there are tight loops and reliance on
individual's memory and open trusting conversations).
- Don't underestimate the need for on-shore support of off-shore
development. Someone on-shore needs to own the product/results! They
need to QA the work; ensure it's up to snuff, etc.
- The ratio of off-shore to on-shore team size depends on a number
of factors:
- how versed is your off-shore team in the technologies?
- how versed is your off-shore team in the business?
- how versed is your on-shore team in tech, biz, and any existing
architecture/environment, etc.
- Don't underestimate the value of interpersonal communication.
- You MUST have a competent and sympathetic off-shore technical lead.
Ideally, your contracting company provides BOTH on-shore and
off-shore leads... you need that "we're absolutely on the same team"
relationship to bridge the distance.
- You WILL have misunderstandings; you WILL have frustrations (on
both ends)... when development is split like this, you have to rely
more on trust ("I know they are doing their best...") since you don't
see each other all the time.
- Start the project by bringing (if not all) select developers
on-shore and get to know the customer, environment, etc.
- Get as much overlapping of the day as possible. If people are
willing to shift schedules, that's ideal for the work environment.
- Good communication tools are available cheap. Use Skype video
calls. Use IM, use Campfire, use mailing lists.
- If at all possible, send your on-shore team to the off-shore site
for some time.
- Use an issue tracking system (JIRA, Trac) to manage User Stories /
Units of Assignable Work. Comment verbosely in both directions.
- One big oversight in companies getting started with off-shoring is
they miss the fact that off-shore development typically needs access
to the development environment resources. When there's a problem with
the source code repo or the perf environment, who can the off-shore
folks call?
- the more mature your development practices/processes, the easier it
will be to incorporate a whole 'nuther team.
.
.
.