5 minutes to read With insights from... Manuel Hernandez de la Torre Former Expert Software Engineer manuel.hernandezdelatorre@zuehlke.com Abstraction is a key concept in software development that refers to the process of hiding complex implementation details and presenting only the necessary information to the users. It allows the simplification of complex systems, facilitates the reusability of code and components, enables the Modularity, and increases the flexibility. This has been a pre-requisite to transition from low-level programming languages like assembler, to high-level languages like C and Java, that removed the need of programming based on specifics chip instructions sets to a higher level and enabled faster and more complex application development. If we wonder which abstraction comes after modern programming languages the clear answer would be low-code. Low-code achieves its abstraction over the modern code through visual modelling tools and pre-built components. This allows low-code developers to create software applications by dragging and dropping components onto a canvas that encapsulates complex functionalities, such as database access, user authentication, and User Interfaces. Just like traditional programming languages, different low-code development platforms are better suited for different use cases. There is no one-size-fits-all solution, so it's important to understand how each vendor's platform works to ensure project success. Speed, acceleration, maintainability and contribution The level of abstraction and its implementation significantly impact the speed, acceleration, maintainability, and stakeholder contributions in application development. According to Gartner and Forrester, low-code platforms can increase development speed tenfold by encapsulating complex functionalities that can be implemented with a few clicks. However, maintainability is often overlooked in these reports, which can be addressed by examining how low-coders collaborate, implement, and monitor running applications. Acceleration in low-code development comes from two primary areas. First, the environment setup is typically quick, with low-code platforms providing a ready-to-use environment in a matter of minutes or even seconds. Second, the ease of learning the platform determines how quickly low-coders can achieve promised implementation speed. Finally, the level of stakeholder contributions in platform development depends on the platform's approach to abstractions. If the platform prioritizes enabling non-technical business users (Citizen Developers) to create applications, they will play the most important role and might even directly drive the development process. This approach can result in quicker application development and delivery, as well as increased business agility. However, if the platform's focus is on involving Business Analysts, they will act as a bridge between the business and IT departments, and their specifications will be part of the code or the code itself. This approach ensures that the developed applications align with business requirements and can be customized as needed. Finally, if the platform aims to empower IT staff and developers to deliver value in a shorter period, they will use a code that is more business-friendly while enforcing best practices to ensure high-quality standards. This approach can lead to faster development cycles, better code maintainability, and reduced technical debt. Strategy first To better understand low-code platform development, a useful first strategy is to examine the conceptualization behind it. The Citizen Developer concept involves enabling business users to develop applications, even without previous education in software development. This approach heavily focuses on abstracting the visual development of components on the user interface, where the behaviour of the application is directly defined by the visuals on the screen. For example, Microsoft Power Platform's application builder is like PowerPoint, making it easy for Citizen Developers to feel familiar with the platform from the outset. Business Process Automation (BPA) is another approach to low-code platform conceptualization. With BPA, application behaviour is defined by how data records flow across different teams and IT systems, documented by Business Analysts using Business Process Management Notation (BPMN). Workflow engines use BPMN notation to ensure that User Stories and specifications of current and future processes are accurately translated into application behaviour. BPA emphasizes the digitization of existing processes by translating them into digital processes. It also enables Business Analysts to write low-code and specifications at the same time, simplifying their participation in the development process. Additionally, workflow modelling facilitates two paths for further improvement: Process Mining and Process Automation (& HyperAutomation). The Data Model approach is the most technically advanced method of application development in low-code platforms and is best suited for accelerating IT technical staff development. It inherits traditional development best practices and provides out-of-the-box tooling for managing code repositories, implementing DevOps practices, Continuous Integration and Continuous Development pipelines, and allows for granular definition of records' read/write rights for all platform users. This inheritance facilitates larger development teams while maintaining a high level of quality throughout the application life cycle. Applications built using the Data Model approach are highly adaptable to changes in data structures and simplify application architecture. Data Models serve as both code and documentation, and only UI and logic models that are compatible with the data can be committed. The number of core technical objects required to build an application is minimal, including the Data Model, low-code Logic, and UIs, which makes the platform quick to learn. Zühlke Talk (German only) Crucial concept in software development In conclusion, abstraction is a crucial concept in software development that has enabled the simplification of complex systems, facilitated code reusability and modularity, and increased flexibility. low-code platforms represent the next stage of abstraction, allowing developers to create software applications using visual modelling tools and pre-built components. The level of abstraction and its implementation significantly impact the speed, acceleration, maintainability, and stakeholder contributions in application development. Understanding how each vendor's platform works is essential for project success, and different low-code development platforms are better suited for different use cases. Overall, low-code platforms have the potential to increase development speed tenfold, but it is essential to consider maintainability, collaboration, implementation, and monitoring running applications to ensure long-term success. Contact person for Switzerland Silvan Stich Head of Low-Code Silvan Stich has taken on the role of Head of Application Platforms as of January 2022. His focus is on team leadership and he is responsible for the development and advancement of the Application Platforms topic within the Cloud Practice. Silvan gained experience with application platforms as a project manager in various projects and bid phases. The great flexibility paired with fast implementation inspires him for the technologies. Contact Silvan.Stich@zuehlke.com +41 43 216 6858 Your message to us You must have JavaScript enabled to use this form. First Name Surname Email Phone Message Send message Leave this field blank Your message to us Thank you for your message.
Life Science and Pharmaceutical Industry – An example of rapid app development using the Mobile Onboarding Framework Learn more
Digitalisation & Disruption – Machines are the customers of tomorrow – is your business ready? Learn more