Q: How does OutSystems Low-Code platform reduce the specific requirements that a High-Code developer may carry?
Resource challenges
High-Code, or traditional software development, requires advanced programming skills. Developers or programmers need to write code in a specific programming language, such as Java, Python or C# to create and customise software applications. High code development is perceived as more flexible as the developer has complete control over the functionality of the application and can create fully bespoke solutions, but often this comes at a cost – time and resource, and in most business applications the flexibility and control you need comes with High-Performance Low-Code.
Manual Version Control
High-code software developers also need to spend significant amounts of time maintaining project-specific version control, and maintaining environments. They must ensure communication around branches, merging and naming conventions. High code development brings with it a much longer pipeline of deployment and some additional baggage which can often slow project progress. High-code software development is often only visible to the developers until product demonstrations are scheduled for the wider team.
Slow Integration
OutSystems is a high-performance enterprise-grade Low-Code platform, its comprehensive visual tooling systems for workflow creation, drag-and-drop UI components and database connectivity make it stand out from the Low-Code crowd. Advanced tooling allows developers to engineer full-stack integrated Applications, which to the eye of the user cannot be differentiated from a high-code Application. It helps product development teams to collaborate and unite design, code and deployment while building Applications at least twice the speed of traditional development.
Repetitive Work
Outside of the simplicity of visual coding methods Low-Code provides, many development ‘accelerators. These accelerators can take basic database information, create data tables with intuitive attributes and entities, or even automate the creation of a simple UI. Accelerators can also take the headache out of naming changes – in traditional code changing the name of an entity could cause huge amounts of repetitive work across an entire project. OutSystems is intelligent and will find all instances of the name and automatically amend them all, it can even ripple the changes through to APIs.
DevOps
Advancements in the OutSystems Low-Code platform mean the perceived lack of flexibility is a thing of the past – whilst out-of-the-box functionality can be utilised it can also be easily customised to suit the project requirements. Environments are managed without much intervention from developers and are baked into the platform itself. This mitigates server setting up and maintaining servers, whilst often either reducing or eliminating the DevOps and the arduous task of constantly matching environments.
Q: If an application feature can’t be built in Low-Code, then how do you get around it?
The Low-Code technology space is expanding rapidly, and vendors have been early to realise that integration and customisation are critical success factors. Most vendors leverage existing developer communities, offer customisations through popular languages like JavaScript, and offer a library of ready-made community plugins. The OutSystems platform allows developers to write custom server-side extensions, written in languages such as C#, which can be used for complex business logic and integrations. Custom software development agencies who work in both High-Code and Low-Code can also build upon and extend Low-Code applications to ensure that software is engineered to meet exact business needs, taking the best of both worlds to build maximum value from both development disciplines.
In short, in the modern technology space, the somewhat self-deprecating term Low-Code would better be stated: low-code-first.
An example where custom code might be appropriate would be if the project required large-scale data manipulation or data filing – while this could be achieved in Low-Code it might be more feasible to write an extension. This solution would ensure high performance and componentisation.
If, and when a Developer needs to break into code, this can be done in any IDE (Integrated Development Environment) of choice and in any programming language. All the existing developer workflow and processes apply. Once they have tested and compiled their custom code, they can map the libraries across. The custom code would need to be maintained within the chosen IDE and mapped as and when changes were made to an application.
A FASTER, MORE EFFECTIVE WAY OF APP DEVELOPMENT – AGILE
As a former developer and as a person who manages development teams, how does the OutSystems platform help achieve agile software development in building complex applications fast and effectively in Low-Code?
Collaboration
The OutSystems platform facilitates the understanding that effective outcomes are achieved through problem-solving, not lines of code. A typical Low-Code development environment inhabits product team members from both problem and solution spaces e.g.: product owners, managers, business analysts and developers can all engage over UIs, workflows, logic, and integration tasks, allowing for a shared understanding and facilitating a faster resolution.
Visual
The collaborative visual IDE helps to engage business stakeholders and end-users, Application build, testing, and releases facilitate design hypotheses into delivered iterations for earlier inspection and adaption, something that is typically a lot slower to do in a traditional development environment.
Frequency of Iteration
High-Performance Low-Code encourages a shared understanding between the client, product owner, stakeholders, and the development team. As ideas come to life any deviations in requirement understanding or clarifications needed can be ironed out quickly and efficiently without losing valuable development time or resources. An increased frequency of iterations empowers a truly user-centric build and testing process and in turn, supports the delivery of product not only faster but with greater business value.
Clarity
Complex and large solution architecture can be placed into a Low-Code platform and easily compartmentalised and broken into easy-to-clean digestible chunks for a project team to use, often removing overwhelming blockers and clearing a path for rapid progress in complicated projects. This clear view of complex ideas and data is made even more accessible by the self-documenting nature of the OutSystems platform. Often traditional development documentation can be a real drain on resources and is often out of date as soon as it is written – it doesn’t lend itself to ongoing iterative development, which is, of course, what most progressive businesses in our current climate require.
Re-usable Components
Low-Code software developers, arguably more than most, draw benefits from years of technical community-led advancements and have access to a plethora of ready-made components from which they can build solutions. But it’s the intrinsic trait of Low-Code to bring many brains into the solution space that sets it apart from traditional development. Good tools and reusable components help productivity, but it is human interaction that provides effectiveness.
Templates
OutSystems also offers application templates for common use cases such as an e-commerce site. The pages are laid out and ready to display products, add descriptions, add to cart etc. All the developer must do is link the product data, and add the product image files and very rapidly an e-commerce application has taken shape, customised and ready for UI/UX design to be added.
Once this page has been created and customised to requirements it can be reused to create several product pages within the e-commerce application very quickly and easily. OutSystems, again aids agile development by allowing faster feedback, quicker iterations and team collaboration and interaction.
OutSystems provides the intuitive tools and techniques for delivering ideas. Central to this is visual modelling, which usurps raw coding, levelling the playing field and unlocking the potential for true multi-disciplinary influence over your solutions.
Q: What types of applications is Low-Code suitable for?
It would be true to say that Low-Code can be used for any project or application. However, Low-Code comes into its own when used in the following ways:
As an orchestration tool to integrate a current tech stack or integration with off-the-shelf technologies.
Example:
An example would be to use a Low-Code application to link a business’s data warehouse to its customer portal without having to write custom code. The Low-Code application could also anonymise or enrich the data without the need for external manipulation. Integrations within Low-Code are easy, quick and secure.
Example:
For example, personnel or asset management. An application for use internally within a business can be created very rapidly, with little need for onerous maintenance which can also be customised to suit the use case and the business need.
Q: Businesses often have legacy tech within their stack, old ERP or CRM, and custom-built applications that are becoming increasingly difficult to maintain, how might High-Performance Low-Code take the pain out of large-scale modernisation or transformation projects?
In this common scenario, the OutSystems high-performance Low-Code platform could be utilised by introducing different architectural patterns, such as a layered approach. Introduce a presentation or UI layer to show the information either internally or customer-facing. This can be branded and standardised as required. The application or service layer can then be built using the rapid Low-Code technology. Elements of the current ERP or custom applications can be replicated or replaced.
OutSystems can also be used to modernise a legacy tech stack behind the scenes, utilising powerful orchestration capabilities to link the current applications, source systems and processes to newly designed Apps and services, replacing parts of your stack temporarily whilst further investigation takes place into a wider use solution, its power lies within its flexibility as a development platform.
Q: Does the platform allow for any degree of componentisation and stemming from that re-use?
One of the biggest benefits of Low-Code is the reusability of components. An example of this would be an email notification service, this could be a requirement within a workflow application. Once the email service has been built and configured it can then be reused across the application multiple times. Without the worry of code conflicts or the heavy task of re-writing code.
Q: What about front-end blocks or modules, like those utilised in some content management systems (CMS), can these be re-used?
If the requirements called for strong branding and a striking UI. Once this has been designed and created it can be reused across all screens within an application but also across different applications. This also creates standardisation across the application landscape.
FASTER MORE EFFECTIVE INTEGRATION
Most Low-Code offerings provide a plethora of integrations out-of-the-box. These abstracts take away the details of complicated web APIs, leaving developers with the relatively straightforward task of attaching hooks to eyes in a friendly visual interface. This makes the initial integration much faster than traditional development. When you integrate, you enter into a contract with another provider that, like any relationship, needs ongoing care and attention to maintain harmony. OutSystems will reduce the burden by managing the integration and providing observability tooling, security notifications and automatic upgrades.
Q: Why is it faster to integrate with Low-Code than High-Code?
The speed of integration is partly due to the accelerators which come as part of Low-Code platforms. The functionality to utilise REST, SOAP and SAP APIs is built in. A developer simply must input the API credentials and the data structures will appear without any other intervention. Other APIs or types of integration are possible, and this is made faster by the visual nature of the platform.
Q: What types of integration are possible with Low-Code?
Anything and everything, REST, SOAP and SAP are all out of the box. Advancements in the Low-Code arena mean using Integration Builder, software such as Microsoft Office 365, Google, Azure or Amazon (AWS) can be connected to applications quickly and easily. This means an application could connect to a business’s SharePoint, dropping files and information into folders. Or connecting to an Outlook calendar to schedule tasks or appointments, seamlessly integrating into a business workflow.
Q: How secure are integrations with a Low-Code application?
Given that OutSystems is managing the integration within their platform, they are incredibly secure – perhaps more secure than depending on an individual developer to write their own security in code. OutSystems takes that onus away from the development team and does its own extensive testing to ensure secure connections.
Usually in traditional high-code software development API keys would be checked into source control and only accessed by permitted users. This can often be overlooked, misused, or mismanaged. OutSystems provides a safe place for API keys to be stored – again reducing responsibility and admin tasks for developers – they can use that time where it’s needed, creating solutions and problem-solving.
Q: How about general application security?
OutSystems has functionality which helps with a multitude of common security issues across web applications.
For example – broken access control, OutSystems has role-based access controls which restrict access to the application’s pages depending on specific application-level roles, which tend to be a group of permissions. Developers define permissions for roles using visual building blocks and refine these permissions to feature and data-level components. Once users are registered to use an application, role-based access control ensures that only authorized users are allowed to perform specific business functions.
OutSystems cloud-based platform is hosted on Amazon Web Services so functionality like data encryption or Sentry can be activated to meet PCI compliance or more stringent regulatory compliance standards. Using the OutSystems cloud platform would mean security logging and monitoring would be included within the package, reducing the need for a dedicated cloud engineer or DevOps role within your organisation.
LOW-CODE VS HIGH CODE
Q: When might you choose not to use Low-Code?
There are very few cases in which Low-Code wouldn’t work, but there are a few scenarios in which high code or an off-the-shelf product might be more suited.
Cutting edge
An example is perhaps a project which requires a cutting-edge, interactive front end. This might be more suited to high code. However, because of low codes ease of integration, it could be argued that a front end could be created in React or Angular and connected to a Low-Code back end for ease of data or business logic maintenance.
Simple
On the other end of the spectrum would be a very simple website with no integration required – a WordPress site might be easier and simpler to create.
COTS
Another example would be if an off-the-shelf product achieved all the project goals and little to no customisation or integration was required for your business – so why reinvent?
Algorithms
If you had a project which required a solution with massive amounts of cognitive load and or algorithms it might be unsuitable to code within the visual IDE in Low-Code platforms – the complexity would require traditional code
Q: If I wish to move away from Low-Code, can I export the code base from the platform and continue development elsewhere?
This is entirely possible – upon ending the agreement with OutSystem’s high-performance Low-Code platform all code (C# and HTML) would be extracted and in theory could be self-hosted.
LOW-CODE AND USER INTERFACES
Q: Does Low-Code have limitations on front-end development?
OutSystems has several templates and themes straight out of the box which can be used to create applications. In the cases where more specific branding or user experience functionality is required, this is possible. Whilst the HTML within OutSystems is fixed, a developer can create CSS files and drop them directly into OutSystems. Low-Code can be made to look just as slick and glossy as many traditionally coded web applications.
If you’re interested in learning more about how low-code development can benefit your organisation or want to discuss our app development services, digital transformation consulting, or web portal development services, please do not hesitate to contact our team today – we would be more than happy to assist.