Wednesday, July 18, 2007

Best Practices for Dev Outsourcing

Source: Reddevnews

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.

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.

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.

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. 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.