The Definitive Guide to Low-Code
By now, you’ve probably heard about the ongoing developer shortage or have directly felt its effect on your business. If you’ve taken a “this too shall pass” attitude to this dilemma, we commend your optimism, but the truth is that this shortage is likely to continue for the foreseeable future. The demand for software developers is projected to grow 24 percent from 2016 to 2026, according to the U.S. Bureau of Labor Statistics — much faster than the average for all occupations.
But not all hope is lost. Businesses have found a clever workaround to this shortage that enables them to build their own applications without the expertise of developers. How, you ask? With low-code.
What is Low-Code?
Low-code is a software application development technique that enables businesses to quickly and easily design and develop applications via a graphical user interface (GUI). Compared to traditional programming, which requires a significant amount of manual coding, low-code development only requires you to drag and drop application components into a flowchart-style formation; from there, code is automatically generated and programmed. Low-code development is considered a form of rapid application development (RAD) — which is, itself, a type of agile software development.
It’s important not to confuse low-code development with no-code development. No-code, like low-code, enables businesses to design and develop applications via GUI — but that’s where the similarities end. No-code truly caters to “citizen developers” — people who lack any prior developing experience or programming skill. No-code applications are often designed to be “one-off” applications with simple interfaces that feature no customizability or advanced capabilities. By comparison, low-code requires more technical sophistication to use; as a result, it’s possible to build more advanced, customizable, and scalable applications with low-code software than with no-code development platforms.
The Low-Code Software Experience
Ask any developer, and they’ll tell you that coding isn’t easy. Although there are some gifted developers to whom programming comes naturally, they’re few and far between. The vast majority of developers spend years honing the talent and skill to build software from scratch, which is what makes them such a valuable asset to any team — and which has led to the increased demand for senior developers across all industries.
The traditional application development coding process is fairly linear and looks something like the following:
- Define requirements. During the first stage of the traditional development process, you will work with the developer to determine what, exactly, you need your application to do — for example, who will use the application, what kind of environment it should support, what performance metrics in needs to meet. This can be a process in and of itself and involves gathering, reviewing, and documenting requirements, as well as identifying known and unknown variables to determine their possible effect on those requirements.
- Create a design. During this stage, the developer will create a wireframe or mockup — often in the form of a flowchart — that outlines key elements of the system, including system architecture, modules, components, interfaces, and data. This provides the developer with a framework that they can then translate into code.
- Choose a programming language. Which language the developer uses depends on a few factors, including what type of application they need to build, which environment they’re working in, what type of device they’re programming for, and which programming language they’re most familiar with.
- Write the code.
- Test the program. Once the code has been written, you’ll need to make sure that the system runs as intended. If you encounter any issues with the program or require modifications, the developer will have to go back in and troubleshoot by rewriting relevant pieces of code.
- Test it again. If the system runs as intended, move on to performing security, performance, and quality assurance tests.
- Push the system live.
- Monitor and maintain. The application development process doesn’t end at go-live — you’ll need to consistently monitor system health, look for potential issues and possible system enhancements, and perform maintenance or make upgrades as needed.
Your dev team should take time to carefully document every stage of this process, from initial conversations about the nature of the problem the program resolves to test results from each system iteration.
By comparison, low-code platforms significantly reduce the amount of work that needs to be done to build an application. Although low-code software still requires the user to define requirements and create a design, from there on out the app dev process is far simpler.
Once the system has been designed, all of its components (both on the frontend and backend) are automatically generated. All that’s left to do, at that point, is to test the process and push it live. Pre-built low-code modules are tested prior to publication, reducing the amount of time spent testing. Low-code development platforms even make system maintenance easy by enabling you to push updates live with a single click.
Low-Code Software Features
The most important benefit provided by low-code platforms is the promotion of organization productivity. It empowers more of your employees to assist in improving business processes, rather than relying entirely on your IT department, or an outside developer, to make necessary software and application updates. This is possible through a few key features found in just about any low-code platform:
- A visually integrated development environment (IDE): This type of IDE uses visual modeling to make application development more intuitive for citizen developers. Most low-code software IDEs also allow for hand-coding, when necessary.
- Drag-and-drop interfaces: Rather than force them to write out long lines of code, low-code development platforms enable citizen developers to design application workflows with pre-built drag-and-drop modules.
- Declarative tools: Declarative programming is a programming method that enables you to perform an action by merely naming a task or the desired outcome of that task. Declarative tools use this type of programming to simplify the creation of workflows, making application coding faster and more accessible.
- Reusability: Speaking of modules, low-code software’s pre-built modules make it easier for citizen developers to use and reuse the same modules for different designs, resulting in a nearly limitless variety of potential combinations. Most low-code platforms also offer additional modules via app store for more advanced development.
- Continuous integration: Any low-code platform worth its salt will automate the build and testing of code every time a change is made to an application, thereby making it easy for citizen developers to share their code and allowing for greater version control.
- Cross-platform functionality: While the main appeal of low-code development platforms is their ease of use, another popular feature is their ability to unify development across platforms and devices — which, in turn, enables increased mobility and allows for a truly omnichannel experience.
The Pros and Cons of Low-Code Platforms
Coding for (Almost) All
One of the key benefits of low-code development platforms is that they democratize programming. Though not quite so simple as no-code development, low-code development is still extremely accessible and makes it so that almost anyone at any level of your organization can have a hand in application creation. This democratization has helped many businesses alleviate the strain caused by the ongoing developer shortage.
User shaped design
When employees who are most likely to use applications have the ability to develop them, then it’s easier to account for their own needs, values, and pain points. It’s the users who best understand the difficulties of working in certain processes or systems, so low-code development enables your teams to account for their differentiated experiences.
Make Better Use of Your Developers’ Time
Low-code platforms not only make application development more accessible — by making it more accessible, it enables developers to dedicate their valuable time and attention to larger-scale projects and more complex designs.
Extend Your Resources
The beauty of low-code lies in its simplicity. Low-code platforms typically don’t require additional resources such as developer expertise or IT support to function, which means you can push your existing resources to their limits and mitigate costs in the process.
Become More Agile
Low-code makes it possible to build custom applications in a matter of days — much faster than the months-long process associated with traditional app development. With low-code, you’ll save time on manual coding and testing, thereby making your business more agile and adaptable to changes in customer expectations.
Digitally Transform Your Business
In order to truly achieve digital transformation, organizations must shift away from legacy systems and embrace new technology, and their employees must look for innovative ways to leverage that technology. Low-code development platforms can accelerate digital transformation because they make cutting-edge technology available to a wider audience, free up IT and developer resources for higher priority projects and enable businesses to keep up with the speed of innovation.
Not a Total Replacement
Low-code software might be an easy way for citizen developers to get in on the application development game, but it doesn’t mean experienced developers are no longer necessary. After all, it’s one thing to build an app — it’s another to integrate that app with other apps and systems in your environment, especially if you still use legacy systems. No matter which low-code platform you choose to use, you’ll still need developers to handle more complex tasks. In the end, your application environment should use a combination of low-code, no-code, and traditional software development methodologies to achieve ideal results.
Square Peg, Round Hole
Although they’re convenient to work with, pre-built low-code modules restrict application customization. Most low-code modules are built to serve a specific purpose and are generic in nature. If you require a significant amount of customization in your environment, you might be better off investing in more in-depth, custom application development rather than low-code software.
You’ll Need to Get Serious about Governance
There are definite pros and cons to enabling citizen developers to build applications. On the one hand, citizen developers save money otherwise allotted to hire experienced developers, boost developer productivity, and enable organizations to churn out business-critical applications at a faster rate. On the other hand, citizen developers have near-unrestricted access to your system — should one of your citizen developers (or worse, a disgruntled former employee) make unauthorized changes, it could pose a serious security threat to your environment.
How Can I Use Low-Code Software?
The potential use cases for low-code development platforms are nearly unlimited. You can use low-code software to:
- Build business process and database management applications
- Give legacy applications a much-needed facelift
- Allow for easier remote development
- Automate essential workflows
- Enhance system performance
- Enable more immediate feedback
- Drive employee empowerment and customer engagement
- And more…
What you can achieve with low-code software is limited only by your imagination.
Popular Low-Code Platforms
Interest in digital transformation has caused the low-code development market to grow exponentially. Valued at $4.32 billion in 2017, the market is projected to grow to $27.23 billion by 2022, at a Compound Annual Growth Rate of 44.4%, according to a report from Research and Markets.
The low-code development market is projected to grow to $27.23 billion by 2022, at a Compound Annual Growth Rate of 44.4%.
As far as low-code software vendors are concerned, Microsoft PowerApps, Zoho Creator, Appian, Mendix, and OutSystems consistently top “best of” lists. To see how these leading low-code platforms stack up, take a look at the chart below:
|Platform||Pros & Cons||Cost|
|Microsoft PowerApps||Pros:Easy to useFlexibleExtensive number of integrationsLarge template libraryRobust feature setCustomizablePowerful mobilityCons:Cannot publish into Winstore, Apps Store, or Google PlayExpanding delegation limit can hurt performance||Plan 1: $10 per user/monthPlan 2: $40 per user/monthFree trial available upon request|
|Zoho Creator||Pros:Intuitive UIFlexibleApps responsively resize for mobileCons:Requires proprietary scripting for customization, automationComplex scripting languagePoor customer support||Free version availableBasic: $10 per user/monthPremium: $20 per user/monthUltimate: $35 per user/month|
|Appian||Pros:Easy to useNative mobile appsBuilt-in team collaboration and task managementEasy to integrateCons:Outdated UIDifficult to restartLimited scalabilityLimited customizationComplex process model design||Standard Licensing: $90 per user/monthApplication Licensing: Price available upon requestFree trial available upon request|
|Mendix||Pros:Built-in collaboration and project managementEnd-to-end developmentContinuous integrationCons:ExpensiveSteep learning curveLacks some functionality out of the boxOutdated modeler UI||Community: FreeSingle App: Starts at $1,875 per monthPro: Starts at $5,375 per monthEnterprise: Starts at $7,825 per month|
|OutSystems||Pros:One-click deploymentComprehensive trainingOffline data storageFast prototypingCons:ExpensiveDesktop IDE onlySteep learning curveInstability when publishing||Free version availableEnterprise: $6,250 per monthUniversal: $15,000 per month|
Evaluating Low-Code Vendors
Before comparing your options, there are a few questions you should ask of yourself:
- What role will low-code play in my architecture?
- Who, in my organization, will be responsible for building low-code applications?
- Do I want to license tools on a per-user or a per-database basis?
- What use cases do I need to deliver?
- What level of customization do I require?
Once you’ve answered these questions and are ready to take the next step, carefully evaluate low-code platforms and vendors based on the following criteria:
- What level of experience will your users need in order to use the platform?
- How customizable are the platform’s applications? Is it possible to access the underlying code or do you have to go through the platform’s interface?
- Are the platform’s applications proprietary or open source?
- What level of integration does the platform allow for? What systems does it integrate with?
- Is the platform on-premises, cloud-based, or hybrid?
- What happens if you stop using the platform? Will you still be able to use your applications, or do they require an active license to run?
- Does the provider charge any distribution fees?
- Does the platform include reporting capabilities?
Ready to Give Low-Code a Try?
Get started with Microsoft PowerApps. With a vast library of templates to choose from, PowerApps makes it easy for end users at all skill levels to quickly build custom business applications that harness the power of the Azure cloud on top of the Dynamics 365 platform. From automating administrative tasks to developing canvas or model-driven applications, PowerApps is a scalable and secure solution that makes it possible to extend your existing architecture without the need for code.
Need help setting up PowerApps? Hitachi Solutions can help. Focused solely on Microsoft technology, our team has years of experience in guiding digital transformations through expertise, best practices and mentoring. As part of the Power Platform, our Center of Excellence track will help you secure and monitor your applications, create and enforce data protection policies, train your teams in how to use PowerApps, and scale the process across your organization with built-in governance.
Find out how PowerApps can enhance your business today — contact us to get started with your digital transformation.