The technology platforms that represent the foundation for digital innovation are rarely understood by business people, and it is usually up to tech people to decide what the 'stack' looks like, as underlying code and architecture for Web, mobile or Software-as-a-Service (SaaS) apps.
Given the confusing, overlapping classifications of what underlies a technology platform in the cloud, it is very difficult to present a single, unbiased view of what represents optimal architecture or best practices, when considering digital innovation.
Why Platform Rethinking?
I have called this blog post 'Platform Rethinking' to emphasise a need to rethink tech infrastructure: to challenge some of the assumptions made on all sides of the fragmented business and tech communities who invest in, produce or consume Web, mobile or SaaS apps. This is an argument for applying a 'Platform Architecture' as the starting point for digital innovation - versus reinventing the wheel by coding everything ground-up.
So, ground-up development of new Web, mobile and SaaS apps continues in the belief that it is necessary. This is outdated thinking. We now need to think of Platform Architecture in terms of being either Code, Low-Code or No-Code - and often, a combination of two or three of these Platform Architecture types.
Platform Architecture Types
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 apps, the Salesforce Lightning Platform was an early pioneer of No-Code. This is the most challenging Platform Architecture of all: how to create a meaningful set of reusable components and modules that completely removes syntax-level programming of Code. In many new developments, spreadsheet-like components may be built as No-Code, and then cut-and-paste as Code 'script' into No-Code, Low-Code or Code Platforms.
Traditional IT services firms, who have built their businesses on billable people hours, view prebuilt technologies as competitive. Other, more enlightened IT services firms embrace such reusable components and prebuilt business logic wherever they can. Why? Because business becomes progressively less exposed to the volatile billable people hours model, and clients enjoy the cost savings that comes with the use of predictable reusable components or prebuilt business logic.
What constitutes Code, Low-Code or No-Code is expanded upon blow and also in another of my blog posts: Outsourcing Works. There are many technologies that enable better guidance and productivity in pursuit of optimising User Experience (UX) with digital innovations.
The ultimate goal is to see Code, Low-Code and No-Code as truly interoperable: selected by different users, according to their needs and skills, in a highly-collaborative approach to digital innovation. What we know for sure is that no single organisation can create all three approaches to building the User Interface (UI) and related reusable components for the prebuilt business logic layer. This evolves into 'Radical Collaboration' beyond the boundaries of a single organisation: it becomes key to achieving more for less in the pursuit of digital innovation.
Defeating Complex Thinking
In digital innovation there is a need strike an optimal use of a Low-Code or No-Code Platform with Code - underpinned by Design Thinking as the method of execution. This is simply an extension of creating the right balance between packaged and custom software, as in the past. What enterprises and government agencies should be wary of today is 'Complex Thinking': the tendency of traditional IT services firms, who need to maximise billable people hours, and apply excessive ground-up Code, where prebuilt Low-Code or No-Code Platforms are a better choice.
In my view, billable people hours for Code should be subjected to 'Lean Thinking'. This means taking a critical view of what truly represents value-added versus non-value-added in a Value Stream related to a particular process, or service ripe for re-engineering through digital innovation. This is where a set of reusable components (built with a Low-Code or No-Code Platform) should always displace ground-up, syntax-level Code, wherever possible.
To defeat Complex Thinking, Design Thinking may be blended with Lean Thinking. If we take this approach further, you will find that Lean, in the form Hoshin Kanri, is a solid way to translate ideas into timely, measurable value outcomes. Hoshin Kanri is two Japanese words which translate as 'direction' and 'administration'. It is practised extensively in the automotive manufacturing industry, and defined as:
"A method for ensuring that the strategic goals of a company drive progress and action at every level within that company. This eliminates the waste that comes from inconsistent direction and poor communication."
Platform Rethinking, Applied
Armed with a team of strategists, designers and developers, immersed in the real world of creating Web, mobile or SaaS apps you can deliver a world-class Platform Architecture for digital innovation based on:
1. Code, Low-Code or No-Code
2. Design Method
3. Design Guidelines
4. Continuous Integration
5. Business Logic
7. Smart DevOps
#1. Code, Low-Code or No-Code
The concept of a Low-Code Platform is more mature than a No-Code Platform, as a complete automation enabler for digital innovation. The pure No-Code Platform is some way from being available as an enterprise-grade solution, without some Low-Code support. Since the real world suggests that we will be moving to a blend of Code, Low-Code and eventually, No-Code, I argue for a tech architecture built on a solid prebuilt business logic: effectively, a No-Code and Low-Code Platform combination, such as Salesforce Lightning Platform or with more Code, using a Design Language and User Interface (UI) Framework, such as SAP Fiori, Salesforce Lightning Design System or Microsoft Fluent Design System.
On top of the prebuilt business logic is a 'Studio': tools that allow any combination of Code and Low-Code to apply, and designed for different types of users. This enables a broad community of users to collaborate: from 'hard core' programmers (Code) through tech-savvy IT analysts and developers (Low-Code), and to what is now emerging as so-called 'citizen developers' (No-Code).
The interplay between the prebuilt business logic and Studio layers is where a packaged solution in the cloud is categorised by IT industry analysts Forrester as a 'Digital eXperience Development Platform (DXDP)'. This combination of prebuilt business logic and Studio provides the rapid, visual assembly of reusable components, templates and sample apps. What follows is an optimum blend of Code, Low-Code and No-Code blended approaches to digital innovation.
#2. Design Method
A Design Method is essential as a foundation for capturing ideas and uncovering the truth about problems, challenges and opportunities related to digital innovation today. Design Thinking is key to this approach: simply meaning that you can solve problems in a people-oriented way.
What matters most here is truth. And truth only comes when all stakeholders in the tech venture, digital agency or IT organisation in question have achieved sufficient levels of receptivity and rapport with the collaborating IT services provider.
This Design Method is based on the five steps advocated by the Hasso Plattner Institute of Design at Stanford University (d.school), and underpins everything you can accomplish with selecting and using an optimised combination of Code, Low-Code and No-Code for digital innovation.
#3. Design Guidelines
The maturing of Design Guidelines work well for Code-based Web, mobile or SaaS app design, where you can embrace best practices for User Experience (UX) Design.
This also relates to three Design Principles, comprising:
I. Meaningful Journey
II. Fierce Reduction
III. Progressive Disclosure
All of these Design Guidelines and Design Principles serve a foundation beyond traditional, Code-only approaches to Web, mobile or SaaS app design. This is pragmatic Design Thinking for the ongoing development of the blended No-Code and Low-Code Platform options too.
I. Meaningful Journey
When designing a next generation app, the first thing to create is its journey: the path, steps or tasks that users will complete in providing a service, undertaking work or solving a problem. With Lean Thinking at the heart of the design, this means removing steps or tasks that are wasteful or unnecessary. Therefore, this journey must be a Meaningful Journey: from the moment a user goes to the login page, to the moment they logout, when the task(s) or work is done.
II. Fierce Reduction
When users get confused with Web, mobile or SaaS apps, it's usually because what they are confronted with on a page view offers too many choices of what to do next. Often, there is no obvious place to go or action to take from a particular stage in what should be a Meaningful Journey. What's needed is a fiercely reductive mindset: a way to eliminate everything on each screen that distracts from any action at each stage.
III. Progressive Disclosure
When designing a Meaningful Journey and applying Fierce Reduction, it is better to have more clicks or swipes through pages of an app, than add too many options in any given page or screen view. This means that with a fiercely reductive mindset, you will have to engage in a trade-off between simplicity of page or screen view, versus the number of pages on a Meaningful Journey. This is ensuring that Progressive Disclosure is applied to Web, mobile or SaaS app design.
#4. Continuous Integration
I define Continuous Integration as regularly integrating code changes into the main Source Code Repository of say, a Low-Code Platform and its specific reusable components. This means testing the changes, as early and often as possible - e.g. multiple updates, daily.
The inherent advantages here are:
Continuous Builds: Building the latest release as soon as a change is made. Ideally, the delta between each build is a single change-set - granular, and therefore faster.
Automated Testing: The programatic validation of the software code maximise quality. Tests initiate corrective actions in a truly Agile manner.
This also relates to a Scrumban method: the combination of the Scrum approach to Agile software development - underpinned by Kanban Boards, as left-to-right progression through all tasks attributed to creating and enhancing a new app.
Here you can achieve clarity for Deliverables and Acceptance in each time-boxed iteration throughout an Engagement, when tailoring or extending any combination of Code, Low-Code and No-Code. Each iteration is typically of two weeks duration, and, for those readers not familiar with the jargon, this is commonly known as a Sprint. All of this relates to Continuous Integration.
#5. Business Logic
Underpinning the development of prebuilt business logic is 'Process Optimisation'. This is where IDEF0 is applied: a method designed to model the decisions, actions, and activities of a complex organisation or system, and as originally created by the US Air Force. This is an integral part of a comprehensive method that over time, has been extended to:
What matters here is a seamless integration between Process Optimisation, Studio and prebuilt business logic. There is no point to achieving a perfect visual notation of a Process (or set of Processes) if it is abstracted from the Studio-based design and development of the prebuilt business logic. This integration is key, regardless of how the ratio of Code versus a Low-Code or No-Code Platform applies to a given, blended digital innovation.
The Studio for a Low-Code Platform should include building blocks - widgets - ranging from simple buttons or input fields, to complex 3D images, featuring rotation and transform animations. Here is where you generate reusable components. As noted above, this must be seamlessly integrated with the Process Optimisation method (e.g. IDEF0).
The Studio can also include a comprehensive Design Language and User Interface (UI) Framework, such as SAP Fiori, Salesforce Lightning Design System or Microsoft Fluent Design System. This better guides User Experience (UX) Design and introduces a set of reusable prebuilt components into the overall mix.
As you build new reusable components for a Low-Code Platform offering, you will increasingly see the commonality among many objects (e.g. Orders, Payments, Coupons, Feedback, and Catalogue developed for say, a 'Restaurant Platform Blueprint') may also apply to say, a 'Fashion Platform Blueprint'. Many other objects, such as Login, Contacts and Accounts are universal to almost all Blueprints for Web, mobile or SaaS apps.
#7. Smart DevOps
As tech professionals reading this blog post know, DevOps is short for 'Development Operations': meaning the combination of mindset, method, competencies and tools that 'operationalise' services related to mobile, Web and SaaS apps in the cloud.
Done right, this is delivering the services at high velocity to shorten time-to-market; optimising a Platform performance, whilst minimising costs; and, ensuring that user on-boarding and related app reviews are positive experiences.
Smart DevOps brings together many things: the ability to define and create a digital innovations with a Platform Architecture that achieves an optimal path to timely go-live releases; an app built for scale, yet minimises costs of underlying prebuilt business logic and Studio.
This blog post is work-in-progress and I welcome feedback on any of the seven elements set-out here in this Platform Rethinking, and as I have experienced in creating a Platform Architecture. The key points here (so far) are:
#1 Code, Low-Code and No-Code all have their place in digital innovation, but what matters everywhere is the underlying tech architecture: open, standardised, modular, any cloud.
#2 Design Method provides a solid foundation for turning ideas into tangible innovations, where a people-oriented approach generates sufficient trust to truly understand challenges.
#3 Design Guidelines ensure that best practices in user experience (UX) and user interface (UI) design inform combined Code, Low-Code and No-Code approaches to digital innovation.
#4 Continuous Integration results in higher quality code and a more responsive approach to applying rigorous cyber security and fixing Web, mobile or SaaS apps - early and often.
#5 Business Logic significantly reduces effort, time and costs in executing digital innovation, leveraging prebuilt business logic and reusable components.
#6 Studio enables less duplication of code, through maximising deployment of reusable components and a state-of-the-art Microservices architecture.
#7 Smart DevOps shortens time-to-market and optimises app performance, whilst minimising costs; ensuring that user on-boarding and related app reviews are positive experiences.
We just sent you an email. Please click the link in the email to confirm your subscription!