Return to site

Outsourcing Works

Five key things in outsourcing software development.

 

Ian H Smith

I have over 30 years' experience of working with startups and enterprises of all sizes. In recent years, this includes building user experience design (UX) and software development teams with digital agencies, IT services firms and systems integrators, operating from remote locations: so-called offshore or nearshore outsourcing.

What amazes me is how CTOs and CIOs in enterprises, large and small, remain so wary of outsourcing to say, India - despite the Indian IT industry growing to a significant size over the past three decades - and other outsourcing destinations growing in Asia and Eastern Europe too.

Yes Boss, Nyet Boss

From direct personal experience - or bias, if you prefer - I see outsourcing of UX design and software development going wrong in Asia and Eastern Europe for structural, not cultural reasons. I hear many CTOs and CIOs complain about a 'Yes Culture' in India - and the opposite, a 'Nyet Culture' in Eastern Europe. I the former, a way to avoid confrontation and conceal issues, until they become a crisis - and in the latter, a stubborn, inflexible attitude to dealing with unplanned changes.

These arguments are false: stereotyping behaviours to hide from the reality: its is a lack of process discipline and human communications that are the real problems here. In order to counter these fears, the offshore or nearshore outsourcing firm must emphasise how they will overcome these perceived risks - and how they will assure CTOs and CIOs that outsourcing UX design and software development brings more than a reduction in headline hourly or monthly rate costs.

In creating new mobile, Web or Software-as-a-Service (SaaS) apps, I think that what matters most to embracing offshore or nearshore outsourcing may be summarised as five key things:

  1. True Partnership
  2. Accountable Method
  3. Smart DevOps
  4. Code-Optimised
  5. Deliverables, Not Hours

Let's discuss each point:

#1. True Partnership

In operating as a multi-shore team, True Partnership means combining the inherent disadvantages of not being geographically close to the customer, from a relationship management perspective, must counter this with a highly-empathetic, yet offering a cost-effective design and development studio based offshore or nearshore. And being empathetic is key: see: Design Thinking below.

The UX designers and software developers who work for you from an offshore location should be dedicated to your brand, your culture and your values - supported by timely talent acquisition, people support and project management services. Get these elements defined as 'Service Level Agreement (SLA) Metrics' in your Master Services Agreement between customer and supplier.

What I have learned about digital innovation is that Design Thinking is a great foundation for enabling a True Partnership between design and development studio supplier and the digital entrepreneur or enterprise IT customer.

I believe in embracing the Stanford d.school Design Thinking process. This is 5 steps for digital innovation: Empathize: Define: Ideate: Prototype; and, Test. These steps are executed in an iterative loop for continuous improvements and enhancements. See more about this topic in my blog post: Design Thinking Applied.

What matters most here is communications and trust. If we truly empathize with the digital entrepreneur (and all stakeholders related to the mobile, Web or SaaS app in question), then the customer and the supplier's Dedicated Team members can better understand what is really wanted, and what works, in co-creating a new app. This means that everyone to be frank, open and flexible at all times: no more 'Yes Culture', no more 'Nyet Culture' - if it ever existing before.

#2. Accountable Method

In my work with digital entrepreneurs I know that the only constant in an enterprise IT operation, new tech venture or digital agency is change. UX designers and software developers must work closely together with onshore customers, to ensure that they maintain an optimum state between best outcomes for both user experience and robust, quality software engineering. In building new, mobile, Web or SaaS apps, the offshore/nearshore firm should adopt - in the jargon - 'Scrumban' as its development method - and underpinned by the iterative 5-steps of Design Thinking.

One of the key strengths to develop is a true balance of in-depth User Experience (UX) design and software development skills. Design Thinking and UX design are core competencies and CTOs and CIOs should seek-out these differentiators in any talent pool for outsourced Dedicated Teams.

Scrumban is the combination of the Scrum approach to Agile software development - underpinned by 'Kanban' Boards, as left-to-right progression through all tasks attributed to the creation and enhancement of a new Web, mobile or SaaS app. This means generating clarity for Deliverables and Acceptance in each time-boxed iteration throughout an Engagement (see Deliverables, Not Hours below). Each iteration is typically of two weeks duration, and, for those readers not familiar with the jargon, this is commonly known as a 'Sprint'.

What always matters here is prioritisation: and in the context of knowing that, for the IT manager or digital entrepreneur, change is the only constant. On the Kanban Board we simply have: To Do; Doing; and, Done. In the real world of creating and continuously enhancing a Minimum Viable Product (MVP), this also means changing priorities along the way.

#3. Smart DevOps

When an enterprise IT organisation, tech venture or digital agency wants to create and publish a new Web, mobile or SaaS app, I understand that this can be a very challenging process. There are many things to consider here and so, let's start with another piece of jargon confronting the digital entrepreneur: DevOps.

As tech professionals reading this blog post know, DevOps is short for 'Development Operations': meaning the combination of mindset, method, competencies and tools applied to 'operationalise' services related to mobile and Web apps in the cloud. Done right, this is delivering the services at high velocity to shorten time-to-market; optimising cloud platform performance, whilst minimising costs; and, ensuring that user on-boarding and related app reviews are positive experiences.

One of the challenges with public cloud platforms is the pricing models that digital entrepreneurs have to work with. Leading players offering Infrastructure-as-a-Service (IaaS) or higher-level Platform-as-a-Service (PaaS) public cloud platforms offer 'elastic' pricing models, calculated as usage of the services online. This is how Amazon Web Services (AWS), Google Cloud Platform, IBM Bluemix, Microsoft Azure, and Salesforce Heroku works. It is also how many Low-Code Platforms work - so even if Code is replaced by automation, understanding or predicting use and adoption of a Web, mobile or SaaS app is rarely helped by these cloud infrastructure vendors.

For new mobile and Web or SaaS apps this 'elastic pricing' presents a significant challenge in forecasting and validating such usage, and therefore, understanding what the real costs for this underlying Infrastructure-as-a-Service (IaaS) or Platform-as-a-Service (PaaS) is going to be. This has to be calculated well ahead of finalising the Minimum Viable Product (MVP) release.

Smart DevOps brings together many things: the ability to define and create a Minimum Viable Product (MVP) that achieves an optimal path to timely go-live releases; an app built for scale, yet minimises costs of underlying cloud Infrastructure-as-a-Service (IaaS) or Platform-as-a-Service (PaaS); and, integrating customer success through structured on-boarding and support for users around the globe.

#4. Code-Optimised

Software engineering accounts for the majority of spend for the digital entrepreneur creating a new tech venture or digital agency service. In a typical tech venture, the ratio between researcher, designer and developer is 1:5:100. However, in many tech ventures, this ratio is greatly influenced by how much a given mobile or Web or SaaS app is (or should be) coded ground-up, versus making use of prebuilt business logic in the cloud. This is the trade-offs between Code, Low-Code and No-Code.

In my experience, too many tech ventures underestimate what it takes to build and manage highly-scalable infrastructure and services around a new mobile, Web or SaaS app. This brings into play our key principle of being Code-Optimised. It is a continuous 'make versus buy' decisioning.

We assume that the arguments about on-premise versus on-demand (public cloud) computing have mostly been resolved, and bar a few exceptions, the majority of new tech ventures or services will live in a public cloud platform - e.g. Amazon Web Services (AWS), Google Cloud Platform, IBM Bluemix, Microsoft Azure, or Salesforce Heroku.

So, now, the key question with new mobile and Web apps is not about infrastructure, but about the business logic and presentation layers. What is the optimum balance of three states: Code; and/or Low-Code; and/or, No-Code? Read more about this in my blog post on Platform Rethinking.

Let's define these three categories of Code, Low-Code, and No-Code.

Code is where the majority of tech ventures and IT operations are today: applying ground-up coding to everything in the business logic and presentation layers of mobile and Web apps, and more recently, making optimal use of the latest architecture for 'Microservices' (a collection of loosely-coupled services). There's endless debate about what languages are best for 'serverside' and 'clientside' and increasingly, we see 'JavaScript Everywhere' (Node.js, React, et al).

Low-Code is the term applied to platforms that offer software developers and tech-savvy IT analysts the opportunity to create new mobile and Web apps through an optimal mix of visual development and use of prebuilt models ( or 'objects'), limiting Code to elements that cannot be created in this way. There are many Low-Code Platforms available today, such as Simplicité.

No-Code is the term applied to platforms that enable business users and consumers to create and publish mobile and Web apps, without recourse to any form of syntax-level programming of Code. For very simple apps, the Salesforce Platform was an early pioneer of No-Code.

#5. Deliverables, Not Hours

The fifth differentiator here is: Deliverables, Not Hours. Of course, business productivity and viability relates to time, but this also means ensuring that an Accountable Method (Scrumban, as described above) enables clear communications and therefore, what comprises the Deliverables in each Sprint - e.g. each period as two weeks of work.

Although we know that the only constant for a digital entrepreneur is change, you want to introduce certainty wherever you can. So, if you can clearly communicate the Deliverables and Acceptance criteria for each Sprint, since you can quantify the human effort here, you can also provide a Fixed-Price, Fixed-Time - per Sprint. Hence, you can pay on Deliverables, Not Hours.

Conclusion

Over two decades, I have worked with many digital agencies and their predecessors - the IT services firms and systems integrators. What works best is a combination of the right mindset and what we also believe is the best method for your Dedicated Teams - indistinguishable from your onshore employees.

These things are difficult to judge, until you put them to the test.

So, if you are a digital entrepreneur, let's explore how you combine five key differentiators as your advantage: True Partnership; Accountable Method; Smart DevOps; Code-Optimised; and, Deliverables, Not Hours.

All Posts
×

Almost done…

We just sent you an email. Please click the link in the email to confirm your subscription!

OKSubscriptions powered by Strikingly