TO SOURCE OR NOT TO SOURCE?
Many of our clients ask this key question, to outsource or not. Here we provide a quick guide for your enterprise, established or early stage venture, on when to outsource and when to build a team internally. A caveat to everything you are about to read is that we do not believe that there is a one-size-fits-all algorithm for you to arrive at this decision. The most lean companies understand when to outsource a function and when to keep it in-house, provided market conditions allow for skills to be found easily. When to keep in-house: When undertaking a new project there is always a need to hire staff on a permanent basis. The main problem with hiring full-time staff is that this job function in time might not always be relevant to the business. This means the hire does not justify the salary of a full-time employee. Product owners/managers:
When we are talking about a small company on a budget, like a start up, the management and people designing the product should be kept in-house. These are permanent hires naturally as these people will drive innovation, build the product and typically be there for the long haul.
Product owners/managers in particular fall into this category. It is difficult to outsource this function unless the contract term extends for many months, if not years. This person is integral to the business, core to its purpose and must live and breath the creation process as well as the end result.
Usually this person requires some level of authority which is needed to lead the team building the product.
When we are talking about a large enterprise with mature products that will not be changing any time soon, this function can be outsourced.
When to outsource: Generally, if a function is performed once in the SDLC (Software Development Life Cycle), it makes sense to outsource, or augment your team for short bursts. Cost is an important consideration as sometimes outsourcing appears inexpensive and attractive, but the results could turn out to be sub-par or different to your expectations. In some markets, specialist skills just cannot be found on a full-time basis either. Outsourcing firms and consultants with international reach can step in at this point. We have ordered the following roles according to how you would encounter them along the SDLC.
The purpose of this individual is to define the business outcome and extract value out of the software asset.
This can be done on a consultative basis.
Brand design is often only done at the outset of a project or company.
This function works well to be outsourced as the process of finding multiple vendors can actually lead to showing the client (you) what you want from design.
Vital to consumer-based products. These days, consumer based tech companies face massive competition as the underlying tech behind these businesses becomes easier and easier to implement technically.
Good user experience can make or break the project and there are software development companies like PYGIO that spend significant time on this process. We use our experience to deliver user-centric products.
Imagine having an ex-Apple UX/UI designer work on your next big project.
This role can go both ways. For an initial build, a lead engineer is responsible for architecting a solution or product.
However, once the product is built, it is not always necessary to have a full-time lead engineer onboard, especially for smaller projects.
This role is the most in demand. It is needed in ad hoc bursts of demand too. Typically you always want a number of seniors leading the project but this does not always have to be an internal senior/lead engineer.
Rethinking/redesigning an approach can take months or maybe years but the physical work for a senior might be sporadic. This is especially true when talking about support and maintenance. When the product growth is low or stable, it is not always needed to have a senior engineer employed full-time. Outsourced, part-time allocation works best here.
Junior to intermediate engineers:
These roles are often needed as support and fulfilling a brief. Often these devs are still learning and this comes with its own challenges.
Strong junior to intermediate engineers take the lead of their seniors and are prime candidates for an outsourced role as they might not be doing any product architecture or innovation.
The benefit of this is that often these individuals are hungry and eager to learn, and come at good value for money.
These are highly necessary resources in a software-based business. This role is often overlooked and its value is undermined, but a good tester ensures business continuity and ultimately superior end-user experience. This builds a stronger relationship between our clients and their end-customers.
This work is sporadic and can be outsourced but be careful to ensure that the tester is aligned to your company’s expectations on UX.
The above insights and roles may be blurred from company to company. This text aims to serve as an approximate guide for your software resourcing needs when building your next product. Not sure what path to take? Email us at email@example.com and let's chat!