Home > Software Quality News > How to control software quality in offshore development projects
Software Quality News:
EMAIL THIS

How to control software quality in offshore development projects

By Colleen Frye, News Writer
28 Mar 2007 | SearchSoftwareQuality.com

Software quality news and advice
Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google

Offshore development may save an organization money, but it can also create software quality challenges. In addition, it's difficult to use more agile development methodologies when you have geographically dispersed teams. But there are ways to mitigate both issues, experts say.

One issue with offshore development can be increased defect rates, according to Michael Mah, a managing partner at QSM Associates Inc. (Quantitative Software Management) in Pittsfield, Mass., and a senior consultant with Cutter Consortium.

"We're finding from our research that projects that are multishored pose greater challenges in optimizing that communication between geographically disbursed teams," Mah said. "Projects that are increasingly being driven outside North America, or outside Europe, to a lower-cost labor market, is resulting in project defects actually rising."

Our development approach is agile best practices. We're ensuring quality by taking lean manufacturing principles and applying that to software development.
Gary F. DeGregorio
Vice president, ThoughtWorks

He added, "That's not to say that in the end the production code might not meet a high level of quality. It could if people take the time to work out the additional defects through testing, but that flies in the face of tight deadlines."

The practice of specifying a lot of the requirements up front also flies in the face of agile practices and contributes to the quality challenge, said Joe Niski, an analyst at Burton Group, based in Midvale, Utah.

"The recommendations you typically see for companies considering [offshoring] are that you need to be even better at specifying requirements upfront," he said. "At the same time, we've got experience saying that trying to specify so much upfront doesn't work."

Niski continued, "Big [offshore] houses have proprietary methodologies that are still very 'waterfall-ish.' No matter how much you try to specify software upfront, it's hard for customers to have a real idea of what they need until they can see something onscreen and interact with it."

Distributed teams also a factor
Even if an organization doesn't utilize offshore development houses, distributed teams are just a fact of life in our global economy. And distributed development projects face many of the same challenges as offshoring.

"Even though you have email, even though you have conference calling, there still remains an inherent part of design where anything that's going to be less than when you have people in one room [is less than ideal], and yet the realities of today's workplace is you don't always have the luxury of having people in a room," Mah said.

"Today you've got two very actively discussed philosophies of developing software," Mah added. "One is using lower-cost offshore labor, and the other is developing it with an agile team. At its very essence, agile development or XP isn't something that tends to be outsourced. It doesn't lend itself to be outsourced very well, but some people will want to try that."

In fact, Gary F. DeGregorio, vice president of global IT consultancy ThoughtWorks, said his organization, which has offices in the U.S., the U.K., India and China, does just that.

"We use the same practices with our distributed teams as our co-located teams," he said. "Our development approach is agile best practices. We're ensuring quality by taking lean manufacturing principles and applying that to software development."

To make agile practices work for distributed or offshore teams, DeGregorio offers these tips that ThoughtWorks follows:

  • Focus on short iterations and quick feedback cycles.
  • Do upfront testing, i.e. test-driven development and unit testing.
  • Incorporate a high degree of automation, particularly around regression testing and continuous integration. Use lightweight regression testing tools.
  • Keep up with development iterations and regression testing.
  • Overcompensate for communication and collaboration.

DeGregorio's last point is perhaps the most critical, he said. "The burden is on project managers, iteration managers and team leads. There is a high degree of communication and coordination involved with distributed teams. There are late night/early morning handoffs between teams, a lot of conference calls, one-on-one phone calls, the use of [instant messenger], and a strict discipline toward keeping collaboration tools like wikis up to date."

DeGregorio also recommends rotating team members so they can meet the clients and be more involved with planning. "Making sure rotations of offshore [workers] coming onshore and onshore [workers] going offshore during the course of a project really help[s] in terms of transferring the body of knowledge and interpersonal relationships."

For organizations that engage firms such as ThoughtWorks for distributed or offshore development projects, the biggest concern is not so much quality but visibility, DeGregorio said. "How do they know work is being done? How will they get status? How will they interact with the team? Maybe they're not so much focused on the cleanness of code, but will the application do what they envision? Will they be able to document business needs if the team is not co-located?"

Project management resources
Agile development across the continents

Agile project management tool from ThoughtWorks expected in June

ThoughtWorks allays those fears through communication and transparency of process, DeGregorio said. They do so by making sure the client has full access to the repository and by using online dashboards for the client to see projects' defects statistics and the status of iterations."

ThoughtWorks also brings the client into the planning process and makes sure there are meetings throughout the iterations. "The more we can engage clients to participate and assist in the review of iterations, the prioritization of requirements, and understand the risk of mitigation, the more comfortable they'll be," DeGregorio said.



Tags: Outsourcing software projectsSoftware project management methods and approachesAgile software developmentVIEW ALL TAGS

Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google



RELATED CONTENT
Outsourcing software projects
Software security: Removing insecurity from outsourced development
How Covad made the switch to a distributed agile development process
QA manager role depends on communication, planning, capacity
The future of software testing
Offshore outsourcing projects: Seven things every PM should know
Trust on a global scale
Collaboration and communication tools for virtual meetings
Project management tools and strategies: Outsourcing strategies
Project management tools and strategies: Communication and collaboration tools
Testing models and outsourcing

Software project management methods and approaches
Five steps to fostering better software tester and QA results
How software testers can get deliverables without nagging
Tasktop brings task management into the application lifecycle
Software expert on Agile's rise, avoiding project management mistakes
Ways software project managers can cope with recessionary trends
James Bach interview: Dispelling software testing myths
How to improve software project requirements estimates tutorial
The QA team's role in application performance evaluation and management
5 ways to answer executives' unfair software test, QA questions
Adaptation in project management through agile

Agile software development
How to deal with iteration issues in Agile
Flexibility and teamwork proven traits of Agile team maturity
How to stop developer vs. tester, quality-killing blame game
Using Agile, scaling back helps software projects in recession
How to improve software user acceptance testing practices
How testers can handle switching to Agile's short iterations
Testers debate differences between waterfall, Agile test automation
Tasktop brings task management into the application lifecycle
Test-driven testing face-off: Waterfall vs. Agile
Accelerating Agile testing with computer assistance

RELATED GLOSSARY TERMS
Terms from Whatis.com − the technology online dictionary
collaboration diagram  (SearchSoftwareQuality.com)
Gantt chart  (SearchSoftwareQuality.com)
PERT chart  (SearchSoftwareQuality.com)
rapid application development  (SearchSoftwareQuality.com)
Software Process Improvement and Capability dEtermination  (SearchSoftwareQuality.com)
work breakdown structure  (SearchSoftwareQuality.com)

RELATED RESOURCES
2020software.com, trial software downloads for accounting software, ERP software, CRM software and business software systems
Search Bitpipe.com for the latest white papers and business webcasts
Whatis.com, the online computer dictionary



Software Development Methods - Extreme Programming, Agile Programming, Scrum
About Us  |  Contact Us  |  For Advertisers  |  For Business Partners  |  Site Index  |  RSS
SEARCH 
TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations' technology projects - with its network of technology-specific websites, events and online magazines.

TechTarget Corporate Web Site  |  Media Kits  |  Site Map




All Rights Reserved, Copyright 2006 - 2009, TechTarget | Read our Privacy Policy
  TechTarget - The IT Media ROI Experts