What Is Domain-Driven Design? Why Is It the Future of Low-Code Development?
The pace of investment in low-code and no-code software has accelerated alongside the shift to remote work, with startups in the low-code sector earning an estimated $500 million in capital investment in 2020 alone. And although a global talent pool offers more opportunity than ever, a chronic shortage of experienced developers has led Silicon Valley and the world of tech startups to look toward low-code as a long-term solution.
We’ve been here before. While the total investment numbers are larger than ever, the dream of enterprise-level software built with little to no code has existed for decades. Veteran developers may recall the late-20th century hype surrounding fourth-generation programming languages (4GL), a term first coined way back in 1981.
At the time, these languages promised a higher level of abstraction away from internal hardware details, allowing programmers to do more in less time — and with less expertise. The lessons learned in developing these languages have influenced modern low-code platforms, yet the promises of 4GL never arrived for one key reason: a lack of customization.
Flash forward to the present day, and CIOs are facing a familiar challenge. The environment for low-code development platforms has greatly expanded, yet the need for customizable solutions in drag-and-drop environments remains the same. What has changed are the solutions available to companies across industry verticals.
Solving the Customization Dilemma
CIOs are wary of adopting a low-code solution that ends up cornering them into a platform that can’t expand with business needs. This lack of customization manifests in various ways, typically through features (or the lack thereof) that limit scalability.
Obstacles to Low-Code Customization
- Proprietary scripting languages: The value of low-code is in its very name. A platform that relies too heavily on its own unique scripting language effectively silos developers, limiting growth.
- Lack of collaborative integration: Many low-code platforms offer cloud-based development, meeting the new needs of dispersed teams. When employees can’t seamlessly collaborate on application development, however, the promise of faster deployment goes unmet due to a lack of features.
- Code-required error handling: Getting a working model of your low-code application up and running is only the first step. Tracking, identifying and handling errors in operation — i.e. quality assurance — is a continuous, iterative process. And it’s one certain platforms are unable to handle without arduous hunt-and-peck testing (or by leaving the platform behind entirely to return to developing from scratch).
These aren’t the only customization issues CIOs fear when seeking a low-code platform, but they are among the most consistent issues users and executives face in adoption. What, then, are the features that help overcome these hurdles?
How to Assess a Low-Code Platform
The customization challenges are part of the reason why only about a third of developers used (or planned to use) low-code tools in 2018. Yet this number rose to more than 50 percent of developers by mid-2020, signaling that, although the challenges are real, they’re not insurmountable. The speed and flexibility of developing apps on these platforms remains a major draw.
So much so, in fact, that developers have a wide and ever-changing variety of options when it comes to platform selection. Major tech companies have deployed their own low-code tools — including Amazon’s Honeycomb or IBM’s Automation Platform — while others have been shuttered as recently as January, such as Google’s App Maker.
All of these platforms, whether released by major tech companies or smaller startups, consistently deploy new features and capabilities to keep pace with the needs of developers. Yet the core features of a solid, enterprise-ready low-code platform are consistent:
- Robust integrations: The shift to web apps and cloud-based development operates on large amounts (and types) of data. At scale, a low-code platform is only as good as its ability to integrate this information for developer use.
- Purpose-developed infrastructure: Applications developed for business process management differ from those deployed for customers and clients. Increasingly specialized application development is possible via low-code, including solutions based on particular industry verticals or targeted geographic locations.
It’s this final point that becomes a sore spot for teams considering low-code adoption. Moving away from this requirement in application development — or to reach an entirely no-code environment — illustrates the need for domain-driven design (DDD).
The Future of Low-Code: Domain-Driven Design
Domain-driven design is a development framework that allows experts from both the programming and business domains to work together to create a new “ubiquitous language” for enterprise use. In low-code, this allows employees to use the domain-specific language in application development. The under-the-hood infrastructure of the programming language is abstracted away — but only to the extent necessary within its industry.
Users of platforms following a DDD philosophy are typically known as “citizen developers,” in keeping with the push toward democratizing app development through the adoption of a low- or no-code approach. A company may have five, 10, 50 or a 100 citizen developers working within the domain-specific ubiquitous language to create apps for their company (or their clients).
These citizen developers would outnumber both the business developers and expert programmers, who are largely free to move on to other tasks or to occasionally advise on low-code development once the domain is up and running. The fact that anyone can become a citizen developer is what allows companies to reduce their time to market, create custom automations for repetitive tasks and ease the perennial IT workload backlog.
Meeting the Challenge
The market for low-code development platforms is currently worth about $13 billion. By 2025, that number is expected to rise to $45.5 billion, a massive increase that signals heavy enterprise investment in digital transformation.
Yet merely migrating to low-code tools isn’t enough. Analysts and IT teams must come together to develop those domain-driven design principles within their organization, thereby unlocking the path toward citizen development and moving us toward a robust, no-code future.
Right now, however, customizations are the key to building a domain-driven philosophy from a low-code platform. Today, these customization may come from a programming expert, a business analyst with deep knowledge of the industry — or from both working in tandem.
When citizen developers can ideate, implement and successfully run their own customizations, the possibilities in low-code can finally fulfill the promise we’ve been waiting for since 1981.