By Andrew Kum-Seun, Research Manager at Info-Tech Research Group & SoftwareReviews
Emerging technologies and innovative practices are pushing organizations to focus budget, time, and resources on product growth and maturity. The increased reliance on software products has raised the bar on exceptional products and support.
To meet constantly shifting deadlines, priorities, and environments, some organizations have adopted rapid application development (RAD) as a way to rapidly prototype and deliver products through iterative development practices and continuous delivery of changes. A common RAD practice is to use prototyping and computer-aided development techniques, such as low-code development, that allow non-technical users to create, configure, and maintain their own products.
Low-code development minimizes the barrier of entry to custom development and promises streamlined and flexible development. Low-code development comes with a caveat. Without the right training and governance structure, IT will be quickly overwhelmed with product quality and management challenges and maintenance will become a nightmare.
Build or Buy?
Before even deciding on a low-code development tool, you must make a conscious decision on the composition of your application portfolio: commercial-off-the-shelf (COTS) solutions, custom developed solutions, or a hybrid portfolio. Info-Tech recommends you buy before you build, configure before you customize, and loosely couple your applications if you need to customize. A number of key factors should be considered in this decision:
- Development skills, capabilities, and resources available in your organization.
- Complexity of the business processes and end-user needs your application will support.
- Complexity of the data and systems supporting your application.
- Current investment in the vendor’s ecosystem and partners.
- System qualities that are supported or unsupported by a vendor (e.g. security, SLAs, maintainability, availability, extensibility).
Low-Code Development Platforms Definition
Low-code development platforms (LCDPs) leverage graphical user interfaces and configurations to define and build databases, business logic, process flows and forms, and other application artifacts with minimal hand-coding. LCDP tools convert the developer’s designs into workable software that can then be deployed to corporate systems. Today’s LCDPs have several common attributes (Mendix):
- Visual Development Tools – Visual, drag-and-drop models are used to define an application’s data models, business logic, user interfaces, and other application artifacts. These approaches empower a larger range of users to visualize the full stack of their applications.
- Application Store – A community and/or private marketplace where LCDP users can obtain out-of-the-box templates, widgets, plug-ins, business components, and integrations to enhance development productivity and expand application features.
- Full Application Lifecycle (SDLC) Support – Most LCDPs provide development and management capabilities beyond the build and design phases as its definition implies, whether it is through native features or integration with third-party tools. Collaboration, project and product management, one-click deployment, and end-user feedback are just a few SDLC capabilities offered through LCDPs.
- Cloud-Native Deployment – Certain LCDPs offer the capability to deploy and manage applications in the cloud platform of the user’s choice, whether that be public, private, and virtual private clouds, or on-premises.
Implications and Impacts of LCDPs
Working at rapid speed to meet business demand is incredibly difficult for a number of organizations due to legacy and complex systems, rigid operational models and development lifecycles, and the inability to adopt leading-edge development technologies. Despite the promise of LCDPs to address these key challenges by simplifying development, introducing corporate development to non-IT roles can be a significant hurdle.
- Formal software development training – The business is already doing its own development and maintenance work without IT’s knowledge: Visual Basic within Microsoft Office tools, webpages involving HTML, creation of CRM reports, and minor interface configurations to their applications. In some cases, these applications exchange information directly with corporate databases which can pose significant business and technical risks if connections are not properly secured and tested. In other cases, the business asks IT to support and maintain these applications despite omitting IT from their development. LCDP will worsen these development challenges if roles are not trained in good development practices and system awareness, and the right governance is not in place to ensure quality is upheld.
- Software quality governance and organizational collaboration – Every application change or configuration must follow the same set of tests, control points, code and data structures, and design schemes to ensure consistent quality standards are adhered to irrespective of where it was developed or who developed it. The challenge is enforcing these rules and principles without significantly impeding the streamlined development LCDPs were designed to deliver. The business and IT are now forced to work closely together to balance these priorities and correctly implement them within the LCDP tool.
- Shared accountability of quality – System and feature quality is traditionally IT’s accountability because they are the ones who design, build, test, deploy, and maintain applications. Given that LCDPs empower development capabilities to non-IT roles, quality accountabilities should be shifted as well. However, accommodating this shift is not easy due to the cultural and political impediments embedded within the siloed minds and organizational structures of the industry. The individuals who develop applications should be the ones who maintain, monitor, and test them, but this isn’t often the case.
There are a number of risks and concerns that need to be accommodated in an LCDP tool’s implementation.
- Vendor lock-in – Each tool has its own approach, frameworks, and data schemas to convert designs and logic into an executable build that is stable in certain environments. Consequently, moving application artifacts (e.g. code and designs) from one LCDP tool or environment to another may not be easily possible without significant modifications or the use of application modernization or migration services.
- Conflicting priorities and viewpoints of good development practices – LCDP tools are very particular on how they generate code from designs. The tool’s approach may not accommodate the attributes of what you define as good quality code (e.g. scalability, maintainability, extensibility, security). For example, Microsoft Excel’s Macro Recorder injects additional lines of code that are not necessarily needed to execute the desired action. Occasionally, a technical expert should be reviewing and refactoring the generated code.
- Integration with current application development and management tools – LCDP tools should be extensions from your existing application development and management tooling landscape which provides the versioning, testing, monitoring, and deployment capabilities to sustain a valuable application portfolio. Without this integration, IT will be unable to:
- Root cause issues found on IT dashboards or reported to help desk.
- Rollback defective applications to a previous stable state.
- Obtain a complete application portfolio inventory.
- Execute comprehensive testing for high-risk applications.
- Trace artifacts throughout the development lifecycle.
- Generate reports of the status of releases.
LCDP Landscape
LCDPs offer a quick way to develop and deploy applications without the overhead costs of acquiring extensive development tools and skills. However, these tools should not take away the importance of good development practices. Each vendor will have its own approach to code generation and alignment to industry standards and best practices, and will differentiate itself based on the type of applications and platforms it supports, the SDLC capabilities beyond design and build, and the extensiveness of its marketplace.
Notable LCDP tools include (PCMag):
- OutSystems – OutSystems is a powerful, feature-packed low-code development platform for large enterprises or developers looking to publish straight to consumer app stores. This is a mature, well-designed tool that builds good-looking apps and handles the entire software development lifecycle.
- Mendix – Mendix is an enterprise-grade, low-code development platform with heavy duty project tracking, developer, and IT testing tools to tackle the entire software lifecycle. For enterprises willing to make the investment, Mendix is a low-code powerhouse that can do it all.
- Zoho Creator – Zoho Creator is an easy-to-use low-code development platform with a minimalist design and strong selection of pre-built apps and fields. While it requires use of a proprietary scripting language to unlock its full customization and automation power, Zoho Creator is an affordable, user-friendly choice for SMBs looking to invest in a business app creation tool.
- Appian – For enterprise organizations willing to invest in the platform, low-code veteran Appian transforms app development into a social, collaborative, and productivity-driven experience for business users without a shred of coding experience.
- TrackVia – TrackVia is a simply designed and easy-to-use low-code development platform for enterprises.
- Nintex – Nintex Workflow Cloud has arguably the best visual workflow editing and automated logic environment of all the low-code development platforms we’ve tested, but its basic app UI design and database capabilities need deeper integration and improvement.
- Microsoft PowerApps – Microsoft PowerApps is a slick, mobile-optimized, and integration-rich low-code development tool. The database connectors and customization aspects are a bit much for average business users to handle, but its familiar design and uncluttered-yet-feature-packed environment makes it a fit for power users and IT departments.
- Google App Maker – Google App Maker is a young low-code development tool with some growing up to do, but it boasts a straightforward design, intuitive app creation process, and strong visual-oriented features to make G Suite app building a breeze for business users and developers alike.
- Quick Base – Quick Base is an easy-to-use low-code development platform with a comprehensive feature set.
- SalesForce App Cloud – Salesforce App Cloud is the most powerful low-code development platform on the market with a visual tool set and third-party ecosystem that can’t be matched, but its cluttered and confusing UI and a messy collection of tutorials holds it back from unifying the sum of its impressive parts into a cohesive app creation process.
The tools listed above are primarily for desktop and web applications. Comprehensive mobile enterprise application platform (MEAP) solutions (e.g. IBM and Kony) often provide low-code development capabilities but may lock you into their ecosystem. Other MEAP solutions (e.g. PhoneGap) only give you enhanced software development kits (SDKs). See our Vendor Landscape: Mobile Enterprise Application Platforms for more information.
In addition to the core features defined earlier, vendors will incorporate a number of advanced features in their products:
- Development Work and Project Management – Manage and plan development work with calendar, timeline, and Kanban views.
- Application User Access Management – Manage the access and control of users to deployed applications.
- Import Capabilities – Import and convert legacy or applications built using other development tools into the LCDP tool.
- User Visual Models – Envision customer journeys and business processes through graphical process flows.
- Comprehensive Marketplace – Out-of-the-box integrations and plugins with popular third-party services and applications (e.g. CRM, ERP, application lifecycle management tools, collaboration tools, product and application management tools) in the vendor’s marketplace. Allow users to integrate their LCDP tools using SOAP or REST APIs.
- Data and Entity Mapping – Break down an application by form and entities, and see how their relationships will affect one another when specific actions are executed.
- Pre-Built Scripts and Reusable Workflows – Drag-and-drop out-of-the-box scripts, schedules, and workflows to streamline development and deployment. Reuse workflows created and used in other development projects.
- Versioning and Code Management – Audit and track application changes and create a back-up version of the application.
- Automatic Refactoring – Automatically analyze all data models and refactor dependencies to accommodate database changes.
See our Implement a Proactive and Consistent Vendor Selection Process blueprint for more information about procurement best practices (including RFP templates).
Recommendations
- Amend development guidelines, SDLC practices, and roles and responsibilities to accommodate development by non-IT roles and shifts in quality accountabilities from IT to the business. See our Modernize Your SDLC blueprint for guidance in the review your SDLC practices.
- Conduct a training session to teach and enforce good development practices and guidelines that align with current IT standards, priorities, and mandates.
- Review and architect your current application lifecycle management (ALM) tools to accommodate LCDP tools. See our Choose the Right ALM Solutions to Manage Product Delivery note for more information about ALM tools.
- Strengthen your application and product portfolio management practices to accommodate the increased volume of applications and products that your organization must manage. See our Visualize Your Application Portfolio Strategy With a Business-Value Driven Roadmap blueprint and our Transition to Product Delivery blueprint for more information.
Bottom Line
LCDPs empower the business to develop and maintain valuable applications on multiple platforms with little to no technical experience. However, this new capability does not discount the importance of good development, maintenance, and product management practices. Actively collaborate with IT to ensure applications are following corporate standards and all developers take accountability for application quality.