As mentioned in my first post, OPD (Outsourced Product Engineering) has been around for decades. However there still exist so many individuals in an ISV who:
- Have not outsourced at all
- Are sitting on the fence (fear of unknown)
- Have burnt their hands in previously outsourced project(s) and would not tread that path again
- Fear Intellectual Property (IP) leaks
- Have to allocate management bandwidth in managing a partner (this is more relevant for off-shoring and managing team member(s) across different time-zones)
- Feel cultural differences will be a challenge to successfully execute a project
All points (and similar) mentioned above sound like "why would one not outsource" and there can be many more reasons which can be added to the list above.
Now, let's look at specific challenges which push individuals to outsource product engineering:
- Products need to be rolled out on-time to gain a competitive edge (and similar reasons), lack of resources (skilled or sheer number) will delay its release.
- Limited budget requires looking at resources available at lower cost. In case of software products, in most scenarios Time (product release) and Money (budget) parameters are fixed, flexible parameter is "list of features". By reducing one parameter, other two will stretch. If either or both fixed parameters need to be addressed, one way out is to engage with an OPD vendor/ partner who brings required skills and experience.
If a product needs to be released in 6 months’ time, development of a product is broken into multiple work packets or activities. To execute these activities you may require specific hardware, which, if purchased, might be over budget. Solution: explore the option of leasing a hardware (physical or in cloud) which translates into engaging an outsourced vendor.
Similarly, to build a RESTful API or vCenter plugin or any specialized component(s) requires skilled workers and that too for a smaller duration. Hiring a set of FTEs to build such components will be an overhead (once the component is built). Such scenarios would require engaging with a specialized engineering partner who will build quality component to release the product on time.
If you look at different phases across PDLC, there are multiple areas where a product engineering partner / vendor adds value.
Following is a brief list of reasons why individuals of companies outsource product engineering:
- To address the requirement of specialized skills which are hard to find or will take time to get them on board or are not closely tied to the product development (relate it to domain consultants in an organization - common management phenomenon)
- Reduce time to market (e.g. an engineering partner has half-baked solution which can be quickly integrated and thus can reduce time to market) to gain first movers advantage or competitive edge
- Current team is unable to scale and needs additional help with technology nuances, processes, tools, techniques / best practices etc.
- Key resources are locked into sustaining a product, they might as well be used in other / newer products
- ...... and many more
I'm sure you noticed that I am referring to individuals of company in reference to outsourcing. At the end of the day it depends on set of individuals who take the call "whether to outsource product engineering or not". On the other hand there are set of individuals who engage with ISVs and deliver quality products/components.