Startups: Evaluating Outsourcing Partners
23 August 2012
Startups are constantly in the need of faster and higher quality development, but finding the right outsourcing partner must be handled with care.
For startups in need of software development, outsourcing can be a hit-or-miss strategy. However, by understanding what to look for in a potential service provider, startups can benefit vastly from readily available resources, flexibility in scaling up and down a remote team, and the obvious cost-advantages.
To ensure the success of outsourced development, rigorous analysis of potential service providers is essential. After being on both sides of the startup-service provider relationship, I’d like to suggest a methodology that startups can use to find the best offshore service provider.
Determining code quality
While there is no silver bullet in predicting code quality, it's important to remember that a service provider’s references, QA framework, and previous work can all help determine whether or not a service provider will deliver against your expectations. That being said, determining quality of the final product is arguably the toughest area to evaluate.
References should include case studies or live examples of work. You may also ask to speak with previous clients, particularly other startup CTOs. The needs of a large corporation are vastly different from those of a tech startup. Flexibility in business requirements, for example, is a quality that is rarely important for corporations, but a typical working environment for startups. You should require this in a potential service provider so make your expectations clear.
A service provider’s quality assurance framework shows that it is committed to creating clean, elegant code. The emphasis here is not necessarily on the practicality of a provider’s QA tests, and frankly it’s easy to answer this question through textbook theories on checking and testing code. It is however important to ask about quality assurance and see what answer you get back. Proceed with caution if your questions regarding QA are not met with thoughtful answers.
Work samples are an excellent indicator of how a developer will handle your project. Ask potential service providers for work samples that are similar to your project, (e.g., an impressive web app is not indicative of success in the development of your mobile app).
Finally, look for indication that the service provider understands and is comfortable with their strengths. Be wary if a service provider claims to master every technology stack.
Troubleshooting communication issues
Poor communication is one of the biggest challenges in entrepreneur-developer relationships. Communication problems can stem from poor call quality, a lack of clear guidelines or culture differences – all frequently occurring situations. Setting up clear communication expectations with your service provider is key.
A test call ensures clarity at the outset of an entrepreneur-developer relationship. Schedule a test call at the office where most of your project development will take place, and have that call include members of your potential dev team. This will give you a good indication of future calls.
Set clear expectations for communication. Determine how you’ll get in touch with your point of contact, what times are appropriate to call, when you will hold regular status calls, and how quickly you can expect email replies. Ask your service provider about any local practices regarding holidays or customs during which developers will not be available. In a startup environment it’s particularly important that you’re able to get in touch with your developers at almost any time.
Project and senior management
Effective project management usually ensures that communication problems are resolved quickly, that developers can adapt rapidly to new needs, and that full transparency between the domestic and remote teams is maintained. Make sure that the project managers on the service provider’s team have experience working with clients with similar business cultures as yours.
Project Managers also determine how the team works. Ensure that the remote development team is familiar and able to work in scrum, in sprints, and through agile workflow. See if it makes sense to have virtual stand-ups and whether the scrum master can at times be a member of the remote team.
An often overlooked crucial factor is senior management. Ensure that a potential service provider’s senior management have solid corporate and startup backgrounds. A strong background will include demonstrated success in growing a company, a strong clientele base, and the ability to efficiently scale operations without sacrificing quality. The difference in mutual collaboration is vast if the senior management has startup experience and can instill a startup mentality at the service provider’s development centers.
Is there an ability to adapt?
In a startup, requirements change almost daily, which is why startups often prefer to have their development teams in the same space, or at least the same time zone. However, an offshore team with whom you speak daily can be just as effective if the team is flexible and willing to adapt to new requirements.
Determine how receptive a potential service provider is to a flexible work environment by openly discussing how “on the fly” adaptations can be accommodated. Specifically, talk about how the need for flexibility (and sometimes drastic changes in a project’s requirements) will be expressed in the contract.
Coming to a fair price
There is a deliberate reason for leaving cost as the last area covered in this article: Price has proven to be a poor indicator of quality in this industry. This fact seems counter-intuitive, but due to several unconventional variables, such as the geographic location of developers, aggressive price competition among service providers, and cost-optimization in subsidiary functions like sales, price cannot be relied upon to determine quality.
Assess a service provider from all other angles before thinking about price. Bear in mind that many service providers have made a conscious decision to offer competitive pricing, so if the bid offered is below your expectations, don’t be alarmed. Have faith that if your other criteria are fulfilled, you have likely found a solid candidate for your development needs.
Consider quality of code, communication, project management, flexibility, and finally, price, as you speak with different service providers. If you have a good experience with a certain service provider, spread the word! There are countless fellow entrepreneurs in need of the cost advantages and fast project delivery that is made possible through outsourcing software development. ■
Author: Mikko Tamminen is Director of International Markets at Genweb2
Editor: Katherine Rea is a journalist living in Los Angeles. She has extensive experience working with tech startups, particularly in Silicon Valley.