Software Development – In House Vs Outsourcing

Like many businesses, there is continuous pressure to take the business to the next level. In just about all cases, Technology plays a critical role in company’s strategy today, Most companies today, feel that they have the internal resources to do this or the answer is to simply hire someone to do the job. In reality, Application development is not easy and requires collectively conducting an orchestra of many moving components all at the same time. If done right, you really do have the “next best technology”, but if you fail, you have flushed away precious dollars, while your competitors continue to advance.

Web based applications have advanced so aggressively in functionality that a sharp programmer has to be in a continuous learning and adapting pattern or risk being “obsolete and irrelevant”. People’s demand, tolerance and expectations have changed over the past 5 years and approaching Software development like you did in 2009 can’t be the same way as today.

Most of the time, one person simply isn’t going to get your project done. The general rule of thumb is that if you plan to invest more than $20,000 in your project, you don’t need a developer; you need a dream team.

Four Challenges to Consider Before You Start Recruiting

While the Do It Yourself approach is great for building a very simple, internal software application, that typically only does a few functions, it just doesn’t work for a larger scale software development. You can encounter several obstacles when attempting to build this team.

Companies often hire the wrong person because they don’t know exactly what they’re looking for. They may put out a job posting for a Java developer hoping the right person will fall into place. Yes this person might be qualified a Java programmers, but there are may other considerations to consider- for example, is this person deliver work “on time” or not?

You can also have unexpected setbacks if a developer quits and often there are needs for back ups. Have you considered this in your project budget too?

This is why I highly suggest from experience to consider the Pros and Cons before attempting to take on a project in house.

1. Make sure you know enough about development to have the optimal mix of skills needed to complete the project.
Most of the applications that we build are complex, expensive and require a large knowledge of experience. Yes, we have made mistakes but we have learned exactly what to do and not to do. A typical project requires one architect, one designer, two back-end developers, one front-end developer, and one part-time project manager. If you get the team ratios wrong, you can create devastating project bottlenecks.

2. Developers are not Robots, they need to adapt. 
Developers create software that run the same routines infinitely and don’t complain, but developers themselves are human When building a website or web based application, it’s important to have the teams aligned both with the overall objective of the project (what are we trying to build, what problems are we solving) all the way to ensuring there is a meeting of the minds on; testing methodologies, best practices, frameworks, integrated development environments, coding standards, etc.

If you do pull a team together, be prepared for culture clashes. Don’t be surprised if the internal employee with the closest tie to management wins, even if his/her proposal is the worst. In my 20 year career I have seen this mistake repeat like the sun shines every morning!

3. Consider your internal costs
You shouldn’t ever hire an in-house development team to save on costs. Think about the tools, software, systems, duplication of tasks in case someone leaves and licenses. Developers need an integrated development environment. Good Business Grade Software is expensive! You’ll need to buy it first and spend time setting up before you even see any type of ROI.

4. Project Management a walk in the park, think again! 
From the outside, a website or web applications seems like a simple set of pictures and buttons; in reality, it’s very complex. A car for example, only can take you from Point A to Point B, yet the motor of a car is sophisticated and car manufacturers spend billions on R&D. Developing a software application requires skill in which you take someone’s vision (which is never clear until the end) and materializing it into a software application that does just that. Next factor in, that it should handle all sorts of unknowns (Example, New Operating Systems, Updated Browsers etc..) In short, project management is extremely hard.


Why Outsourcing is a Viable Option:

Hiring an outside software development for your website development project means you don’t have to worry about any of these challenges and more. There are many large companies that have billions of dollars that understand that often “outsourcing” is the cleanest, cheapest and most accountable way to get the job done.

While management always have the best intentions, in some cases (not all); projects can lead to; delayed projects, wasted money and someone’s head getting chopped off. Often we fix projects that are broken or their is a knowledge gap when someone leaves. Consider the costs and finger pointing when internally things go wrong, as opposed to amilestone and delivery based pricing structure. Consulting companies have seen it all- learn from their experience.


Maurice Berdugo
CEO – BP Analytics


Leave a Comment

Your email address will not be published. Required fields are marked *