In previous posts, I hope I’ve been able to demonstrate that although the world might be a little (not totally) flat in terms of physical distance, nobody has yet curved time to make everybody awake at the same hour, no matter the time zone.
Still, some questions remain.
First: is a large time-zone difference good for some kinds of outsourced work?
The answer is yes. It can be good for certain support functions, if you expect things to be fixed while activity is slow (during the night). It can also be good for testing activities (QA outsourcing). But, as I think I’ve demonstrated, it clearly isn’t favorable to development activities. Specially if you want to leverage Agile methodologies.
Second: do I need large piles of documents if I can speak directly with my outsourcing partner?
For this one, the answer is no. You don’t need all the documentation generated by a traditional SDLC based on the premises of far-shoring. Many times I get questions (mostly from sectors such as insurance) about compliance and the “evidence” you need to keep to satisfy SOX and other regulatory requirements. It’s absolutely possible to satisfy those requirements and yet be much leaner in the number of documents generated. It just takes some time and courage to determine how much waste resides on those documents. With some preparation and education, even auditors can understand this waste as well.
The next question is: do we need an elaborate and sophisticated process if we collaborate daily?
The answer is: you need discipline, but a far simpler process will not only suffice, but be much more effective.
Do we need to have all these specialized jobs? No. A leaner process means a cross-trained team, one that’s more able to tackle activities in different areas. Looking at the entire value stream is more important than being the expert in a narrow set of activities. Of course, we still need in-depth knowledge, but we prefer that depth along with breadth.
Is it necessary to have a management meeting every time we need to change something? No. Change is the name of the game in an Agile/Lean process. Change is accepted, and it doesn’t require stressful negotiations. Energy that would otherwise be wasted with scope negotiations is employed directly in the understanding and implementation of the changes.
No matter how flat the world may be, there’s no substitute for having a provider that can respond to questions in near real-time, adapt to change on the fly and eliminate waste in every project.
Finally: do we need to be co-located in order to run a true Agile/Scrum project?
This one’s quite an interesting question. As I mentioned earlier, the world is more or less “physically flat”, but to date nobody has been able to flatten time. So, your team and your provider’s team don’t need to be co-located, but they do need to be working at the same time. If you care about co-location, there are ways to simulate it. In a recent paper, Prof. Erran Carmel and Prof. Rafael Prikladnicki coined the term RTCS, standing for Real Time Co-Location Simulation, to refer to using technology to simulate co-location. Essentially this means keeping webcams or tele-presence equipment constantly on so distributed teams can see each other while working (even when they’re not directly interacting). Of course, such use of technology would be useless if there’s no overlapping of working hours. We have used such mechanisms at Ci&T with positive results.
In the end, it’s clear that location does matter when it comes to software development outsourcing, at least insofar as both the provider and the client are working on similar time zones. No matter how flat the world may be, there’s no substitute for having a provider that can respond to questions in near real-time, adapt to change on the fly and eliminate waste in every project.