I have over 40 years' experience of working with tech startups and enterprises of all sizes: initially, in the plastics industry; mostly, in information technology (IT). In recent years, my work has included building software design and development teams with fast-growth startups, digital agencies, IT services firms and systems integrators, operating from Ukraine and India.
What I am very aware of is how much CTOs and CIOs in enterprises, large and small, remain so wary of nearshore/offshore software design and development outsourcing - despite, for example, the Ukrainian software development outsourcing industry growing to a significant size over the past two decades. I understand these concerns and let me address them head-on in this blog post.
Today, I lead the UK & Ireland venture for Infopulse, Ukraine's fast-growing Software Lab with over 2,000 people, focused on advanced technologies, including Artificial Intelligence (AI)/Machine Learning, Blockchain and Cyber Security. Our work is driven by the five things that I see as key in achieving success with software design and development outsourcing.
Focusing on Five Things
When considering the fear of failure in software design and 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 outsourcing firm must emphasise how they will overcome these 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 software design and development outsourcing success means focusing on five things:
#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, this must be highly-empathetic with onshore customer operations, seamlessly integrating with the design, development, delivery and ongoing support activities.
The UX designers and software developers who work for you from a nearshore location, in say Kiev, Lviv or Dnipro in Ukraine, 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, cleared described as an Appendix to a 'Master Services Agreement (MSA)' between the parties engaged.
Beyond the mechanics of the MSA, SLA and related comforts of Non-Disclosure and Non-Compete Agreements, it is most important to align at a human level. This means having people travelling on a regular basis to and from each location to the other, augmenting everyday online communications with regular face-to-face interactions - say, two-four times each year.
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 other key stakeholders), then the Dedicated Team members can truly understand what is really wanted, and what works, in co-creating say, a new Web app and more generally, undertaking a breakthrough digital innovation. This means that everyone has to be frank, open and flexible at all times during each of these Design Thinking iterative loops and steps. This must generate sufficient receptivity and rapport, which in turn, leads to trust.
True Partnership is very different to outsourcing software design and development to suppliers, via arm's length procurements, where competing services organisations respond to written Request For Proposal (RFP) documents, and usually where, a lack of true understanding of what's needed becomes a heavily caveated offer, invariably based on billable people hours, no challenge of assumptions made on the buyside, and rarely, any offer of shared risk/reward by the supplyside, since too little is known at the point of submitting a cold, abstract written Proposal.
#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. Nearshore 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 - and this should be underpinned by the five 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 (Citizen Developers too, with No-Code Platforms) regularly submit their code (or configuration) 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' of underlying cloud IaaS or PaaS technologies presents a significant challenge in the forecasting and validating of such usage, and therefore, understanding what the real costs for this underlying technology is going to be. This has to be calculated well-ahead of finalising a Minimum Viable Product (MVP) and ongoing releases.
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 IaaS or PaaS; and, integrating customer success through structured on-boarding and support for users.
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 Design Language and set of reusable components for maximising user experience with Web, mobile and SaaS apps. Similarly, with Salesforce Lightning Platform, as both No-Code and Low-Code Platform, this can also embrace a similar Design Language and reusable components: Lightning Design System.
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?
Let's define these three categories of Code, Low-Code, and No-Code.
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 Design Languages and reusable components, such as SAP Fiori, Salesforce Lightning Design System or Microsoft Fluent Design System.
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 forms-based apps and workflows, the Salesforce Lightning Platform was (and still is) 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.
Over four decades, I have worked with many tech startups, digital agencies, IT services firms and enterprise IT organisations. What I have found 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 Ukraine (to say, 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 these five things as your advantage in software design and development outsourcing: True Partnership; Accountable Method; Smart DevOps; Code-Optimised; and, Deliverables, Not Hours.
We just sent you an email. Please click the link in the email to confirm your subscription!