DevSmart

Best Practices for Dev Outsourcing

Some useful guidelines for choosing the the right IT partner.

When you need to launch a new software development effort, time is of the essence. You need skilled software engineers to hit the ground running and deliver immediate value. You don't have the luxury of unlimited time and budget to recruit and hire the best IT talent in the business, so you turn to an outsourcing partner.

But how do you choose the right IT partner? Here are some guidelines for choosing a software development partner, and smart questions to ask to ensure you'll "get it right" the first time -- and avoid costly mistakes.

Choose a software engineering firm -- not a resume database.
All too often, IT outsourcing firms are little more than temp agencies, many of them managed by sales and recruiting professionals, not software engineers. If you ask for a .NET programmer with SQL Server experience to build an e-commerce application, the request triggers a keyword search in their resume database that yields potentially dozens of candidates.

The process isn't very different from posting to your own online job board. You don't save time, the firm offers little added value and you're not getting a quality result.

Look for the firm's renewal rates -- a key quality indicator.
If an IT partner truly operates as an extension of its client, it'll be asked to come back again and again. The reason why IT firms win renewals has everything to do with the quality and consistency of their engineering staff. If the firm assigns solely contractors or 1099 staff, the individuals will have little loyalty or commitment to their employer.

When clients renew their IT partners, they typically want the same people who did great work for them before. The top-tier firms typically provide generous benefits and compensation packages, even stock ownership plans that motivate their top people to stay with them for the long haul. The best IT professionals will be attracted to firms that invest in training and professional development.

Know the hidden costs of offshoring.
It sounds like a simple choice -- the difference between paying $90 to $125 an hour versus paying $20 to $40 an hour. That's the typical difference between a U.S.-based software engineer and an offshore developer from India, China or other lower wage countries.

Unfortunately, it's not an apples-to-apples comparison. Time zone issues, language barriers and cultural differences are the three biggest hurdles facing companies using offshore service providers, according to research firm IDC.

The fact is, offshoring can be a smart choice if you have the ability to clearly document and package your requirements in detail. The danger is that you'll get exactly what you ask for, which can be problematic. Because of cultural resistance to questioning authority or simple language differences, you may get a very literal interpretation of your request, with no thoughtful pushback.

If you have a large development project requiring 25 developers or more, and if you have a mature, well-worn software application with requirements that can be easily captured and documented, the economies of offshoring are well worth it. A $25 hourly rate is significant when you have 100,000 hours of development work.

However, if you're developing innovative new software that's at the core of your business, it's much more difficult to define your requirements in advance. These "crown jewel" projects are highly iterative, with flaws identified and corrected along the way, and requirements frequently adjusted and fine-tuned. This kind of development should be done close to home.

Beware of fixed time/fixed pricing projects.
The attraction of fixed-bid pricing is clear. The alternative, pricing by the hour, conveys the uncomfortable impression that the meter is endlessly running, with incentives for the outsourcing firm to prolong the project. And when the budget for software development is $150,000, no one wants to tell the boss the final price tag might be $175,000.

If the agreement is truly a fixed bid arrangement and the client won't approve any overages, the outsourcing firm has to make some hard choices. As the end of the project approaches and it becomes apparent that it'll require more effort than was estimated, the vendor is pressured to pull his high-priced "rock stars" off the project and assign more junior staff to keep the project profitable. In the end, the fixed bid isn't such a bargain after all.

In an ideal world, the software development partner will be motivated to do the best work possible as efficiently as possible, while respecting the client's budget. This is best achieved in an hourly pricing model where there's constant communication with the client about anticipated budget and resources, giving the client decision-making control every step of the way. By doing early prototyping to clarify the project's objectives, the outsourcing partner should be able to estimate the hours required to do the job, plus or minus 10 percent, while clarifying the areas where there might be potential trouble spots.

About the Author

Andrew Gelina is the CEO of Syrinx Consulting Corp., a Microsoft Gold Certified Partner specializing in .NET and SharePoint technologies.

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube