Why Offshore Software Development
As we all move ahead in this competitive age, those who are not outsourcing are at a competitive disadvantage. Here we enumerate three main reasons why you should consider outsourcing software development:
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.
For projects, you can have a whole skilled team working for the same or less amount than the on-site developer. In addition to that, you do not need to worry about hiring costs, training costs, finder fees etc. The process becomes faster, easier and under budget.
Due to lack of resources and economy shortage, IT companies do not have time available to maintain the 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 an 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. This saves 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.
3. Skilled Resources:
It’s not about just saving cost, it is 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 an enormous amount of time finding and retaining skilled resources. Software Outsourcing companies have equally good, or better, resources readily available. For example, Technosoft has the 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.
Counter Arguments to Offshore Development
Those who are not in favor of offshore development would argue that:
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 the 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, we also have a detail of our processes available 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, the 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 in constant developers training. A proof of this can be found by inspecting the number of certified resources a company has. For example, Technosoft has the 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 the IT department’s backlash. Again, this is a serious concern and it is all natural. The aim of outsourcing is not to replace existing resources. Removing the burden from them to take out their best is the main aim. This is something 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 a 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. Before your IT individuals come in, the bug is fixed. The key here is to find a partner which has few hours of overlapping time. This way you can get the 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, incorporated in 2004. We take Intellectual property very seriously and would be ready to sign an NDA at the very start of the 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:
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 a huge amount of your in-house IT resources’ time.
- Make smart use of Imaging software such as VMware to create an image file of your environment. This can save an 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.
- 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 into 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. Your organization will initiate remote sessions each time without a permanent requirement, using these technologies. Both of these types of technologies mostly work on all networks.
- 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 a 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, Apache, Oracle, etc.
- Data files, such as an Oracle database schema or SQL Server database file.
- Use of configuration files: Whether you have a complex or noncomplex 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 XML, .ini, or 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. After the success of the project, good offshore vendors either demand the ramp-up or they ask to get paid for ramp-up time. 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 the 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 employing 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 a major partnership with Microsoft, IBM, Sun Microsystem, and MySQL.
Last but not 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
Offshore company’s perceived lack of US industry-specific knowledge is another counter-argument to outsourcing. Industry-specific knowledge is absolutely important and without this knowledge, you would find yourself spending an enormous amount of time explaining how your industry works 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 the 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 the 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. Moreover, we have many clients 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.