Pull Quote: The failure of a lot of outsource projects, companies, and freelancers is the lack of clear expectations in the beginning.

On the other side

My first experience with WordPress came in 2005. I was taking an online theology program and became friends with the director of the course, C. Michael Patton. The course was provided by a popular Christian website, but over time it became necessary to move it to its own site because of limitations in the current sites platform. I don’t know what it was at the time, I believe it may have been custom built.

Michael, along with me and several other students of the course searched for the best platforms to build the new site on we played with all the popular ones at the time. We looked at Joomla (Mambo at the time), Drupal, and WordPress. We also chose Moodle for the classroom piece and WordPress for the main site. We built the site and it went over well, the theology program was getting popular and the live chats that we did on Pal Talk were getting a lot of attention. The chat rooms were constantly getting attacked by malicious users who pop in and disrupt the classes, but we also wanted the rooms to stay public as there was a pretty significant Christian presence on there and we were getting many new students.

Michael decided that the best thing to do was to build our own chat platform add all the features that would make teaching and conferencing more efficient. Michael found someone to finance the new system, and I quit my job to work on this full time.

Trying Outsourcing

That lead to my first experience with outsourcing work, this was a big project and would require a large team. We ended up hiring an outsourcing company from Noida, India. We got to work building the ultimate conferencing platform.

There were a lot of challenges with the application, many were technical as we had purchased a voice conferencing SDK that could do peer to peer audio and text chat, but it was buggy and would drop users on a regular basis. As many technical issues as we had, we had more with the outsourcing company.

They were very friendly and polite, but there were cultural differences that I didn’t understand at the time, and these became a huge obstacle to ever completing the project. My past experience working for a high end financial consulting company that dealt with super wealthy investors, taught me that quality and deadlines were all that mattered, and if I gave a deadline for something or was given one it had to be met no matter what.

Things didn’t quite work that way in outsourcing, deadlines were treated as guidelines, and things that seemed like common sense such as how a confirmation box would work became additional features.

Basically, things that I took for granted but didn’t provide documentation for were never thought about, no one ever asked about how things like that would work, and the level of frustration built.

After two trips to India to try to get things back on track we finally pulled the project and moved it to the US.

During this same period, it was blatantly obvious that the SDK we were building this on was never going to work as advertised and we would need to write one from scratch. I had an acquaintance from the theology program, a professor at a college in San Francisco who had a small development company there.

Their main developer was a self-proclaimed genius and had done a lot of work in audio compression and had written code for Gibson mixers as well as some networking protocol work so it seemed a perfect fit.

We signed the contract and off we went, or so we thought. After 6 weeks of discussions, emails, and arguing back and forth, the company wanted a percentage of our business to build the conferencing piece. They were claiming that their developer was going to use his custom algorithm to provide the service, but that was not part of the contract so they would need to own a portion of the company.

My guess is that they planned on that from the beginning, but nevertheless, after over $10,000 and a lot of lost time all we received was some documents with the theory behind this magic algorithm and copies of a bunch of downloaded open source communication frameworks.

I can go on about this project, but the main thing is that it ultimately ended in failure, and it still haunts me that we never got this to market.

As difficult and painful as this failure was, I did learn a lot from it, I know that’s cliché but it really is true, and what I learned is the point of this post.

WordPress in El Salvador

In 2010 I moved to El Salvador for reasons that are beyond this post and would require way too much of your time. I got married here, and my wife and I started a coffee export business. We did pretty well with that until 2012 when the rust leaf virus hit the country and really hurt the quality and quantity of coffee available for export.

I needed to find a way for us to make a living, and I started scouring the internet for jobs that I could do from here. I found a listing on Craig’s List, and landed a job as a project manager for an outsource company based in the US.

Most of the work was in WordPress which I had continued to dabble in by doing sites for friends, and our coffee business, so I was pretty comfortable with the platform. The part that was the challenge of the job was that I was again working with developers’ half way around the world, that didn’t understand the American culture or clients’ perspectives.

My experience with WordPress helped quite a bit because I could jump in and fix things, and finish projects that were incomplete. I built a good reputation with clients many of whom where marketing companies that needed sites built to promote their clients’ businesses.

The owner of the company is a bit of an entrepreneur and in 2013 he decided to build a new business setting appointments for real estate agents in the US. I got the job of building a custom portal for his new venture using a couple of the developers that I had been working with over the last year and a half.

This was a fairly large project as it was tied to several APIs and was on an unrealistic deadline, but we managed to get it done and the business was rolling. Ultimately this didn’t work because it required telemarketers that were working on commission so they were doing anything to get appointments including booking them when they shouldn’t. The real estate agents were mad, the owner of the company was refunding money constantly, and that was the end of it, and the outsourcing company.

I started doing work on my own using the two developers that I had worked with that were very good, and things were going well, but I still had to deal with the time and cultural differences. Waking up to see what progress was made on a project only to hear from the dev that he couldn’t do anything because he had some questions, even though we discussed projects and had the details in our online management system.

Building Locally

In 2014 I decided it was time to hire local developers, I was getting busy and I couldn’t afford to miss deadlines and I needed more control over my projects. Besides, my goal was always to earn a living here, while treating the local people fairly and not taking advantage of them. I wanted to provide opportunities not just make money.

My wife formed the legal company as I cannot own a company here yet, I’ve still got to finish the legalization process.

I hired our first two full time developers in the fall of 2014, one front end for themes and templates, and one back end for plugins and API work. While we had plenty of work we didn’t exactly hit the ground running.

There was still a cultural adjustment period, and neither were really that familiar with WordPress. This meant a lot of long hours for me as they were learning the ins and out of WordPress, and even more importantly, the importance of detail and meeting deadlines.

The work culture here is a lot like that in most of the world, much more laid back then that in the US, so I had to teach my team to understand what mattered and what didn’t to our clients. I had to use the lessons that I learned from my failures in working with outsourcing companies and individuals in the past and use that to build a working environment that is productive for the company but also a place that my workers are happy to come to every day.

There were a lot of challenges that we had to overcome aside from just the cultural differences and approaches. The employment laws here were a surprise that I learned on what appeared to be a little later than a need to know basis.

All employees get 15 days’ paid vacation from year one, and they get 15% of their monthly salary in addition to their regular pay for that time. They also get an annual bonus that is 50% of their monthly salary. And then there is indemnizacion which is basically unemployment, except here the company pays one month’s salary for every year an employee works, you have the option of paying this annually, or all at once if you fire an employee.

These were things I learned after agreeing to pay my developers their asking salaries.

If you’re going to start an outsourcing company in a foreign country, learn their laws first!

Other issues that I learned from my first outsourced project is that other countries have their own holiday schedules. I had Hindus on projects that had some holidays, Muslims that had other holidays, and clients that didn’t care about either. The same thing here, El Salvador’s’ Independence Day is not July 4th, their Labor Day is not the first Monday of Sept. and they have a lot of holidays based on the Catholicism.

These are all issues we work around by managing our time and projects, and a lot of extra work on my part during these holidays. My team works most US holidays, but that would be the best time for them to be off, and when I would like to be off.

We currently have four full-time developers and we keep everyone fairly busy, but I also care about my team and we try to manage our projects so that no one needs to work overtime, or even the half days on Saturdays that they are contracted for. So far I have only needed to have them work on Saturdays twice in the two years since we started here, but they all understand that if deadlines are in danger of not being met we will work Saturdays. That’s a little motivation that seems to be working.

I also realize that I am not going to get a lot of production out of a new developer for a couple months. Most people here don’t know WordPress very well, or the other platforms that we work on, so we train them, give them small things to do and time to learn. They need to learn not only how to do the actual programming, but how to embrace WordPress as an application development platform or framework. In the beginning they all want to work on their favorite MVC framework for everything, but when they really learn the power and clarity of the platform they get hooked and productions shoots up.

I never wait until I have too much work to hire someone new because I know the beginning will be slow.

If I need to scale in a hurry, I still have relationships with my oversees guys and I’ll give them a project to keep moving.

Outsourcing On The Other Side

There is a lot to running an outsourcing company from a foreign country, and I have a big advantage having spent most of my life working in the Northeastern US and understanding what clients expect. One of the main things I do is to manage those expectations to create realistic requirements, and realistic deadlines. We meet those deadlines or we work extra, though we have hardly ever needed to do that.

I believe the failure of a lot of outsource projects, companies, and freelancers is the lack of clear expectations in the beginning.

Much like most of the world, the people here put a lot of importance on being agreeable and polite when discussing projects or really anything. That sounds good on the surface but it leads to unmet goals and cranky clients. If you’re working with US clients it’s far better to be honest about deadlines, skillsets, etc. than to just say yes to everything and have it fall apart.

My team has learned that it’s better to tell me the reality than just what I want to hear, if they’re struggling with something they come to me and I guide them, sometimes to one of the other developers, sometimes I do it myself, but the key is that they are comfortable in knowing that none of us knows everything. Salvadorans are very proud people so this is a huge accomplishment.

I know this is a long post and maybe I ramble a bit, but if you’re living in a foreign country and running or considering running an outsource business I hope that some of my experiences will provide a little guidance to help you along. Having been on both sides of the outsourcing world has really helped me to understand what clients want, and how to help my team deliver it.


  1. Great post, me and my colleagues agree with everything.

    In our case in Spain, there are some clients that tolerate relaxed timelines if you agree on a very low budget, but others always expect “excellence”, and that means delivering as planned. Those second ones, when negotiating the price of a project, believe that once project starts, results will be of maximum quality and in time. It’s very important not to misunderstand their expectations because they seem to ask you for a lower price.

    I would be very interested in knowing some tips about how to get your team in a culture of delivering on time and with the expected quality, how to estimate times before starting a project, etc. ;-)

    1. Hi Vincente, Glad you enjoyed the post.

      I really believe that building the culture of quality work, and meeting deadlines starts with the person estimating the cost, deadline, and requirements of a given project. In our company, it’s me doing that, so I when I am speaking to a client I ask a lot of questions, clients many times haven’t thought through the if case scenarios, it’s my job to make them think about those things. It’s also my job as the project manager/architect to make sure that I have all the information my team will need to complete the project successfully. As I mentioned in the post, I had issues because I didn’t explain how a confirmation box should work. I don’t go into that detail with a client, but I spell it out for my developers

      I mentioned how I got started in outsourcing while living here in El Salvador, but I didn’t go into details. The owner of that company is a mega salesman and he would often put me in an awkward position by promising unrealistic features at unrealistic budgets or deadlines. I don’t do that, I would rather the client look for someone else if their budget or deadline is unrealistic. No one likes to turn down business, but I’ll tell you that I have either passed on projects or had clients turn to other companies to build their sites or systems based on promises, then we end up fixing or completing the project after the initial goals and deadlines were not met.
      Optimism is good, pragmatism is better in this business.

      Let your experts in on the initial calls, ask lots of questions, make sure you understand the full scope of work you are agreeing to. Salesman want sales! And that’s their job. But if a salesman is promising the impossible that brings everybody down in the long run. My team knows that they can meet a deadline that I set because I will never set them up to fail. I would rather pass on a project then accept one that I know we cannot possibly meet.

      A lot of it also comes down to experience. When I’m on my initial calls I already know if there is a plugin we’re familiar with that I can use to meet an objective, or if we need to write our own. I am evaluating whether we’ve built a custom theme that will be a good starting point. We’ve built hundreds of sites in WordPress, and many custom applications in either native PHP or .net, or using a framework such as Laravel or Cake PHP or platforms like Magento, Shopify, Squarespace., so these are things that are going through my mind as I’m discussing the objectives. This comes with time and I don’t know you’re situation, but we learn from every project, and every client. My worst project experiences have been my best teachers.

      Finally, I know my team intimately, it’s only me and four developers now, so if you’re a large company this may not apply. I feed my team every day, and more importantly I eat lunch with them. This is a perfect time for me to catch up with where they are on their projects, what issues they have and how to solve them. It’s not all business, we talk about our favorite shows, sports teams etc. but I have a relationship with them, they’re not just employees, I have an interest in their lives.

      I expect to operate at around 75%-80% of my teams capacity, so there is always room for that one emergency that a valued client has. I specify valued client because we work as professionals and I’ve had many clients that are time wasters; you know the type, they want everything, they want it cheap, and they want it now. Let them go to someone else. They will probably come back. It’s hard to turn down money, but I want my team to succeed, and these types of clients hurt morale and productivity. Our primary business is as white label developers. You won’t see our name on projects we build for our clients, and the end client many times doesn’t even know we exist. We have several clients that we do work for that are valued clients. They have to come first, that’s our livelihood.

      So after all this, to answer your main question on motivating my team to perform, they know that if I accepted a project, I fully believe they can and should complete it within the given timeframe. They also know that I will jump in at any time to help, we live or die as a team. No one is better than the other, so we combine our talents and gifts, but missed deadlines or poor quality is never an option.

      Again, thanks for your gracious comment, and best of luck to you!!

      1. One additional note, I don’t like relaxed timelines. I want to complete projects as quickly as possible while maintaining quality. I prefer my team work on projects to completion and not just every once in awhile because flow is important.

        It’s difficult to touch a project every now and then. Much like in the movie Social Network, when a developer gets in the zone, it’s best they stay there and finish the job.

        Personal preference of couse.

  2. Thanks for the additional comments. What you tell is so true in all aspects, and easy to see that is backed up with a lot of experience behind.

    We ourselves are also experienced enough, and were debating about all the things we think have worked in the past, and things that should be avoided. It’s so good to see how we are arriving to the same conclusions in so many aspects. This will help us keep focus on the things that works, and leave behind what doesn’t.

    Again, thank you for taking the time to share all this knowledge. ;-)

  3. Interesting article! How do you find it moving to Project Management and being on the client side of things instead of being a developer?

    1. Hi Ulrich,

      That is a good question! It was initially difficult to make the switch, I would many times jump in and just do things myself. I have adjusted now and we’re more efficient. What I try to do as much as possible now is point my developers in the right direction. Between the WordPress community and Stack Overflow there is almost always a solution to be found, so teaching my team how to do good searches has increased productivity and made my job a lot easier.

      I still do get involved in the code, though mostly review at this point. If we have a bottleneck I’ll help out to keep the project moving, but my developers are very strong now and I encourage them to help each other to solve problems. We all share a teamwork mentality and for us that works very well, there is no competition within our office, we have one objective on every project, and that is to deliver quality and on time.

      Thanks for your comment and question!

  4. An impressive share! I’ve just forwarded this onto a coworker who had
    been doing a little homework on this. And he actually bought me breakfast due to the fact that I stumbled upon it for him…
    lol. So allow me to reword this…. Thank YOU for the meal!!
    But yeah, thanks for spending the time to discuss this
    subject here on your internet site.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.