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 |