Low-Code is a disruptive new technology that is changing the way in which applications are being developed. Low-Code is ushering in an era where anyone can develop an application (using a bit of gumption) because it favours a low-tech configuration-first approach.
Different organisations are employing Low-Code to further their digital agendas in varied ways however, with many organisations wrestling with the choice of whether to buy pre-canned functionality, through Commercial Off-The-Shelf (COTs) software or alternatively, whether to develop their own software using Low-Code.
The answer is not simple and lies somewhere in-between. Before delving into my reasoning it is important to understand how we got here.
Setting the Stage
Organisations have embraced a “buy vs. build” mantra, by procuring COTS software for the past three decades.
Their view is that this will allow them to focus on their core business, as opposed to being distracted by creating IT applications that are related to and/or required by (for e.g. accounting software) but, not part of their core business.
The industry has responded in kind, with major conglomerates such as the likes of Oracle and Microsoft, providing a plethora of offerings. While there is no argument that buying an application vs. embarking on a custom developed application has yielded significant business benefits, COTs applications have also introduced a myriad of problems:
- Rigid Transformation: Providing a “one size fits all” software application is a complex endeavour and has resulted in COTs products with complex architectures. COTs vendors typically introduce new product features at a snail’s pace.
- Limited in-house development: COTS products require developers with niche skill sets to customise them. These developers are often in short-supply.
- Complex Integration: COTS products usually have their own database (with complex data models) and individualised Application Programming Interface (API) set. Not surprisingly, integrating different COTS applications is a complex and expensive undertaking.
- Long-time to Delivery Business Value: Time to value is typically longer for innovation and transformational business requirements requiring complex projects and / or programs to deliver them.
- Limited Ability to Differentiate: An organisation’s ability to differentiate its products and services is a function of: 1) whether the COTs product can be customised; or 2) alternatively whether a requested product feature can be introduced into the vendor’s product roadmap. Experience has shown that customising a COTs product is a perilous undertaking, that may render the COTS product non-upgradeable. Moreover, successfully influencing a COTs vendor’s roadmap can be akin to winning the lottery.
As more COTs applications are acquired the problems mentioned above are compounded, affecting the pace at which IT can deliver. No matter how fast IT attempts to deliver it’s just not fast enough … IT is trying to address the above mentioned problems through commissioning custom developed applications (for specialised cases) and / or modifying the way in which software is delivered by riding the Agile wave.
Unfortunately, neither of these have yielded the promised benefits leading to more disillusionment.
Why is Custom Development a hit or miss?
Custom development promises an unfettered ability to build what you need, when you need it. Custom Development unfortunately introduces some issues of its own:
- Large Upfront Costs: A custom development project requires a large number of investments to set it up for success (for example: continuous delivery pipelines, application architecture that scale etc.). These investments are not typically related to business requirements and are hence difficult to secure funding for.
- Operational costs similar to COTs: Operational costs are often similar to / or more when compared to COTs products.
- Development time is no faster: Development time is no-faster than with COTS applications.
- Architectural Risk: Architectural mistakes (for e.g. bottlenecks in the architecture) made early in the implementation lifecycle are costly to rectify.
- Developer Lock-in: A lack of documentation can lead to “developer lock-in” that is, a scenario where a subset of developers become irreplaceable.
Why is Agile often difficult to achieve at scale with COTs products?
Many organisations are battling to apply Agile when using COTs products at scale. Assuming that the cultural impediments to Agile are not an issue (for e.g. there is alignment between business and IT etc.), most COTS products do not have mature continuous delivery capabilities (for example test automation, customisable code build and deployment pipelines etc.), which is a critical success factor for delivering Agile projects.
Fed-up with failed IT projects and / or programs business often goes around IT, building their own IT solutions without explicit organisational approval (referred to as “Shadow IT”). Applications delivered outside the governorship of IT are plagued with quality problems and security risks.
It is clear that a new approach is required to deal the broken promises of COTS products.
Enter Low Code …
Where does Low-Code fit-in?
Low-code is a new approach to application development founded on rapid application development and a configuration first approach. With Low-Code users interact with graphical models and configure pre-built application components to create functional applications - akin to assembling “Lego” blocks of functionality. This allows business users to construct complex applications without having to be proficient coders.
There are clear signs in the market that Low-Code is here to stay - for example Forrester predicts that the Low-Code market will increase to over $21 billion USD over the next five years. Interestingly, many analysts also predict that applications will predominately be developed using Low-Code platforms in the future.
A list of tantalising features offered by leading Low-Code vendors are:
- Progressive and Iterative: Low-code foster rapid minimum viable Product (MVP) development through prototyping of fully functional applications. This lends itself very nicely to the spirit of Agile development, which is the realisation of rapid business value in an iterative fashion.
- Risk Controlled: Project fatigue is shortened through quick customer value delivery through MVPs which allow earlier risk identification and mitigation.
- Simplified Architecture: Low-code abstracts code from functionality, which results in simplified applications that are easier and cheaper to maintain.
- API and Micoservices: Low-code products are microservices oriented i.e. they are built using a microservices architecture and, derive the benefits associated with microservices (for e.g. scalability, better fault isolation etc.). Low-Code applications additionally enable fast visual API modelling.
- Rapid Development: Low-code development is visual with minimum hand-coding and upfront investment required in setup, training and deployment. Code is cheaper and faster to develop,
- Low-Code Platform as a Service (PaaS): Low-code provides a Platform as a Service (PaaS) capability removing the operational costs required to manage infrastructure (for e.g. servers, load balancers etc.).
- Responsive Multi-Channel Applications: Low-code generates applications that can be used/accessed on a multitude of different devices (computers, mobiles, tablets) seamlessly without needing to create different code for different devices.
- Application Store: Low-Code products include an “Applications Store” with several hundred free and paid for vendor and 3rd party applications that comprise “pre-canned” functionality. Application and software components (for e.g. a software library) hosted in “Application Stores” can easily be incorporated into existing applications using simple drag and drop functionality.
- Operational Analytics: Operations dashboards pertaining to the health of the Platform (and applications built on the platform) are provided out-of-the-box and are immediately available.
- Mature Continuous Delivery: Continuous Delivery (CD) is baked into the low-code PaaS from the onset (for e.g. automated build, unit tests, deployment pipelines etc.)
The rise of Low-Code does not however signal the death of COTs applications by any means. The question then becomes how are organisations applying Low-Code to win the Digital wars?
How Low-Code is being used in Enterprises?
The decision to use COTs or Low-Code is not binary. In fact, most enterprises often use them in unison to create differentiated offerings through Composite Applications - a “mash-up” of existing applications to create entirely new applications. The following simple guidelines can help you choose when to use Low-Code, COTs products or both:
When to use COTS products: The COTS product satisfies more than 90% of your business requirements AND the cost of procuring and customising the COTS product is cheaper and faster than building a Low-Code alternative.
When to use Low-Code products: There is no COTS product available OR it is cheaper and faster to satisfy business requirements using Low-Code AND the Low-Code platform provides 90% of the capabilities needed to build the product Out-Of-The-Box (OOTB). Note that in the case of highly specialised software applications, requiring complex software features and algorithms not provided by Low-Code platforms for e.g. a 3D mechanical CAD design application, custom development may still be the best option. In our experience highly specialised software applications fall within a niche area and, are either filled by product vendors or specialised teams in an organisation. The majority of application use case can be fulfilled by Low-Code products.
When to use both in unison: Combine multiple business services spanning multiple COTS and / or custom applications together to create differentiated products and services.
Where to next?
Low-Code has graduated from being an “interesting” technology to a “must-have” technology for organisations seeking to strengthen their competitive advantage. In this article I have only “scratched the surface” by describing how organisations are applying Low-Code to create Composite Applications.
Stay tuned over the next several weeks where I’ll be posting additional articles speaking about how we’re using Low-Code to solve wicked business problems …