If you are thinking of using custom software to improve your operations you may have this dilemma: Do you build the IT solution/software in house or contract out? It’s been my experience that most of the time the best answer is fairly straight forward once you identified some of these factors:
- How well can you articulate your business processes? If you or someone on your staff has a great ability to describe the data your business works with and the processes that it runs on then you could do okay contracting out. One sign that you do have this is that you have good documentation on your processes already (used maybe for training new hires). If you don’t have this, contracting could be a nightmare that you keep having everytime you have a new IT project.
- Duration of work. Obviously if you have a project that you don’t think will have much changes after it’s initial release then that favors contracting out. But if the release is one of many to come, you should consider hiring someone internal. Employees, even with benefits will tend to be cheaper than vendors if there looks to be long term maintenance and ongoing work.
- Importance of work. If what you are building is highly customized and will be critical to your day-to-day operations that I would lean to someone who is is an employee. If it’s important to your operations, you’ll likely have to change it often. Ergo, duration of work is long, thus maintenance costs favor an employee.
- Built to sell. If you are building something with intention of selling then contracting out might be the better solution, because building something with the intention of selling to another company implies a temporary project to me.
- Uncertainty of success. If you are prototyping something and you aren’t sure if it will sell or work, then contract out. Don’t hire someone if you already feel there’s a decent chance you’ll have to let them go.
- IT experience of internal staff. When you don’t believe you have the skillsets in-house to do the job the instinct is to contract out. But the more relevant issues are what I listed above. It can take a few weeks to find the right person, but if this is a project that’s going to be a living and breathing thing for years to come then take the extra few weeks to get the right person and hire direct.
- Ease of getting a vendor vs hiring a person. Getting a contractor may seem quicker and easier, but remember that if you don’t have much experience giving software requirements then the projects are going to be more difficult instead. You have to choose where you want the difficulty. My suggestion, take on the paperwork of a new hire which is over once it’s done versus the non-stop higher costs and complications of an outside vendor when a vendor isn’t really the best solution.
- It’s critical to business operations. Up above I indicated that if its important to your operations then you should hire in house. One exception is if what you need is critical but not really customized or unique, then hiring a vendor who specializes in that specific IT need is the better way to go. Don’t make IT a function of your company unless it needs to be. You may find it best to contract out even if it’s important. Who hires a programmer to write an accounting app these days?
Build In-house or Contract Out?