Runtime - The Software Outsourcing Newsletter
for Executives and Investors
from Accelerance and Steve MezakIn this issue: Outsourcing research is different than hiring programmers to write your software. You need special talents in an offshore team that can come up with innovations for your software development.
Outsourcing Your Research Before Development
Sometimes you know exactly what you want your software to do. You can easily hire an offshore programming team or a freelancer if you have a small project, and direct them to develop what you need.
Other times, you may not be so sure. You need someone to research what is best, or even possible, before software development can begin. Outsourcing of your research before you begin development takes a special type of engineering team.
Woe to the company that outsources to one type of offshore team when they need the other!
I have a couple of clients right now that are in “research-mode” as they use offshore outsourcing to create a software product. One requires some innovative software to run under Windows that communicates with a website. The other needs an efficient screen capture solution also running on Windows.
In both cases, the desired software functionality can be described in a paragraph or two. But that brief description is just the tip of the ice berg! In both cases there are three or more approaches than need to be compared and evaluated for practicality, performance and ease of installation.Now imagine hiring an offshore vendor with programmers who are waiting for an exact and detailed specification. And all you provide is a two paragraph description!
Clearly, that is not going to work. You need an experienced software architect or designer to “play around” with the various approaches and then identify the pros and cons. The research they do is an interactive and collaborative effort with you.The holy grail of outsourcing your research is to find a vendor with deep experience in the technology you want to use.
For example, I worked for a company that found a small contract programming firm with a software application they had already developed for one of their clients. They retained rights to the software and were able to offer it to us as the basis of our first product. It was an exact fit for what we needed!
But that’s not always possible. More likely you will find a firm that has experienced senior people with some knowledge of your target technology.
Unless your vendor is going to provide these senior people, you will be wasting your time trying to get advanced work out of a junior team.
Watch out for vendors that are such experts they may already be developing a product of their own. It’s okay if they have strong technical knowledge with weak limited sales and marketing skills. But it can be very dangerous if they already have a product and need just an idea –- your idea! –- on how to market their own software without you.
Check the references of your prospective outsourcing vendor to confirm they have experience in your technology and have done similar research work for other clients. Do they have the ability to work independently and collaborate with you when only needing clarification? Can they work independently to evaluate options and present the results?
You will also need a good definition of completion for your research. It can be finishing a prototype code that will show whether your software idea will work with acceptable performance or not. The goal of the prototype is to demonstrate the feasibility of your approach and to minimize your technical risk in developing the software.
Prototype code is an experiment and not a complete application. There is no point in making a fancy user interface or creating test plans at the prototype stage. A more rigorous software development process can follow on the heels of a successful prototype.
One of the clients developing a prototype now will also use it as a demo to early prospective customers. Meanwhile the offshore development team will continue working to convert it into a complete and supportable product.
Be prepared for the possibility of failure in your research. In other words, your idea may not be practical after you will have paid for several man-months of good-faith effort to explore the technology. It’s not the fault of the offshore team if you discover your idea will not work.On the other hand, you should make changes when you are not getting the steady progress you need. You should get solid feedback about what works, what doesn’t, and why. Don’t settle for confusing or incomprehensible results. Your outsourced team should commit to the timely completion of their research activities.
The key result of outsourcing your research is knowledge. Use that knowledge you gain to minimize the technical risks before you develop your software.
Similarly, you can get the knowledge you need from Software without Borders. The book is a rich source of the objective outsourcing guidance you need to make your research and development a success.
Software without Borders is available now on Amazon. See http://www.SoftwareWithoutBordersBook.com for a link to the Amazon.com website.
***
The Runtime Bottom Line: Researching software technology is different than writing code to a specification. Hire an offshore vendor that is experienced in researching new technical ideas and approaches. Use them to create a prototype that minimizes the technical risks of developing your software.
Until next time,
Steve Mezak
Accelerance, Inc.
Risk-Free Outsourcing
213 Garcia Avenue
Half Moon Bay, CA 94019
1-650-712-8990(c) 2006 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."