Valuable Lessons: Working With Offshore Developers
This article originally appeared in the Summer 2014 issue of Plan Consultant. To view a PDF version, please click here.
We started working with offshore developers in 2005 and it was a nightmare. What was promoted as a low cost highly efficient approach turned into an over budget debacle. As with most offshore development initiatives it started with a referral from a trusted source. Our source introduced us to two Russian developers living in the U.S. that outsourced development to India, Jerusalem, and Russia.
A lack of ERISA knowledge, language barriers, and time zone changes all contributed to a horrible budget busting experience so we elected to change to a U.S. development firm. Working with U.S. based developers was a pleasant change of pace. The individuals we worked with were local, so no time zone challenges. They spoke English so we had no communication barriers to overcome other than educating them on ERISA.
We paid an hourly rate instead of a project based rate. Hourly rates ranged from $95 to $150 per hour. On average we paid between $125 and $135 per hour. After 5 years of working with U.S. based developers and blowing through a hefty 7 digit budget on development, the cost savings of offshore developers became too enticing to ignore. So, in 2012 we re-examined the option of offshore development and we are glad we did.
However, the reason we are having a good experience with offshore developers has as much to do with us as it does with the development team. With 8 years of experience (good and bad) under our belt, our perspective, based on the lessons we have learned, became foundational in establishing a successful offshore development outcome.
If you are giving consideration to developing a software solution, give serious consideration to each lesson I have outlined to improve your probability of success.
Never hire an offshore developer without engaging in due diligence. This requires that you interview both existing and ex-customers preferably in a similar field. If they lack experience in your field there will be a learning curve. If they don’t have experience in your field ask for a referral in a field they previously had no experience in of equal complexity and talk to those clients to see how they handled the engagement.
Good developers can adapt quickly but a key indication to their dedication to your success is their willingness to understand the business purpose behind your development project. If they don’t have an interest in understanding the business purpose (the what) and objectives (the why) they are not a good partner in helping you accomplish your goals.
Finally, if you are hiring an offshore developer to take over an existing application to maintain and build on, make sure they engage in their due diligence of your application before retaining their services. If they are not willing to invest time initially to understand your code they are not worth hiring. Don’t forget to secure the appropriate Non-disclosure and confidentiality agreements in advance of this review. The review should take one to three weeks depending on the complexity of the code.
Also, keep in mind that during this evaluation phase your offshore developer has most likely assigned the task to the best and brightest developers. Don’t be surprised but these individuals will unlikely comprise the team assigned to your project after you have retained their services and that’s ok. Their job is to evaluate your software and select the developers with the necessary experience to be efficient and effective on your behalf. That said, be prepared to provide training to the team that is assigned to your project once that engagement is memorialized.
Don’t Believe Everything the Referral Says
This is especially important when you talk to a past client. According to Standish Group CHAOS Report (2009) approximately 24% of the projects fail and 44% finish over budget so there is a high possibility that even a happy client will give you negative feedback.
To get the most out of your discussions with current and prior clients you need to ask the right questions which in far too many cases the consumer of development services doesn’t know the right questions to ask. Lack of experience and irrational exuberance are the down fall of many projects. In short, you can’t expect your developers to turn a poorly thought out plan into a wildly successful venture. If you failed to do your part you can’t expect them to do their part on-time, under budget, and with guaranteed success.
Retain a U.S.-Based Project Manager
It is a big mistake to assume an offshore developer can read your mind. Since they can’t, your best chance for success dictates you retain a project manager in the U.S. to coordinate all development projects. Equally important is hiring a project manager with the right attitude, patience, and sensitivity. U.S. project managers with a short fuse and that are easily frustrated can be devastating to your development success. Screaming at someone half way around the world is not going to ensure the project will be complete on-time or work as expected.
Focus on the following questions as you interview individuals for the job of project manager. Please note, anyone you consider for this role assumes they have experience managing projects. Unfortunately, a history of successfully managing projects is half the equation. The other half is dependent on the “X factors” that follow.
- Are they willing to speak with the developers at all hours of the day and night? You can’t expect your developers to do something you will not do.
- Are they willing to provide their developers with a detailed Statement of Work (SOW) in language the developers can understand or provide a detailed written description on every task you assign them? You cannot expect success unless you know they understand what you want.
- Are they willing to learn their culture? You don’t want to come across as an arrogant American. Understanding their culture is essential to achieving success.
- Are they willing to know their team? Developing a personal relationship with your developers demonstrates a willingness to understand what is important to them.
- Are they willing to create incentives? Offshore developers like to have fun. We have developed challenges for our team that has had great success in motivating them.
Develop a Statement of Work
Most projects fail because of a lack of proper planning so it is imperative that your U.S. project manager spend the time necessary to develop a detailed SOW that is easily understood and clearly communicates the objectives. We recently spent 9 months developing a SOW before we began developing the application. The SOW with attachments was approximately 150 pages. While some would call that overkill, we find that our developers not only appreciate the detail but are more efficient in developing the application on-time and as expected. To improve your probability of success, we recommend the following:
- A detailed description of what needs developed.
- Define terms that are unique to you or your industry in layman’s terms.
- Don’t abbreviate anything.
- Include sample diagrams, screen shots, or pictures to help communicate your message. (I use Balsamiq Mockups & Snag-it)
- Develop user stories that describe the users experience (how it should work) and the functionality (supplying websites that can show the developers a similar experience is beneficial)
- Describe the purpose of functionality and the report output
Record All Calls
In addition to the hard copy SOW, take the time to present the SOW to your developers and while doing so record the audio and visual so your developers can go back to the recording and watch it again. Remember you are on different time zones so having your voice recorded to explain what you want while you are sleeping goes a long way towards helping your team remain productive while you sleep.
Remember, offshore developers have a learning curve with the English language so by giving your developers the ability to re-listen to a recording of your instructions as often as necessary to gain further clarity on the project benefits you in the long run. GoToMeeting is a perfect tool for recording webinars. If you are looking for a voice only recording option consider Uberconference.
Respond to Emails Quickly
As I stated before, you are on different time zones. If you are sleeping and they have a question that prevents them from continuing development you are paying for hours that are not productive. The only way to solve this problem is to recognize that you, like they, must adapt to the challenges of an international relationship. I suggest you keep your phone by your bed with an alarm for emails. Answer them as they come in, don’t delay. I suggest Skype as a tool to enhance communication efforts with your developers.
I mentioned this before but it deserves a more thorough response. I will approach this from my experience working with developers in India. So the principles remain the same although the application may be different depending on the culture. I offer the following recommendations that deserve your full undivided attention to improve your chances of success.
Assume They Don’t Understand English
It is your responsibility to communicate to them what you want so they understand what you want. Remember you hired them and you have the power to terminate their services so it is your responsibility to make sure they understand what you want.
Assume They Don’t Understand American Culture
If you are hiring offshore developers you must remember that American culture is very different from your developer’s culture. In addition, it is highly unlikely that your offshore developers have been adequately schooled in U.S. culture. Therefore, don’t expect them to understand your slang, humor, holidays, and management style. If you want your project to succeed you must understand their culture and what is important to them. In short, if you don’t love people or care about people you are in for a rude awakening and disappointing results. This is not because they don’t care but because you and your developers are operating from two different paradigms.
Create Degrees of Negative Alternatives
Developers in India are polite, kind, gentle, and positive. They do their best to avoid conflicts and any type of negativity. If you ask them to do something or ask if they can do something they are very likely to say yes even if they can’t do it. You must express that it is “ok” to say “no”. In fact, you must communicate that if they say they can do it but fail to deliver it will result in a consequence that is worse than saying no at the onset i.e., a degree of negatives. I can’t over stress this enough. You must appeal to your team that it is ok to say no, that you are a team whose success and continued viability depends on meeting deadlines on time and on budget with functionality that works as expected. It is better to set expectations in line with reality than over promise and under deliver.
Brand Them As Your Team
This only works when the structure of your engagement with the development firm operates under the model that your developers are working full-time for you. In a sense, it would be similar to a leased employee relationship. If you operating under this model, I suggest you provide your developers with a company email address as well as provide them with company paraphernalia. This gives them a sense of belonging to your business family and if the developers are performing at a level that has earned your trust, feel free to include them on client calls so they can learn firsthand who they are serving and what they want. By doing this you also honor them as part of your inner circle.
Build in a Cushion
It is rare that a project will be delivered on time and within the budget that was initially established regardless of what type of developer you use i.e., Offshore or U.S. based. Change orders are a common occurrence that can have a rippling effect that includes delays and cost increases in other areas of the application. If this is your first project, I suggest you double the cost proposed and the time to deliver. Even this suggestion could be conservative on your first outing. As you gain experience with your developers you will get better at projecting time and cost.
Hire Full-Time Developers
There are two approaches to retaining developers. The first involves hiring a developer for a project that has a set beginning and end date. The second involves a beginning and end to the application but also an ongoing relationship for application maintenance and support. In both scenarios, your developers could be dedicated to your project until it is finished or, most likely, you would be sharing the developer with other competing projects.
We have experienced both approaches and scenarios. In our experience, hiring dedicated developers is more cost efficient and effective because you are overcoming the learning curve with developers that are dedicated to your application and their attention is not distracted with other competing projects. Simply put a developer that is working on multiple projects losses efficiency when jumping from project to project. Of course, finding a development firm that will contract developers that are devoted to your engagement full-time are hard to find but they are available.
One more point to keep in mind, give consideration to the location of your development firm and determine if the location is a hot bed for technology. If it is, there is a higher probability that your developers could be hired away by a competing firm thereby disrupting your efficiencies with the same team members. I suggest hiring a well-staffed development firm in an area with little competition for development talent.
I hope this helps you in your endeavor to secure a successful development experience with offshore developers. The suggestions and recommendation I have outlined have severed us well and I would expect that will help you achieve your development objectives as well.
Justin D. Witz is the Chief Technology Officer for Fiduciary Risk Assessment LLC (FRA) and PlanTools, LLC.