Return to site

Outsourcing Works

Five key things in outsourcing software development.

 

Ian H Smith

I have over 40 years' experience of working with startups and enterprises of all sizes: firstly, in plastics engineering; secondly, in information technology (IT). In recent years, my work has included building user experience design (UX) and software development teams with digital agencies, IT services firms and systems integrators, operating from excellent remote locations, such as Ukraine.

What amazes me is how CTOs and CIOs in enterprises, large and small, remain so wary of nearshore/offshore outsourcing - despite, for example, the Ukrainian IT industry growing to a significant size over the past two decades.

Focusing on Five Things

When considering the fear of failure in software development outsourcing, it 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 software design and development brings more than a reduction in headline hourly or monthly rate costs.

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

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

#1. True Partnership

In operating as a multi-shore team, True Partnership means countering the inherent disadvantages of not being geographically close to the customer, from a relationship management perspective, must counter this with a highly-empathetic operation onshore. And being empathetic is key.

The UX designers and software developers who work for you from say, a nearshore location, should be dedicated to your brand, your culture and your values - supported by timely talent acquisition, people support and project management services. This means defining a 'Service Level Agreement (SLA)' as quality/performance metrics, as an Appendix to a Master Services Agreement (MSA) between client 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 client.

I believe in embracing the Stanford d.school Design Thinking process. This is five 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 or CIO/CTO (and all stakeholders related to the mobile, Web or SaaS app in question), then the customer and the supplier Dedicated Team members can truly understand what is really wanted, and what works, in co-creating a new app. This means that everyone has to be frank, open and flexible at all times during each of these Design Thinking iterative loops and steps.

#2. Accountable Method

In my work with entrepreneurs and CIOs/CTOs, 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 secure, quality software engineering. In building new Web, mobile or SaaS apps, the outsourcing firm should adopt - in the jargon - 'Scrumban' as its development method - underpinned by the iterative steps of Design Thinking.

One of the key strengths to create 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. See infographic above. This means generating clarity for Deliverables and Acceptance in each time-boxed iteration throughout an Engagement (see Deliverables, Not Hours below). Each of these iterations are typically of two weeks duration, and, for those readers not familiar with the jargon, they are commonly known as 'Sprints'.

What always matters here is prioritisation: and in the context of knowing that, for the CIO/CTO 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. In many ways the 'product' should be thought of a 'service', which introduces the concept of Servitization. See my blog post: Platform Rethinking.

#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 now consider another topic, complete with its own 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 Web, mobile and SaaS apps. Done right, this means 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.

DevOps includes Continuous Integration: where developers regularly submit their code changes into a central repository, followed by automated building and testing at each iteration. Underpinning DevOps and Continuous Integration must be security: applying iterative and highly-structured cyber security practices at every stage ("Sprint') of the software design and development lifecycle.

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 Cloud (Bluemix), Microsoft Azure, and Salesforce Heroku works.

For new mobile, Web or SaaS apps, this 'elastic pricing' presents a significant challenge in the forecasting and validating of 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 a 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.

#4. Code-Optimised

Software engineering accounts for the majority of spend for the entrepreneur or enterprise creating a new tech venture, MVP or service. In a typical tech venture, the ratio between researcher, designer and developer is 1:5:100. However, in many tech ventures or IT organisations, this ratio is greatly influenced by how much a given app is 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 and enterprises underestimate what it takes to build and manage highly-scalable infrastructure and services around a new app. This brings into play our key principle of being Code-Optimised. This is a continuous 'make versus buy' decisioning process.

The trade-offs between Code, Low-Code and No-Code also apply to packaged apps, such as Salesforce or SAP SaaS solutions. This includes applying Low-Code Platforms as prebuilt business logic, such as SAP Fiori: a visual language and set of components for maximising user experience with Web, mobile and SaaS apps.

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 Cloud (Bluemix), Microsoft Azure, or, Salesforce Heroku. However, if 'hybrid cloud' architectures are selected, to blend on-premise data centres with public or even private clouds, the key principles established here about Code, Low-Code and No-Code still apply.

So, now, the key question with new Web, mobile or SaaS 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: 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é or through using User Interface (UI) Frameworks, such as SAP Fiori.

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 - located in nearshore (to UK), but indistinguishable from your onshore employees.

These things for entrepreneurs, CIOs and CTOs are difficult to judge, until you put them to the test.

So, if you are a digital entrepreneur or enterprise CIO/CTO, let's explore how you combine the five key differentiators as your advantage in software design and development outsourcing: 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