In-house and Out-sourced

A debate got quite lively over at On Startups regarding the benefits of the two options a company has when it comes to developing technology, that is, should the development be outsourced, or should a team be hired internally (Is Hiring Another Software House to Build my Web-based App Prototype a Good Idea?).

I am starting up my web-based application business. I have an idea and already done some research on this idea, and now I want to realize it. There are two choices for me either to hire a soft warehouse to build this web-based software, or to hire my own in-house development team.

I am not sure what are the pros and cons of these two approaches?

Will hiring the soft-warehouse creates difficulties later?

What could be a problem if I first hire software house and then get the project transferred back to my in-house development team?

There are several questions posed here, and I will only address some of them.

First, there’s a fundamental question to be addressed, which is whether the application itself is the business, or if the application is merely a means to allow some other business to exist. As an example, a website which sells a product or service is not core to the business itself – while it might be a necessary component to the business’ operations, the website itself is not a trade secret or the like. On the other hand, if the entire business is built around the application, that is, the application itself is the business, then that would be considered to be core to the business.

In general, if the technology is core to the business, it is preferable to bring the development in-house. The reason is simple – risk control. Since the technology is what constitutes the business, when going to an outside company to do the development, there’s a risk that they’ll build the application and run their own business from it.

There is another option, though. Sometimes it might not be practical to build the application yourself. You might need to bring in many other people to make the vision a reality. Do you have the ability to assess the skills of those you might hire? Do you have the ability to assess the capabilities of a technical partner?

When it comes to assessing the capabilities of an outside company, it’s actually pretty simple. You look at some of the previous projects they’ve worked on, you talk to the various people who would be running your project, and you try to get a feel for their skills. You are not concerned with the skills of any one individual, but rather, with the skills of the team as a whole.

You’re also highly concerned with the ability to communicate.

Perhaps the largest cause of failure and difficulties in projects is a lack of proper communication when needed. Sometimes there will be too much communication, leading to confusion as one group is presented with more information than they need or want to know. Sometimes there isn’t enough communication. Other times, information is shared between the wrong people. Sometimes, the two people are talking, but they aren’t communicating.

As such, it is important that, when interviewing prospective outside companies, that you ensure that you are able to clearly communicate with the representative what is you are looking for, and that the company in turn presents you with the proper information you need. If there are difficulties during the research phase, it will only get worse during the actual project.

In the next article, I will discuss some of the ways in which you can alleviate the risk of taking over a software project from another team.