A trend that has become very popular in the software industry, for well over 15 years now, is the practice of outsourcing. First let’s define what the common meaning of outsourcing is and then we will discuss the Insourcing option.
Outsourcing is a practice used by different companies to reduce costs by transferring portions of work to outside suppliers rather than completing it internally. (ref: Investopedia)
Outsourcing is not the same thing as offshoring, although the terms are often used interchangeably. In IT, this is usually the intended meaning. Development and support tasks are often relocated to a provider that exists overseas, the reason being that the cost of labor is significantly cheaper in less developed countries. Frequently management is also obtained in the foreign country to oversee the work and to review the quality of the final product. WeGotCode is not a provider of these types of services.
Technically, the term can also mean utilizing any third party (contractors, consultants) to handle development tasks instead of retaining internal personnel to do that work. I believe there is a middle ground, which is often referred to as Insourcing.
Insourcing is the commencement of performing a business function that could be contracted out internally: either with the help of a third-party provider who performs the task on-site, or by conducting said task independently. Very often it is seen as opposite of outsourcing. Insourcing is a business decision that is often made to maintain control of critical production or competencies. (ref: Wikipedia)
So insourcing is the practice of bringing on additional help for a project, but handling the work at a place close to the requestor and maintaining tighter control and oversight overall. This is the kind of assistance that WeGotCode can provide. We can locate a developer on site, handle projects independently, or a hybrid model. The hybrid model is typically the most productive and highest value method. Work is done independently, at your pace, with frequent requirements & brainstorming sessions, status updates, and work reviews.
It is worth mentioning that over the past 5 years, the trend has been to shift from an Outsourcing model to an Insourcing model. Frequently this is the result of a failed project or the inability to realize net savings via Outsourcing. Companies who closely audit the success of their projects are realizing that keeping their IT tasks within US shores doesn’t cost more and results in a higher quality product. However, each approach has its pros and cons – let’s review some.
Outsourcing – Advantages
- Lower initial costs
- Reduced overhead
Outsourcing – Disadvantages
- Higher maintenance costs (bugs, refactoring effort, missed requirements)
- Less control over product direction
- Code is often more difficult to extend or integrate
- Teams are working in drastically different time zones
Now let’s compare this with Insourcing…
Insourcing – Advantages
- Ability to meet face to face, collaborate during business hours
- Far more control over project
- Problems like missed requirements are detected and corrected sooner
- Standards that match or exceed your internal standards
Insourcing – Disadvantages
- Higher initial costs
- Locating additional developer resources in a timely manner
I believe that both solutions make sense in different scenarios, and often hiring a new internal resource makes more sense. However, know that if you decide to work with us, we will communicate frequently with you. The development process will be transparent and you will be aware of the status of the project at any time. Project kick-offs are also far more productive because we can meet with you and brainstorm our project on a whiteboard. This is invaluable for ensuring that requirements are fully understood.
WeGotCode welcomes the opportunity to discuss your project. Please contact us today!