Offshore Software Development, a perspective

There was a time when offshore software development was very very new, many companies were not aware of it or didn’t know how to go about it. We as one of the offshore providers, used to have a slide to explain the “Benefits of Offshore” and it was more about selling the offshore model to prospective clients in US or Europe. And at times there used to be many layers between the delivery company and the end client, mostly local marketing companies who would act as a front, for comfort to the end client.

Since then lot has changed. My experience is mostly in US and India market! Almost every one in US knows about offshore model now. Our “Benefits of Offshore” power point slide is no more now and is replaced with “Why Us?”. Because you are very likely competing with your next door neighbor company!

And no more layers! We have few instances of company walking-in and inquiring about our services and I am sure it has happened to many other offshore companies. Many US companies have their own captive development center in India now.  And also many companies have burnt their fingers trying to take advantage of offshore model and have gone back to local resources or in-house, particularly in Call Centers and BPO domain.

At times I wonder why one is NOT doing it? Now it is not about why, its a question of how to do. Its about going thru the iteration of finding the right partner, getting the right team in place and figuring out the right process to make it work. Its about global teams working round-the-clock to target common goals. Some guy sitting in some remote corner of India, racing to deploy a hot fix before the sun rises in New York! Or some where in Delhi, busload of engineers getting off and rushing to their desks, getting ready to attend support calls for a product company in Austin, TX!

Offshore makes sense not just because is very cost effective, but more so because of easy availability of skilled IT resources. With the ongoing visa changes in US now, inflow of skilled resources into US is further throttled. You talk to any company in US and they will tell you how hard and expensive it is to find good programming resources even in basic technologies.

So how does one go about finding a partner for their IT needs say design for your logo or for your website or help deployment on AWS, setting up SSL for your site! Unless you are a big corporate or government, where you can float RFPs and vendors would line up in front of your door, for small businesses or SMEs on a tight budget and timelines, its bit harder. Like any other type of business need, best approach is use your references. Reach out to your network of friends, high chances are you will find someone who would refer to an individual or company they have used or are using. You don’t have to go thru discovery phase with the partner. But keep in mind, not one size fits all. What worked for someone else may or may not work for you! You still have to assess the fitment for your particular situation.

Then there are many marketplaces these days like craiglist, upwork, guru, elance etc. where you can post your project needs and walla!! You would be flooded with bids, from India, Pakistan, Bangladesh, Russia, Brazil, Canada, USA, Israel, Philippines and many more. And then you sit like a Pharaoh and let them demonstrate their wares or skills. But its surely a nerve wrecking exercise, specially if you don’t know P of programming! What do you do! I would say, start small, pick the provider you like most. Give them small piece of the project and let them deliver that small piece. And in the process you would know how responsive, flexible, knowledgeable etc. they are and then go from there. Keep backup of other providers, in case current provider does not look like is going to work out.
Wouldn’t it be nice to have a checklist to assess a partner? Readers are welcome to share their experience. I will try to come up with a list too in another article.

How to configure Live Agent

Salesforce Live Agent is a native Salesforce tool that provides the ability to communicate in real-time with your users. Live Agent connect with customers or website visitors in real time through a Web-based, text-only live chat. You can customize Live Agent to create a personalized chat experience for your customer service agents and the customers they serve using custom code.

Continue reading “How to configure Live Agent”

Queueable Apex: More Than an @future

Queueable Apex
Take control of your asynchronous Apex processes by using the Queueable interface. This interface enables you to add jobs to the queue and monitor them, which is an enhanced way of running your asynchronous Apex code compared to using future methods.

For Apex processes that run for a long time, such as extensive database operations or external Web service callouts, you can run them asynchronously by implementing the Queueable interface and adding a job to the Apex job queue. In this way, your asynchronous Apex job runs in the background in its own thread and doesn’t delay the execution of your main Apex logic. A benefit of using the Queueable interface methods is that some governor limits are higher than for synchronous Apex, such as heap size limits. Continue reading “Queueable Apex: More Than an @future”

Introduction to Salesforce Object Query Language(SOQL)

Salesforce Object Query Language(SOQL) is used to search your organization’s data for specific information.
SOQL is similar to the SELECT statement in the widely used Structured Query Language (SQL) but is specifically designed for Salesforce.

SOQL can be used with Apex, Visualforce and Schema explorer of Force.com IDE.

Continue reading “Introduction to Salesforce Object Query Language(SOQL)”

Retrieve Accounts via Remote Objects


Well, here are few advantages of “Visualforce Remote Objects” :

  1. No need to write Controllers, Everything can be done in Visualforce only.
  2. As @RemoteAction annotated methods needs to be static so you had to take special precaution as it didn’t supported Viewstate. This hurdle is completely removed now.
  3. No need to write Test Class now, as no Controller is involved.
  4. Not counted against API call

Continue reading “Retrieve Accounts via Remote Objects”