Tuesday, October 7, 2008

Outsourcing Software Development - The Right Way

We started Rapidsoft Systems three years back in 2005 to create a software service company that provides professional, and world class software development services to businesses in the US, Europe and elsewhere. After spending over 20 years in the software and product development in the US, and having used some big names in outsourcing Indian Industry, I was very dissatisfied with the poor quality software or services that some of these big companies were providing specially in the technology sector. So, that dis-satisfaction led to starting of Rapidsoft Systems. In the last three years, we have seen numerous projects related to large web 2.0, ecommerce portals, mobile applications, networking servers, language translators, embedded software and even a wireless LAN gateway/ switch development for a major multinational corporation. We believe we have done a great job on each project and also learnt a lot in the process.

Each project has its own challenges and each customer brings his or her own challenges. Some customers have well defined requirements for their software projects, and come with firm requirements and others are just trying to describe what to develop on the phone. Despite these individual differences in the customer's level of preparedness, each customer needs a quality product at the minimal cost, and should get one.

I keep on telling our software engineers we cannot afford to not give our best to every project that we undertake - well defined requirements or flexible requirements. A software is only as good as the people who develop it. Software development is far more than just coding. Is language chosen right for the job? Are algorithms are chosen correctly? Do the engineers know how to write a test plan and test a software? All these things make a big difference in the final result.

Other day, a customer came with a code that a local contractor has developed for them for a mobile phone application. Despite spending three months, Software wasn't functional. It wasn't properly written to meet the mobile carrier's requirements how an application should behave. Finally, the customer gave up on the gentleman and came to us to salvage whatever we can. The whole process delayed customer's product introduction by six months since salvaging a badly written software, often, is lot harder than just doing the fresh development. The point that I am trying to make it choosing inexperienced individual software developer can appear to save the money, but may cost a lot more than if you had begun with a good solid team. So, here are my simple bullets for choosing software services vendors for outsourced software development.

  1. Know the background of management team. Do these people have the software development background and necessary educational background to develop software. In India these days, everyone from a construction company owner to a former restaurant owner has started a software company. You should definitely avoid these companies whose owners have no direct software background. Why would you trust a company whose management is not quilified in the area? So, read carefully the background of the management team. Have they worked on applications similar to yours. Don't trust the posted bio (which is often fake) - instead demand to speak with the management team member.
  2. Can developers speak English and are available in your time to talk to you is very important. A lot of things can be done by emails, but there are times only a phone conversation is needed to clarify. How would you communicate if other side cannot speak fluent English.
  3. Project management - who manages the projects in the company and if things fail, who you can deal with to get the situation corrected. It is so important as standard for project management in the US and other western countries are very different than in developing countries. For instance in India, unless timeliness is enforced from the US, it is hard to get anyone to commit to a given time. So, insist on US based project managers.
  4. If you are signing a contract with a foreign entity with no US operation, you have no legal recourse to any thing. Legal systems in most developing countries, including India, are broken. In India, it takes 20 years to get a simple case to go through legal process, if you are lucky. So, insist on US based staff, and the company entity, and US legal jurisdiction.
  5. Many people like to see sample jobs and ask for customer references. But these are like job references. Do you think any one will give you name of a customer who is not going to give them a favourable response? Therefore, I suggest speak directly with the management team member of the company, ask good exploring questions, and you will learn a lot more about a company's operation than just by references alone.
  6. Insist on a clear development methodology and project plan. Don't leave things vague as in software - unless agreed well defined in advance - a feature means to different things to two people. So, be clear and insist on regular updates. Most importantly, insist on well written requirements and design documents. This alone will ensure that you know what is being developed and how this is being developed.

I hope this helps if you are looking to outsource any software development. And, if you would like to talk to us - you can visit us at http://www.rapidsoftsystems.com/. Sorry for rather shameless advertising, but we promise to give you no obligation help whether you use us or not for your next software project.

3 comments:

Rahul said...

Leading Japanese Company hires Rapidsoft Systems, Inc. for Mobile Application Development and Porting. For more please visit www.rapidsoftsystems.com

Rahul said...

RapidSoft Systems, Inc. provides cost efficient porting solutions for all major platforms. Rapidsoft team ports for all platforms - be it J2ME or Symbian or BREW or Windows Mobile or BlackBerry or iPhone. Mobile Porting services offered by RapidSoft Systems, Inc. can be divided into the following areas:

• Cross platform or Intra platform porting:
• J2ME to BREW, Symbian to BlackBerry, J2ME to iPhone etc.
• Operator or Carrier specific porting.
• Most US (AT&T (Formerly Cingular), T-Mobile, Sprint, Verizon), European (Vodaphone, Orange, Virgin Mobile etc.) and Canadian Carriers (Rogers, Telus etc.)
• Inter platform porting:
• Upgradation of OS versions, new device compatibility, new features addition or enhancement, etc.

Rapidsoft has the experience of porting applications in more than 1500 handsets across the globe for diverse platforms and operators.

Besides Mobile applications, Rapidsoft develops software for large server based applications, web applications, medical applications and wide variety technology solutions.

Rahul said...

Rapidsoft Systems, Inc. is an Outsourced & Offshore Product Development company with headquarters in the United States and product engineering centers in United States & India. It partners with technology companies and software-enabled businesses to help them bring quality software products to market through dedicated or on-demand offshore engineering teams.

Rapidsoft Systems, Inc. have main office in Princeton, NJ USA , US R&D Center in Mercerville NJ and sales, support and development offices in Palo Alto, CA, USA, Singapore, Bombay and New Delhi (India).

Rapidsoft Systems, Inc. competence lie in to offer full software product lifecycle services in verticals such as Mobile, Networking, Healthcare, OSS, VoIP, Embedded, Business Intelligence, Security, Finance, Logistics, Social Networking, Media & Entertainment, Gaming, Travel & Hospitality, Education & Training, Web2.0 and Retail. Its technology expertise includes Java/J2EE, C/C++, Ruby on Rails, RDMS, Open Source, SaaS/On-Demand, Siebel CRM, Android, Brew, Blackberry, Windows & iPhone, among others.