If you want to build a web site (or other piece of software) but don’t know how to code, outsourcing programming looks like a no-brainer. There are plenty of companies that offer skilled developers, and if you’re willing to go offshore, they can be found relatively cheap.
But before you commit to working with an outside company, there are some things you should consider.
Cost: Prices may vary, but development firms are generally not cheap. Neither, you might respond, is hiring a full-time programmer yourself. But if you bring someone on internally, you may be able to trade something other than cash for the work. Starting a business? Maybe a partnership with equity makes sense.
Depending on the complexity of the work required and the level of importance to your business, you may also be able to find talented programming students willing to work for credit or a stipend as a way to get their foot in the door and gain professional experience.
Scope: If you outsource programming, you have to define up front the scope of the work being done. If you realize part-way through the build that something needs to change, it’ll cost extra. That pressure can make it harder to correct designs or decisions that were made incorrectly the first time.
On the plus side, it also forces you to focus. Want to tweak a page? Think you need a new feature? How much is it worth to you? Knowing that changes will cost real money forces you to keep an eye on the big picture and forgo spur-of-the-moment ideas that can take valuable time and resources and keep you from reaching the finish line. Minimum viable product becomes a very important phrase.
Another advantage to outsourcing is you don’t have to worry (as much) about the availability of a single person. If you have one in-house developer and that person gets sick for a week, your code doesn’t change. If that person finds a better paying job elsewhere? You’re back on the market looking for a new person who can pick up where the last one left off. There’s no shame in letting another company worry about whether or not the programmer is in the office that day.
Oversight: It’s always nice to know what’s going on. Outsourcing programming means meetings and conference calls just to stay on top of where things stand. And if you aren’t in the room, you don’t know if your project is being worked on or if your team got called to tackle an emergency for a different client.
Bottom Line: Sorry. There’s no single right answer. The right decision is the one that’s best for your business and your needs. Just make sure you think through the ramifications before making a decision. What resources (talent, money, time) are at your disposal? What are your needs?