Extreme Remote = Off-shore?

In the previous post, I defined Extreme Remote as "having team members so far away that regular overlapping work periods are very difficult to maintain".  And, I referred to countries such as Pakistan and India as sources of technical talent.  So, isn't that just what we typically refer to as "off-shore development"? 

I consciously avoid using the term 'off-shore' because, to most people, it implies a way of working and a set of problems that is exactly what we are trying to avoid.  'Off-shore' typically implies a waterfall process and an 'over-the-wall' mentality.  With Extreme Remote, we want to apply genuinely agile principles and creatively solve/mitigate the challenges posed by distance, time-zones, and culture.

Here are some key differences between off-shore development and Extreme Remote teams:

Off-shore Extreme Remote
Big Up Front Design Iterative design
Requirement misunderstandings revealed at time of delivery Requirements expressed as automated tests; continuous integration allows early evaluation and course correction
Lack of code ownership In-house team members intimately familiar with code at all times
Code quality issues revealed at time of delivery Daily code reviews and regular group code reviews preserve code quality continuously
Separate teams Integrated team