Return to Archive


yellow line
Runtime - The Software Outsourcing Newsletter
for Executives and Investors
from Accelerance and Steve Mezak

8 Ways to Overcome Your Fears of Outsourcing

You have probably heard the stories. Software that does not work. Software that does the wrong thing. Money paid to set up an offshore operation that never produces any software. Can these outsourcing nightmares be avoided?

Of course. But it takes good management of your outsourcing.

The two biggest fears of outsourcing that I hear from prospects and clients are the fear of selecting a bad outsourcing vendor and the fear of not managing their work effectively. Let's assume you pick a great team, perhaps one of the proven Accelerance teams from around the world. Even then you may still have lingering worries about getting your software developed quickly. Here are eight ways you can use to manage your outsourcing and get reliable results.

(1) Milestone tracking - Your software design and plan for outsourcing should include some estimating and scheduling. The outsourced team should commit to dates for the completion of the milestones. Define your development milestones so they occur frequently and make corrections if they are not being met.

(2) Requirements tracking - Make sure the features you need are being completed properly in each release. You want to make sure your users will be able to perform all the activities with your software that provide benefit and deliver value. You don't want important details to be lost or forgotten.

(3) Daily monitoring of your outsourcing progress - No news is NOT good news. You need to communication on a regular basis with your outsourced team. This should occur almost everyday. You should at least have a regular email or conference call communication at specific days to make sure things are going well and that unresolved issues are not blocking progress.

(4) Continuous builds - Put a system in place to re-compile and build your software every time a developer checks in a source file. This detects errors and problems as they occur so they can be fixed quickly. This avoids a build-up of problems that often plague integrating the work of multiple developers and delays the software release. Open source software like cruise control will automate the continuous build process.

(5) Test-driven development - You should require your outsourced engineers to perform unit tests of their programming work. The pure definition of test-driven development is they create the tests first, before the feature is implemented. Writing the test first helps clarify what the software should do. It also builds a set of regression tests that can be performed later to check for basic system functionality.

(6) Integration testing and Quality Assurance - Testing of the individual software modules by the outsourced developers is not enough. You also need to test the entire system to make sure high levels of functionality and quality will be experienced by your users. Comprehensive testing requires automation to check all paths through the user interface. Requirements tracking verifies that the system delivers your required functionality when the software is used properly. A full QA process also verifies the software behaves well when users make "mistakes." You need both to make a good impression with your users.

(7) Collaboration for design and problem resolution - OK, things are going great but then there is an issue. The developers may not understand what you want a particular software feature to do. Or they may have implemented a feature incorrectly, or in a way you did not expect due to an ambiguous specification. This happens all the time. If the engineers are working in your office then you just meet with them to resolve the issue face-to-face. Of course, this is not possible when the engineers are thousands of miles away across one or more oceans.

But with the Internet you can get pretty darn close. An email or instant message conversation can often resolve the issue. Using the telephone is also an extremely useful tool and with VOIP software like Skype the communication cost is zero. The important point is that the tools are available to make long-distance collaboration a reality and enable extensive use of outsourcing to be practical.

For complex software development projects, team visits are invaluable. These visits are not for the resolution of specific issues but build greater understanding between the engineers and others assigned to make the project a success. Visits by team members to each other's country is recommended for maximum understanding and team bonding.

(8) Knowledge management and retention - You provide a specification to the outsourced team. Issues are resolved and clarifications are made. Then the software is delivered it it works well. But what if the outsourced team leaves the picture? Will you be able to pick up the software and make changes efficiently? Your answer is yes if you have gained the knowledge of how the software is written.

Any company that is concerned about knowledge management must have a core team here that is responsible for understanding how the software works. This knowledge can be gained by working with the outsourced team during development and by writing technical documentation describing the architecture and workings of the software created by the outsourced team. Sometimes this documentation is created by the outsourced team.

Whatever the source, I am not talking about a huge tome no one will read. You need simple installation instructions and architectural documents that can facilitate the learning process and enable your US engineers to deploy and support your software.

yellow line

How can you know if your outsourcing is working well? One company I know examines the source code produced by their outsourced team on a daily basis. Although this creates a deep familiarity with your software, it takes a great deal of time and seems like overkill.

Instead, establish an effective outsourcing management process to detect if your outsourcing is running into trouble so you can quickly respond and make changes.

On the other hand, many clients are surprised at the insights offered by an expert outsourcing team. "We didn't think of that!", has been said by more than one Accelerance client during outsourcing projects after hearing comments and suggestions from the outsourcing team. And questions from the outsourcing team about the specifications will lead to quick clarification of what your software should do.

Be clear about your end goal. You need to start with the end in mind. That goes for both the behavior of your software and the process you use to manage your outsourced development.

 

Vision Resources
yellow line
Are you wondering how you will select an expert offshore team
to develop your software?

Use the Accelerance Vision Resources(sm) outsourced vendor
selection service and cut the time of your vendor selection
process by as much as 90%.

Vision Resources leverages members of the Accelerance's 17
teams in 14 countries around the world.

Click here to learn more about Vision Resources

Accelerance, Inc. delivers impartial & expert strategies and services
for risk-free outsourcing of your software development.
Visit our web site at www.Accelerance.com

 

Until next time,

Steve Mezak

Accelerance, Inc.
Risk-Free Outsourcing

yellow line

www.Accelerance.com

213 Garcia Avenue
Half Moon Bay, CA 94019
1-650-712-8990

Contact me by email

(c) 2005 Accelerance, Inc. All rights reserved. You are free to use material from the "Runtime" eZine in whole or in part, as long as you include complete attribution, including live web site link. Please also notify me where the material will appear.

The attribution should read:

"By Steve Mezak, CEO of Accelerance, Inc. Please visit the Accelerance web site at http://www.Accelerance.com for more information and resources on outsourcing and creating great software products."

yellow line