Outsourcing Web Development: The Ultimate Step-by-Step Guide.
Whether you’ve got a great idea and are looking for technical support to make it a reality or you’re running an established enterprise and want to remove something from your managerial plate, outsourcing web development can be a smart move. Outsourcing your web work can also be a way to stimulate a company’s growth or evolution as you access a larger talent pool with fresh ideas for reaching and serving customers. On the other hand, sometimes a period of dramatic growth, contraction, or redirection makes it necessary for an institution to change how its workload is managed and outsourcing becomes a way to stabilize a rocky boat. Outsourcing web development can also be a way to
- reduce the cost of labor, office space, equipment, and insurance;
- save time on recruiting, hiring, and onboarding;
- prevent the need for morale-depleting layoffs;
- minimize your risk exposure;
- focus on your core mission and competencies;
- and improve the quality or time-to-market of your online offerings.
Though there are numerous benefits to outsourcing, successfully delegating your web work to an outside team can be difficult. There’s a reason outsourced web development has some reputation for substandard quality, which is that many organizational leaders don’t know how to find the services they need or to avoid the common pitfalls of entrusting an essential job to people outside their institution.
At Buink, we learned to outsource web development through trial and error and then through innovation as we went from an entrepreneur looking for cheap tech labor to a web development startup committed to providing quality services to clients. If you want to avoid the setbacks we experienced on our road to discovering best practices for outsourcing web development, you’ll find this step-by-step guide invaluable.
There are three main parts to successfully outsourcing web development. First is defining what you’re looking for. Second is finding it. Third is establishing a productive working relationship.
Part One: Define what you’re looking for.
Part 1 – Step 1: Name the services you need. The term “web development” can mean anything from graphic design to building a database to updating code. Are you looking for someone to design your user experience and write copy? A front-end developer to code the user interface? A back-end developer to build your database? Someone to maintain your web app? Or a team to do all of the above and more? Are you an experienced project manager or will you need help supervising a team? Do you know enough about coding to know whether you’re getting a good product? The answers to these questions will determine what kind of firm or freelancers you’re looking for. As you answer them, make a list of the specific services you need. The checklist below may be helpful to make sure you’ve covered your bases.
✅Envisioning a new web app or site (Startup/Business Consultant or UX Designer)
✅Envisioning a web app or site remodel (Startup/Business Consultant or UX Designer)
✅Graphic design (Graphic Designer)
✅Designing user experience (UX Designer)
✅Coding graphical user interface (Front End Developer)
✅Building a database (Back-end Developer)
✅Maintaining a database (Back-end Developer)
✅Building a server (Back-end Developer)
✅Maintaining a server (Back-end Developer)
✅Building an application (Front- and Back-end Developers)
✅Maintaining an application (Back-end Developer)
✅Improving security (Front- and Back-end Developers)
✅Maintaining security (Front- and Back-end Developers)
✅Reviewing code (Full-stack Developer)
✅Remodeling code (Front– and Back-end Developers)
✅Rebuilding code (Front- and Back-end Developers)
✅Project management (Full-stack Developer)
✅Security maintenance (Full-stack Developer)
✅Identifying services needed (Business Consultant, Project Manager, or Full-stack Developer)
✅Identifying best languages and frameworks for project (Project Manager, Full-stack Developer)
Keep in mind that most web development teams have at least four members: a project manager, back-end developer, front-end developer, and designer. Depending on the size of the project, your project manager may also be your tech lead. The tech lead is your MVP and needs to have some experience in all aspects of web development. He or she is accountable to manage the tech team and make sure it delivers what the client wants. Also, someone on the tech team needs to be tasked with security. Sometimes the team lead takes this role; other times a fractional lead is hired. Either way, time and money need to be allocated for a developer to ensure that your proprietary information and customer data is protected from bad actors.
You will also need someone to review code. If you have the expertise, you might want to do this yourself. Otherwise, the tech lead, project manager, or another developer will need to be assigned this job. In our early days of using freelancers, we were frustrated by the amount of time it took to review their work, but, because we consistently found needed edits, we also knew we couldn’t skip this step. After more than a decade in the business, we understand that reviewing code is a time-consuming but essential part of web development. At Buink, we review every line of code written by our developers. We’ve found this adds about 10 percent to the upfront cost but in the end saves 20 to 40 percent of the project’s expense as bugs are found and clumsy code is revised to be clean and readable.
Part 1 – Step 2: Determine which technology you will use. If you have experience in web development, you probably already did this while listing the services you need. If you’re not techy, at this point you may have figured out, for example, that you need a back-end developer to improve the security of your mobile app, but you don’t know what tools he or she will use to do the job. Why do you need to know? Because the people you hire need to be competent in the languages and frameworks your web products require. Both web development shops and freelancers specialize in various aspects of web development. If you hire a construction company to build your house, you don’t normally hire one that has only built greenhouses, and if you want new carpet in your home, you don’t hire a tiler. Often non-techy people don’t realize that web products are as dissimilar as greenhouses and homes, carpet and tile. A tiny home builder may be able to learn as he goes and build a mansion, but a general contractor experienced in building large homes is undoubtedly more likely to build a mansion on time, on budget, and to the customer’s satisfaction. Similarly, your project will go better if you find a developer or agency that specializes in the technology you’re currently using or want to use.
This is a broad overview of popular web development specialties and tools. When you dig into the details of a specific project, it is many times more complicated. So how do non-techy people figure out what skill sets they’re looking for? The obvious answer is they ask someone who knows. If you have in-house web developers, solicit their expertise in transitioning to outsourced web development. This can be a touchy situation if the employees are going to be laid off, but most professionals understand that companies need to evolve to stay competitive and will give you good advice if they are treated with fairness and respect. In this case, you may consider keeping one in-house web development manager to liaison with the agency or manage your freelancers.
If you don’t have a trusted tech employee or colleague, contact web development shops and ask them how they would do your tasks. They will have different ideas because there’s always more than one way to engineer something. The more professionals you talk to, the more you’ll know about different options for getting your web work done and what specialties you’re looking for. Buink would love to help with this step. Contact us for a free phone or video chat consultation so we can help you identify the best technological tools to build or maintain your websites and web apps.
Part 1 – Step 3: Specify your budget and time constraints. Before you can shop in earnest, you need to set a budget and deadlines. Successful outsourcing begins and ends with clear, precise language. Words like “small” and “fast” will not serve you well. You must know how much you’re willing to spend, when you want a prototype ready, when you want the project completed, and when you absolutely must have all the bugs fixed. Once you’ve created a budget and deadlines, you can consider different strategies for getting what you need within those constraints.
Part 1 – Conclusion:
Part Two: Find a team.
Part 2 – Step 1: Consider all tradeoffs. We want it all and we want it for free, but in the end everything has a price and everyone has a price limit. To successfully outsource your web development, you must always consider the tradeoffs between cost, quality, and speed of delivery. Your individual expertise and availability, organizational goals, budget, and deadlines are important factors in determining which tradeoffs to make.
Decide how much experience you want: Web development is a high growth, high-demand industry and thus experienced web developers expect six-digit salaries. Less senior developers might be adequate for your job, but their code will probably not be as readable or scalable as someone who’s been coding for decades. If you’re building an MVP, you might hire a less experienced team, sacrificing some quality to keep your costs down. On the other hand, if you’re building a production ready app, you’ll want to pay for the best code you can afford. Once your web product is running, it’s extremely expensive to rebuild it, often more expensive than it was to build it in the first place. If you’re planning to grow your customer base, you will be wise to invest in forward-thinking code.
Decide whether you want to use freelancers or an agency. A freelancer does work for many clients on a part time or short term basis. For tax and government regulation purposes, they are self-employed. In the startup world, it’s popular to hire freelancers as fractional employees, meaning they work for a handful of companies on a part time basis. The advantage for the startup is paying only a fraction of a professional’s compensation. The advantage for fractional employees is earning a higher hourly rate and the opportunity to gain experience in a variety of businesses and industries. Hiring a fractional freelancer is economical because you’ll be paying for the exact resource you need for the amount of time you need it. You will pay a higher hourly rate, but your overall cost will be lower. A disadvantage of hiring fractional or short term freelancers is you will have to recruit, hire, and manage them yourself. If you do not have the expertise to recruit or manage a technical team or you neglect to set aside time to do so, you’re likely to receive a product that is subpar or not what you envisioned. However, if your schedule is open and you know how to provide specs and review code, you can save money by hiring freelancers.
If you choose instead to hire a web development company, you will not have to find, screen, hire, manage, lay off, or fire employees. The agency will handle all the human resource work; all you’ll do is pay a bill. When you hire a web shop, you will probably pay more per hour for the billed work, but you will save on overhead costs. The time and expertise of the human resource manager and project manager is part of the service and will be reflected in the price. Hiring an agency also protects you from delay and lost investment if a member of the tech team quits. When this happens, the agency should have a record of the developer’s work and be able to provide a quick replacement. A freelancer, on the other hand, can leave you high and dry if he or she decides to drop the job.
It’s important to note that one can use multiple compensation strategies within a team. In fact, compensation diversity can drive better decision-making because compensation affects the way an employee finds solutions to problems. For example, equity employees work for nothing upfront but receive a share of profits and thus will think further ahead than contract or hourly employees. Equity employees are seldom a promising option, though, because most developers need a steady income; also government regulation of equity employees can be difficult to navigate. Still, it’s worthwhile to consider offering some equity to senior team members so they will invest more skin in the game.
Determine your tolerance for offshoring: Many businesses save money by using programmers from less developed countries where compensation is lower. There are capable programmers in nearly every corner of the world, but offshoring has its risks and downsides. Many people–including us at Buink–have found offshoring to be more trouble than it’s worth; thus developers in first world countries remain in high demand.
The most obvious challenge in offshoring is the language barrier. We’ve all had frustrating conversations with offshore customer service agents who speak limited English. Good communication is key to successful outsourcing, so be wary of signing up with a team that isn’t easy to talk to. While less obvious than a language barrier, different cultural norms can also be a hurdle to collaborating effectively. Another significant challenge with offshoring is the time difference. If you’ve had trouble getting a hold of busy professionals in your own time zone, imagine how hard it can be to get in touch with professionals in faraway time zones. It can take days to have what would normally be a ten-minute chat as you wait a whole day between replies. Some offshore companies adjust their schedule to accommodate clients in other parts of the world, but the challenge is never entirely removed, especially if you’re located in the western hemisphere, opposite from the low-cost tech hubs in eastern Europe and Asia.
Last but not least, offshoring makes taxes more complicated and business contracts more difficult to enforce. Holding offshore developers accountable if they steal proprietary code can be nearly impossible. So while the cost savings of offshore outsourcing can be significant, the risks are greater than they are with domestic outsourcing. You will need to spend more time on documentation and, in the event of a contract violation, legal fees. If you’ve lived in the country of a prospective offshore shop or are fluent in the shop’s native language, you’ll be better equipped to deal with the challenges of offshoring.
While many people in the business world value personal relationships built through face-to-face conversation, others are satisfied with virtual communication so long as the time zones and language barriers don’t hamper it. For these people, nearshoring is a good option. Nearshoring means outsourcing to a nearby region or country where the time zone, language, and cultural differences are minimal and less likely to disrupt your workflow.
Within each of these choices–entry-level or experienced, freelancer or agency, offshore or domestic–there are hybrid options available. For example, you might find a web development shop located in your country that hires some offshore programmers or you might decide to use a programmer fresh out of college but hire an experienced developer to review his or her code.
Part 2 – Step 2: Learn to effectively screen candidates. From more than a decade of recruiting and hiring developers, we’ve discovered some important principles for finding effective employees. When candidates respond to your job posting, beware the jack-of-all-trades. There’s a mythical creature we call the amazing, technicolor dream coder who lives in his parents’ basement. Though he’s inexperienced, his genius qualifies him for any computer-related job. This mythical creature exists only in our imagination. The reality is that building software is a lot like building a physical structure. There’s no substitute for experience, and to construct a building, a variety of tradesmen are needed from the plumber to the electrician, and some buildings will also require a welder and glazier. Similarly, web development calls for various specialties. Again, it’s important to have a basic understanding of what technology is needed for your web products so you can find people who specialize in those languages and frameworks. Only hire someone who can “figure it out” if you want to pay for on-the-job learning and will be satisfied with jimmy-rigged code.
Learn to differentiate competence from mere confidence. When evaluating job candidates, it’s often tricky to distinguish between confidence and competence. Our filters ask questions about experience and expertise in several different ways–for example, to rank their ability compared to others or describe their confidence at completing an imaginary task–in order to expose the overconfident applicant. For example, if an applicant ranks himself as an expert in a language with which he has no experience, unless he has a lot of experience in a closely related language, that is a bright red flag. Like all people, computer engineers are sometimes poor judges of their own capabilities. If you don’t know how to code, you should consider learning to at least read code. Learning to read code is not as difficult as many imagine it will be, and once you know how to code you will be better equipped to recognize competent developers.
Portfolios, ratings, and work samples are more valuable than degrees or references. At Buink, we tried hiring computer science grads from an Ivy League university and found them incapable of coding to our standard. Next we tried using third-party testers and found their tests to be too focused on the theory of coding rather than the practice. Finally we created our own test, which was simply writing the kind of code we bill for. The time required to take tests can deter job applicants, so we guarantee work for those who pass our test. Occasionally we bypass testing if the developer has extensive experience and can point to past projects of high quality.
Tech leads need to be fluent on all fronts of web development, including the business side. He or she is like the general contractor who must be able to direct and evaluate the subcontractors’ work while keeping an eye on costs, schedules, and customer satisfaction. This multifaceted skill is especially difficult to measure; past experience and good reviews are your best bet for predicting success in this role. Websites like Upwork and Guru connect you with freelancers that have been reviewed and rated by clients. The ability to leave a bad review is the best insurance against shoddy work. The reference system is an artifact of the 20th Century as online ratings paint a more accurate picture of a product or service’s quality.
Watch out for extreme attitudes and incompatible values. There’s a school of coders who disparage some of the most utilized coding languages in the world that millions of computer programmers, organizational leaders, and consumers have found to be the most efficient tools to build their websites. This school overlaps with the cadre of coders who only want to use the latest technology, even when an older technology can get the job done more efficiently. We pass over candidates who exhibit these attitudes because the best developers have the humility to understand the value of tried and true tools as well as the innovative mindset necessary to adopt new technology when it will bring a return on investment. It’s also common to find developers who invariably recommend rebuilding software rather than remodeling it. Remodeling may be less fun than building from scratch, but it’s usually more economical, and so we look for coders who show a flexible, resourceful approach to engineering.
Watching out for extreme attitudes goes along with looking for people who share your values. Remember that hobbies are not values. It doesn’t matter what your employees do in their free time; it matters how they approach their work. Some organizations emphasize teamwork and have an egalitarian feel; others demand long hours and a commitment to growth; some institutions are inventive and open to risk; others have more risk-averse missions. Of course, every organization depends on the integrity of their workers to be successful in the long term. Carefully define your organization’s values and look for candidates who name these values as their priorities and exhibit through their actions that they mean what they say.
Be picky. An incompetent or dishonest freelancer is a huge liability. It’s more efficient to spend time searching for candidates than cleaning up after bad hires. After years of honing our hiring process, only about one percent of applicants make it through our initial filters and are referred to our hiring manager, and about half of them will pass our test and be hired. Of those hired, approximately one quarter become a long-term member of the team. This is because it’s not enough to know how to code; we need developers who can code consistently, take feedback, improve, communicate with team members, and meet deadlines.
Part 2 – Step 3: Look for an agency that is responsive and transparent. Pricing and delivering an ongoing, customized service is many times more complicated than pricing and delivering a physical, standardized product. For this reason, reviews and ratings are an essential tool in selecting a web development agency. Websites such as UpCity, Sortlist, and ZoomInfo offer business listings with ratings.
Other than reviews and ratings, the best way to judge whether an agency will be an amenable business partner is how amenable they are while you’re in the shopping stage. If an agency responds to your inquiry with an automated reply or takes a long time to get back to you, you should keep looking. The agency representative should be easy to reach and willing to discuss your project specifically. If the agent is reluctant to describe in detail how the company would handle your work both technically and organizationally, keep shopping. Good engineering requires more than good engineers; an engineering team needs a clear system for communicating goals, delegating tasks, avoiding duplication of work, and resolving problems. Prospective outsourcing partners should be able and willing to explain their work flow systems. Ask them about their chain of command and chain of communication as well as the technology they use to make sure projects are completed on time and on budget. The best web agencies will be proud of how they do business and happy to explain these things.
It’s equally important the agent explains in detail how his or her company prices its services. If an agency sets a fixed price for a project, that price will necessarily include a large profit margin because the agency is assuming all the risk of going over budget; when they run the risk of losing money on some projects, they must make a large profit on others or they will soon be insolvent. Conversely, when the agency bills you for time and materials, you are shouldering the financial risk and the price should be comparatively lower. Hybrid options–a fixed price for some services and hourly rates for others–splits the financial risk between the agency and the client. Ask agencies about billing options, why they bill the way they do, and how they compensate their employees.
Last but not least, ask agencies about their security protocols. Keeping your company’s and customers’ data secure is crucial to your success; a customers’ trust, once lost, is difficult to regain. Furthermore, companies can face legal liabilities if they do not handle their customers’ data carefully and ethically. All computers with access to your code should have antivirus software. Few people, just one if possible, should have access to a live server, and access should require two-factor authentication. Passwords should never be shared and should be frequently changed. Additionally, project managers should keep separate coding environments for software developers, testers, and deployers. Highly valuable, sensitive data should also be protected with security applications that scan for vulnerabilities. Open code is generally considered to be secure since it benefits from crowdsourcing scrutiny, meaning security holes are rapidly identified and filled. However, even products built from open code can be hacked and therefore must be carefully protected.
Security concerns is a common reason people give for choosing not to outsource their web development, but if you find a company that has strict security protocols, consistently enforces those protocols, and is willing to include security agreements in their contracts, then you can responsibly entrust your code and data to that company.
When discussing these topics–engineering strategies, workflow protocols, pricing, and security–ask hard questions about what might go wrong and how the company will respond in foreseen and unforeseen circumstances. How quickly can the agency replace a team member who isn’t performing to your satisfaction? What happens if a team member quits? What happens if the project gets behind schedule? What happens if there’s a data breach? Transparency is key in a long term business relationship, so don’t settle on an agency that doesn’t readily communicate about any aspect of the business relationship.
Part 2 – Conclusion: Once you’ve formed or found a team of reputable professionals who are experienced in the necessary languages and frameworks and can clearly explain how they will do your work within your budget and timeframe, you are ready to hire out your first web development task.
Part 3: Establishing a productive relationship.
Part 3 – Step 1: Commit gradually. As in romantic relationships, in outsourcing it’s also foolish to make big commitments until you know your partner well. Start by outsourcing a small task and see how well the freelancer or agency handles it. If you find yourself becoming overly anxious to remove web development from your to-do list and thus tempted to dive into the deep end, remind yourself that premature commitments often lead to expensive, frustrating experiences. Outsourcing means trusting others to do your work and trust is built gradually over time.
Part 3 – Step 2: Make thorough business contracts. Just as good fences make good neighbors, good contracts make good business partners. A business contract establishes clear rules of the road so that what starts out as a promising collaboration bears the promised fruit. Tedious as it may be, legalese is an important tool for making sure everyone knows exactly what’s expected and what will happen when things don’t go as expected. Even the best professionals are humans; they will make mistakes. Protect yourself and your institution from their mistakes with a legally binding contract that includes a non-disclosure agreement. Have your contract written or reviewed by a lawyer experienced in intellectual property law.
Reputable web development agencies will want to sign a business contract to protect themselves. At Buink we use one standard contract for all clients, which was written by lawyers, reviewed by several venture capital firms, and refined over the years. We are willing to edit our contract when clients make suggestions that will benefit all clients going forward, but we do not customize our contract for individual clients since all our business contracts are for the same type of service. Customization is therefore, at best, a waste of everyone’s time and could open the door to making legal mistakes that create trouble for all involved.
Err on the side of over communicating. Communication is the paramount principle of successful outsourcing. Visualize your project from the beginning to the end and tell the agency representative or freelancer your every expectation. Do not surprise them midway through. Though outsourcing may free up some of your time, you are still a crucial member of the web development team as the resident expert of your organization.
Business leaders often overestimate how well engineers will understand business generally and their business in particular. You must budget time to review the team’s work and provide feedback. Maybe you’re in the habit of keeping judgment to yourself; there are times when it’s best to do so, but this is not one of them. This is the time to be vocal about your opinions. Your complaints will keep the team on track and prevent larger problems. If it’s a competent team, they will expect this and adapt quickly to your feedback. Over time, they will probably need less feedback as they gain understanding of your plan and preferences.
Part 3 – Conclusion: Learn from failure. Few things in life go well on the first try. Knowing how to outsource is a learned skill and comes with a learning curve. You will need to make adjustments as you go, perhaps changing out one of the team members or asking for revisions to the business contract. If your first attempt doesn’t go well, take time to evaluate what went right, what went wrong, and formulate a plan for doing better next time. Think of each attempt as an experiment. It may have cost you something, but you also learned something in the process that can ultimately bring a return on investment.