Test Driven Development is increasingly gaining prominence among software development methodologies. For example, a Search on Amazon for "Test Driven Development" under the category "Computer and Technology" brings up 937 books, almost 5 times what search for "SCRUM" brings up under the same category.
And of course, outsourcing to offshore teams is now considered maintstream in IT circles.
How about combining the two? Here come a surprise - these two trends for lowering the cost of software development have been developing independent of each other, with very little intersection. In fact, many proponents of Test Driven Development methodology propose it as an
alternative to engaging offshore development teams for cost savings.
However, I don't believe Test Driven Development and Outsourcing are “either…or” scenarios. There is no reason that a company can't embrace both and get the compounded benefits. In my opinion, the primary reason many people in the software development industry are reluctant trusting their outsourcing teams with Test Driven Development arises from a flawed understanding that test driven development does not lend
themselves to outsourced processes; or offshore teams do not have the maturity of embarking upon lean agile processes such as test driven development.
The reality is the other way round - In fact, almost all aspects of lean agile
methodologies in general and Test Driven Development in particular such as Development of unit tests first, development in small increments, continuous integration, very short
iterations, and flexibility over rigid processes are ideal for outsourcing environment.
In a study done by Vishal Sachdev and Kishen Iyengar, researchers at the University of Texas at
Arlington found that agile practices such as Test Driven Development
are actually very useful for offshore development. They specifically evaluated adoption of agile software
development in the context of outsourcing development offshore to countries such as India. In their study, they report that
“... continuous testing/integration,
test first development and short iterations seem to be the most important agile
practices which are used in Outsourced Information System
Development and show clear benefits to companies.” The authors of the study conclude “While some communication and documentation overheads are required to
compensate for the distance…the end result is more efficient and cost effective
than traditional development.”
Industry veterans such as Scott Ambler of IBM reinforce this study. Mr. Ambler believes that use
of agile methodologies in software development outsourcing
is “inevitable, particularly if the buyer of such services wants to optimize
its resources spent on such efforts and the seller of such services wants to
compete effectively against lower labor cost countries!”
In another study, Rajiv Sabherwal, who is the Professor of
Information Systems at the University
of Missouri System s. Sabherwal, identified four levels of trust required for
successful outsourcing.
Of-course, Test Driven Development needs to be adaptations to address factors unique to off-shoring. A big
difference arises from geographic distance. This has been overcome by the use of
Wikis to replicate the intense consultative process that is key to Test Driven
Development, and increased documentation.
The increased work requirement for such adaptation is more than offset by the improved productivity
arising from the Test Driven
Development methodology. The
compounding effects of improved productivity of Test Driven Development, and lower costs of offshore resources really fit well with the super lean IT budgets of this phase of economy.
Yash Talreja, Principal, The Technology Gurus