Organizations that embark on digital transformations quickly realize that their scarcest resource becomes the software engineers who are tasked with building their offerings. One effective way to allocate resources is to take a three-pronged approach:
Hybrid approaches of this sort are faster to develop, more differentiated, and better quality than those built entirely in-house. Businesses benefit from better alignment of budgets with market needs and higher satisfaction and engagement of internal teams.
Successful companies have reacted to these market trends by reallocating their resources. Internal teams have been focused on the development of unique differentiators along with the stewardship and evolution of the overall solution. While necessary customizations such as integrations and non-differentiating features have been outsourced to complementary engineering firms that can work closely with in-house teams. Finally, SaaS solutions have been used to provide the remaining standard services that are commoditized and will not differentiate the offering but are necessary table stakes.
As part of their digital transformation most companies have started to outsource basic capabilities to SaaS providers and many are reaching the point where they have outsourced most of the services they reasonably can. This is not, however, the end of the transformation journey. The next step is to outsource the development of services that cannot be purchased as SaaS, but need not be developed in house. With the right partner this is not only possible, it is desirable and advantageous.
Not every development effort will be the right fit for outsourcing to a development partner. But there are some common project characteristics that make it easier to identify when an outside team can help. Any software system can be divided into three broad tiers representing:
The pyramid on the left shows the relative proportion of features in a typical solution that fall into the three categories—most features are commodities and only a few are truly differentiating. For example, a proprietary ad buying function for a digital music service is important, but will not differentiate the overall service unlike a recommendation service that could differentiate the offering. Similarly, a data analysis and insight pipeline would be valuable to a healthcare service provider, but would not differentiate their service unlike a patient-centric mobile application that could be the difference between success and failure in the market.
The inverted pyramid on the right shows the typical staffing allocation for the three categories. Most businesses already focus a significant number of in-house technical resources—the folks who know the details of your business—on the differentiating services that directly drive revenue and growth. But there are smarter ways to use the 15% of your development team focused on non-differentiating features.
A few large businesses do all development work in-house but most businesses should opt for a more cost-effective approach. With 15% of software engineering resources dedicated to developing services that are important but not differentiators, businesses risk falling behind more focused competitors and diluting their overall value. Often, developing custom features that integrate off-the-shelf cloud services and internal systems while meeting specific business needs is essential to ensure successful digital transformation; this work is usually a good fit for outsourcing.
Even for companies with effective and mature processes the alternative to outsourcing is expensive and slow. Hiring, onboarding, and training new employees takes months and includes many additional costs (how many interviews will your hiring managers have to endure?). Independent contractors have the same recruiting and training issues, and someone has to worry about retaining and supervising these individuals.
Hiring a new team and training them to the same level of capability as staff currently focused on non-differentiating services would take many months and incur a large cost. Backfilling these existing staff with an embedded outsourced team will free up your internal experts now and set them to work on higher impact projects right away. Plus, developing unique and differentiating features is often some of the most rewarding and challenging technical work that will help to keep your top-performers engaged and committed to your business. The value of this should not be underestimated: how else can you get a highly-skilled team of your own staff to start work on new, high-value features, today?
If you think you have the right project and want to outsource microservice development successfully, keep the following ‘Must-Dos’ and ‘Challenges’ in mind.
Digital Transformation, Cloud Migration, Containerization, and DevOps are driving major shifts in solution development approaches. Smart companies have the opportunity to focus their scarcest resources on their most important and differentiating software development efforts while maximizing throughput with tailored help from outside experts. Here at SPAN, we have seen our clients quickly deliver significant differentiating features using this approach.