Untitled Document
In his 2005 bestseller The World is Flat, New York Times columnist Thomas
Friedman famously proclaimed that advances in global communications technology
had essentially rendered the world flat. By this he meant that the massive investment
in communications infrastructure that fueled the dot-com bust has, as a virtuous
by-product, allowed a new generation of companies to leverage cheaper resources
abroad.
And has it ever.
The ubiquity of persistent Internet access has enabled a new generation of
companies to leverage resources -- be they human or IT-based -- wherever they
might be physically located. Regardless of how you feel about the political
implications of offshore outsourcing, it's clearly no passing fad.
It wasn't too long ago that developing software via offshore outsourcing belonged
solely to the province of large enterprise organizations. This of course is
no longer the case as even the smallest companies have come to rely on distant
software development teams in eastern Europe, former Soviet republics, and Asia.
In fact, this ability to instantly tap cheaper development resources and expertise
has directly contributed to a burst of innovation as smaller companies are able
to level the playing field with their larger enterprise counterparts.
Yet this opportunity also comes with some thorny strings attached. Any short
term savings realized can be quickly offset by poor requirements definition
and gathering practices. As business analysts know, clearly articulated software
requirements represent the foundation to any successful software project. Indeed,
the reason why so many software projects continue to fail is precisely because
not enough attention is paid to this critical first step of the software development
process.
Communicating and managing software requirements is of course challenging enough
even when your team happens to be situated all in the same location. But when
working with a distributed team -- many of whom don't even share a common first
language -- the potential for errors grows considerably. And thus, any savings
realized by cheaper resources is suddenly squandered. Worse still, time is wasted,
morale suffers, and the project team is forced to shift into "fix-it"
mode.
-1-