Offshore Software Development

As we all move ahead in this competitive age, those who are not outsourcing are at a competitive disadvantage against those who are outsourcing. Here we enumerate three main reasons why you should consider outsourcing software development:

Cost: The primary reason customers started getting software written offshore is the same reason people vacation in Mexico: it's cheaper. The hourly rate for a skilled developer has increased dramatically over the past few years. As if we all programmers run on gas

By outsourcing your software development, you can have a whole skilled team working on your project for the same or less amount than hiring one on-site software developer. You can get more of your projects done, faster, easier, on time and under budget. You do not need to worry about hiring costs, training costs, finder fees etc. You can be freed from the constraints of a financial straight-jacket and get your killer dream apps created.

Time: With the current economy and resource shortage, IT departments are stretched too thin already. They do not have time available to maintain company’s existing software systems, let alone create new applications or rewrite an existing old application. With outsourcing software maintenance you can free up your IT department’s time to work on strategically important tasks or you can have a killer application developed by Technosoft and not waste any of your existing IT’s valuable time.

A key executive time saving area, often ignored, is report writing. Executives spend enormous amount of time gathering data and create ad hoc reports of their choice. These tasks can be outsourced to an experienced data reporting company (Technosoft’s reporting wing is very skilled in creating complex business reports) saving the executive’s valuable time for other leadership tasks.

Finally, software development organizations are decreasing their product’s time to market by outsourcing their software development. And companies, using technology as a competitive edge, are outsourcing to have technology help them start saving time now.

Skilled Resources: Its not about just saving cost, its about adding talent too (says Randy walker of IBM about outsourcing). Finding the right resource is very hard these days. And once you hire them it is very hard to retain them. By smart outsourcing you instantly inject skilled resources into your project on an as needed basis. You do not have to worry about spending enormous amount of time finding and retaining skilled resources. Software Outsourcing companies have equally good, or better, resources readily available. For example, Technosoft has majority of its workforce certified by technology vendors (Microsoft, Sun Microsystem, IBM, Oracle, etc). They are well versed in different industry verticals. Technosoft’s focus on skill-set, effective communications, software processes, quality and leadership provides you with an excellent opportunity to utilize hard to find talent at an enticing price.
Good Luck!

Counter Arguments

Communication Barrier: One of the major issues, related to outsourcing, is communication. It is usually hard to communicate with IT resources in house, let alone communicating offshore. This is a legitimate concern and such that needs proper attention. However, those who have worked with software developers can attest that effective communication is not ensured by sitting in the same room or ability to speak same language efficiently. Effective communication, in software development, takes place when software developers give proper respect/attention to end users and follow proper software development processes to document, agree upon and deliver according to customer’s requirement. We use industry standard techniques to illustrate our understanding of your requirements. All our engineers are adept in using all types of UML diagrams. We create use cases, flow charts, state charts, sequence diagrams etc frequently during all phases of software development. Further details about how we ensure effective communication at each phase of software development can be found here. In addition, details of our processes can be found here.

We use all available communication tools/means available to ensure that effective communication takes place between our skilled resources and clients.

Different Productivity Levels: Some opponents of outsourcing claim that productivity of the offshore workers is different compared to an on-site worker. There is definitely truth to that. However, same rule applies to developers working at different organizations. The general finding that "There are order-of-magnitude differences among programmers" has been confirmed by many studies (Curtis 1981, Mills 1983, DeMarco and Lister 1985, Curtis et al. 1986, Valett and McGarry 1989, Boehm et al 2000). So when considering outsourcing, you would want to partner with a company which places greater emphasis on finding the best talent and is investing on constant developers training. A proof of this can be found by inspecting the number of certified resources a company has. For example, Technosoft has majority of its developers certified by a trade vendor such as Microsoft, Sun Microsystem, IBM, and Oracle etc.

IT Department Backlash: A lot of companies are concerned about IT department’s back lash. Again, this is a serious concern and it is all natural. Outsourcing is not meant to replace existing resources. It is suppose to make them efficient and take burden off of them. This is some thing that no outsider can help much with. You will need to use your leadership skills to effectively deal with the backlash. We have seen that as benefits of outsourcing become evident, people start to accept it in a positive way. Majority of the companies are outsourcing successfully these days. The only tip we can give here is to start small and outsource projects that no one in the IT department wants to work on, such as maintenance projects.

Time Zone Differences: In offshore engagements time zone differences are blessing and problem at the same time. Time zone difference becomes problem when you and your offshore partner do not have a common few work hour window to communicate effectively. Blessing in a sense that you can have people working for you while you are sleeping. Imagine your customer reports a bug 4:00 PM, overnight an offshore developer fixes the bug, deploys it at your controlled environment and then offshore QA tests and certifies the bug in your environment. When your IT people come in, the bug is already fixed. The key here is to find a partner which has few hours of overlapping time. This way you can get best of both worlds.

Intellectual Property Issues: This is a serious concern and the only way around it is to deal with a US based offshore company. A US based offshore development company bounded with legally enforceable contracts is your key to almost all IP issues. Technosoft is a Connecticut based company. It was incorporated in 2004. We take Intellectual property very seriously and would be ready to sign an NDA at the very start of engagement. So even if you decide to outsource to another company after exploring your options. Your idea will be safe with us.

Too Complex Environment to Outsource:This is a typical NIH (not invented here) type of argument thrown by IT folks to avoid Outsourcing. It is true that some organization’s technical infrastructure is more complex than others but with the new technological tools and some smart decisions, IMHO, it is never too complex to outsource. In this case you have mostly three options to ensure smart outsourcing takes place without chewing up huge amount of your in house IT resources’ time.

1: Make smart use of Imaging software such as VMware to create image file of your environment. This can save enormous amount of time with configurations etc. You will need to make sure that a: proper licensing arrangements are in place and b: you do not have sensitive data getting on to the image files. If you have a test or training environment then its best to make an image file of training environment otherwise you can always create an image of production, deploy the image on one of your servers and delete unnecessary data from databases.

2: Instead of sending your environment out, you can bring workers into your environment by using VPN, PCAnywhere, VNC, gotomyPC or similar technologies. You will need to make sure that when you bring a developer in to your environment, you have properly secured that particular PC. It will be advantageous if you turn on recording capabilities of the tool. This will be similar to having a nanny cam record new nanny’s activity for a few days before you are comfortable that she can take care of your baby. You can even have greater control by using supervised visits by using technologies such as WebEx, GotoMeeting, Live Meeting and Dim Dim. With these technologies remote session will be initiated from your organization each time without a permanent setup requirement. Both of these types of technologies mostly work on all networks.

3: Separation of concerns is a great idea not only in software programming but also in Outsourcing. In a non-complex environment, and in most outsourcing cases when starting to outsource, your outsourcing vendor will just install the same third party software you are using and will start developing software for you. However, if you are outsourcing maintenance projects or have lots of in-house applications that need integration then chances are you will need to help create a replica of your technical environment for your outsourcing partner. The key here is to compartmentalize your technical environment and only provide access to, whether remote or in house, the must have technology for the tasks/projects to be assigned to the outsourcing vendor. Remember you can compartmentalize technologies

By Module (application codebase installed) such as your EMR Enterprise Medical Records application or your Trading application etc.
By Technology- such as Websphere Application Server, Sharepoint, Biztalk, IIS, Appache, Oracle, etc.
By Data file, such as an Oracle database schema or SQL Server database file.

4: Use of configuration files: Whether you have a complex or non complex environment, this tip is for you. In these days, technology providers are trying to provide customization by configuration files. They create a basic one size fit all version of their software and then each customer customizes the software using configuration files. These files are stored in the form of XML, ini and registry settings. You would also want to consider configuration file This is pure common sense but you will be amazed to see IT folks often ignoring this concept in the “complex environment” scenario. When compartmentalizing environment you need to make sure that only the absolute required module with absolute required technology with absolute required data file structure should be part of the replica environment. No matter what option you choose, make sure your offshore partner is ready to invest in the installation and configurations personally. IMHO, a customer should not be paying the outsourcing company for ramp up time. A good offshore vendor will either totally eat the ramp up cost or would ask to get paid, for ramp up time, after the project becomes a success. Technosoft does not charge for ramp up costs.

Hard to Evaluate Offshore Companies: Getting an offshore partner is equal to hiring a new employee. Do you have the processes in place to evaluate a potential employee? If so, use same processes to select your outsourcing partner. Ask for resumes, interview employees of the potential offshore company. And start with a test project. Look for standard industry verifications. A company with a CMMi (Capability Maturity Model Integration) successful appraisal means their commitment to employ software development processes and a US respected organization (Carnegie Mellon University’s Software Engineering Institute) providing an unbiased opinion. Look for vendor certification to identify company’s commitment to a technology. Technosoft is a CMMI Appraised, ISO9001:2008 certified company with major partnership with Microsoft, IBM, Sun Microsystem, and mySQL.

Last but not the least, ask for references and check the references. This will give you a good overview of where a company stands with existing customers. Please see our testimonials here

Industry Knowledge: Another counter argument to outsourcing is offshore company’s perceived lack of US industry specific knowledge. Industry specific knowledge is absolutely important and without this knowledge you would find yourself spending enormous amount of time explaining how your industry work to an offshore company. The key here is to find an offshore software development company which has in-depth knowledge of your industry. For example if you are in healthcare industry then you would look for a company who has developed solutions conforming to HIPAA privacy and security standards. You would want to deal with a company who is proficient in healthcare standards such as EDI, HL7 and HIPAA, etc.

We are dedicatedly working for Healthcare Software Development and Integration development. Many of our clients are well versed in software development and have healthcare solutions deployed at main hospitals. We augment their resources with our HL7 integration, HIPAA privacy & security services.

Please see our healthcare Software development expertise page for details.

  All the best.

To discuss about our services, expertise and how we can help you, please contact us at or call 203-676-8299.