Outsourcing Best & Worst Practices Every Business Should Know


Outsourcing is a popular way to scale your team when a larger project comes along. The market is huge, but that raises an important question: What makes “good outsourcing”? What should you look for, and what should you avoid?

Over the years, a lot has been written on “Outsourcing Best Practices.” In my experience—over 20 years as both a consumer and a provider of outsourcing—it all boils down to three core elements: Communication, Process, and Security. Other key considerations include turnover (churn), scalability, and honesty.

This article highlights the most critical lessons I’ve learned. While not a comprehensive guide, these are the points I’ve found most important when choosing and managing outsourcing partners. (I’m writing from a North American perspective, so if you’re in another region, some challenges may differ.)

Contents

Outsourcing Best Practices


Communication

  • Language (English):  This may seem obvious, but it’s often overlooked. Ensure that the engineers you work with can communicate effectively in English, both verbally and in writing. Speak directly with each engineer, not just the project lead. Take the time to talk with each engineer. If they can’t deliver on the English communication side, you’re likely to encounter issues down the road. Make sure that all engineers can communicate with you or your team in a language that is acceptable to you. Of course, written English is also essential, but I’ve found that most engineers actually do a better job communicating in writing than they do speaking. An important lesson I learned was to back up all real-time conversations with written meeting notes. Not only will you have a record of what you discussed, but your overall English communication success rate will also improve.
  • Culture: Cultural differences can lead to costly misalignments. In some cultures, saying “Yes” to everything is polite. Empower your engineers to speak their mind. Another problem area is “I understand” or “I agree” (they don’t push back) for any feature – Understand the culture you’re dealing with. Ensure they truly understand it, or you will waste more time and effort than you can imagine. Check back the day after the agreement to make sure there are no issues.

Make sure you understand the culture. Company culture matters too—if your in-house team resists outsourcing, you’ll need to address that internally.

  • Team Collaboration: Development, QA, Product Owner. All parties must have some level of communication and understanding during the development process. The Product Owner (stakeholder, or other high-level role) must be able to communicate effectively with the Development team, and the Development team needs to work effectively with the QA team. The QA team needs to be empowered to push back or warn the Product Owner of issues with new features or builds. This is true if everyone is in the same building, but even more true when working with distributed work groups.

Processes

  • Delivery Process: Whether you’re using Agile or another methodology, what matters most is clarity on how things get done. Is there a “Project Manager,” a team “Lead,” or someone in charge (maybe even someone with a hybrid role) that keeps everyone “on the same page?” Is there a communication process in place that ensures all teams are aware of what the others are doing? Even if you don’t outsource, a process must be in place to ensure that Engineering, QA, Product Owners, Product Stakeholders, and any other relevant groups or individuals are aware of the current status of the development process at any given time.
  • Development: If you are working with multiple teams, then the leading and Outsource Engineering teams must have a common ground for the development process. Are they working in Agile? Then, daily stand-ups are required – Can they do this effectively? Are they using the same tools? Are they using the same coding best practices? What are the gaps?
  • QA Integration: Ensure QA works seamlessly with development, regardless of location. Shared tools and processes are essential for effective feedback.
  • Dedicated Resource: Is each engineer 100% dedicated to your project? You might be surprised how many resources are only working 50% on your project. This is something you have to track. I would visit the Outsourcing company in person. I would also review the code that has been checked in (you might want to see how productive they are daily, such as how much code is checked in, and what the quality of that code is, etc.). If you can’t be there in person, you can always connect via video to check on the Engineering team. The problem arises with larger teams, where the Outsourcing firm can hide some of its resources. Overall productivity can be measured, and if you think you’re not achieving the expected level, ensure everyone is working the expected hours. Don’t get me wrong, you don’t want to micromanage the team, just monitor the overall productivity. If you have concerns, address them early on.

Scalability

  • Both scaling up and down: Can I easily and cost-effectively add or subtract the same quality engineers? This is particularly important because some Outsourcing firms can provide you with one good candidate, but the quality of subsequent candidates often drops off. Can you review their resumes? Can you interview each engineer? Once you have a good working relationship with the Outsourcing company, they will usually ensure that good people are always assigned to your projects.
  • Additional services:  Can they also provide UI/UX, QA, or program management? A reliable vendor should deliver consistent quality across services. Make sure to find out how many services they offer, and whether you can speak with each new addition if you want to. 

Low Turnover (Churn)

  • Employee Retention: High churn means wasted investment in training and knowledge. Ask about the vendor’s turnover rate (ideally below 5%) and their knowledge-transfer process when someone leaves. Excellent firms shadow outgoing engineers and don’t bill you during the ramp-up period.

Security Practices

  • Physical Security: It seems obvious, but you would be surprised. Once, I went to visit one of our Outsourcing vendors and arrived at the office to find everyone at lunch. The back door was open, and I walked through the building – no one was there! All the computers were on, and none of them had any sort of password protection. I sat at a computer and saw all kinds of confidential information. When the general manager came back from lunch, I voiced my concern, and he said, “We don’t think it’s a problem.” Needless to say,  we immediately backed up all our software, sent an engineer to ensure that all our software was removed from the computers, and shut down operations at that office immediately. Protecting your IP is a huge deal. Make sure yours is safe and secure.
  • Best Practices: How protected is the Building (e.g., security guard, CCTV, etc.)? Do employees have personal key card entry?
  • IP Protection: Do they keep all customer information on a separate VM or similar?
  • Backup: Do they back upall data and store it off-site in a fireproof safe?
  • Does every employee sign an NDA? It seems obvious, but don’t take this for granted. Ensure they are covered under the company’s NDA.

Outsourcing Worst Practices


Unfortunately, there are recurring problems in the industry. Knowing them up front can save you a lot of time and money.

Bait and Switch: This is where you interview one great engineer, but they actually assign you a different engineer (usually a much more junior engineer). To avoid this, you will need to communicate directly with the engineer (especially in the beginning) and review both code and productivity. If you are getting poorly written code and it is taking longer than you thought it should, you may be a victim of “bait-and-switch.”

Splitting Time: This refers to a situation where you believe you have a full-time, dedicated engineer, but in reality, they are only working 50% or less of the time. Again, you’ll have to monitor code productivity and, if possible, monitor online activity. If you discover that someone you thought was working full-time is only working part-time and you’re being charged for 100%, leave that company as soon as possible.

Over-billing: This occurs when you think you’re paying for 10 people, but in reality, you’re only getting 7. Or even worse, paying for phantom people. This is more common when you have larger teams. I had a team of 50 Engineers with one software Outsourcing firm, and it was always difficult to track who was working and who wasn’t. I was also being charged for multiple Project Managers (they said they needed one project manager for every 10 engineers, which wasn’t true). I didn’t learn about it until we decided to conduct an audit of each headcount and demanded to know what each person did on a daily basis. We discovered that the four additional Project Managers never existed! They fabricated the names and inflated the invoice. Since Project Managers are charged at a higher rate, it was a significant rate increase – about $20K per month in over-billing. The lesson learned was always to know what each person does and ensure that no one can be added without specific duties and responsibilities being spelled out and signed off by management.

Final Thoughts

Outsourcing doesn’t suck. However, it does require effort, vigilance, and realistic expectations. Done well, it can be cost-effective, productive, and a powerful way to bring products to market faster. Done poorly, it leads to delays, wasted money, and frustration.

Think of outsourcing as an investment—one that can make the difference between delivering a strong outcome or suffering costly setbacks.

Discover how Waverley’s outsourcing solutions can help your team deliver at its best.

cta logo

Start building stronger teams with Waverley!