Introducing AI-Assisted Development to Elevate Low-Code Platforms to the Next Level
Johan den Haan / June 19, 2018
Mendix was founded on the belief that software development could only be significantly improved if we introduced a paradigm shift. And that’s what we did. We fundamentally changed how software is created. With the current generation of the Mendix Platform, business applications can be created 10 times faster in close collaboration or even owned by the business, with IT being in control. Today we announce the next innovation, the introduction of AI-assisted development, which gives everyone the equivalent of a world-class coach looking over their shoulder.
Low-Code delivers business value by involving domain experts
The fundamental belief we have is that software should not be something just for IT. Every company needs to become a software company to survive in a software-driven world. The whole organization needs to be collaborating on the lifeblood of the business: software. Why? Because the future of the company depends on it. Experimentation and innovation by people that know the business domain is key to survival.
The craft of application development is how the software solves a certain business problem. The goal is to enable business domain experts while also empowering professional developers through abstraction, automation, and intelligent assisted development. The following capabilities are key to the success of enabling the entire spectrum of developers to take part in software development:
- Visual modeling languages for all aspects of a business application: Visual development tools empower real-time collaboration between your business and IT teams by providing a common language to experiment, iterate and achieve quicker time to value.
- Consistency checks to prevent technical errors in the application: With real-time error checking, developers can receive immediate, contextual feedback that there is an error, pointing directly to where the error is in the application.
- 1-click cloud deploymentThe ability to one-click deploy to any cloud environment directly from the modeler enables developers with any background to bring applications to their users.
- Integrated feedback management: Embedded user feedback widgets enable users to provide instant feedback directly within an application. A closed feedback loop enables the development team to quickly resolve queries from the business, facilitating rapid iteration. Built-in app validation with instant app sharing can further enhance collaboration.
Based on these concepts we have been enabling a whole range of people with different backgrounds to be successful in creating software that delivers actual business value.
For example, a Systems Consultant at Saga Healthcare with a background in Software development, primarily C# and Java, built a robust financial system application in just three months that automates processes and cuts time and cost for the customer. Similarly, a Business Engineer at NC State with no programming background built a complex app to monitor all the non-credit activity for NC State and all the compliance required training.
Low-Code is all about patterns
If you think about the capabilities mentioned in the previous section, you will quickly see a pattern. It’s all about abstraction and automation. Abstracting away from low-level programming by using visual models and automatically translating these models into working software. Abstracting away low-level infrastructure by one-click deployment and automatically provisioning the entire stack to run an application.
Abstraction and automation are only possible if we come up with common patterns and turn these patterns into a single concept. Developers will lose some flexibility, but gain a lot of speed and don’t have to know about the underlying details. My job with the Mendix R&D team is to find the right patterns to include in our platform and to balance speed, ease-of-use, flexibility, and control. The result should be that we continuously improve the productivity of a broad spectrum of developers.
It is easy to say that everyone needs to contribute to software because it is the core of the business, but how do we get all these people started and productive? That’s where Machine Learning comes into play in the form of AI-assisted development. It is the logical next step for low-code platforms as it adds the next level of abstraction and automation.
How Machine Learning helps us to bring our platform to the next level
Sounds fancy, nowadays, right? Using Machine Learning to automate stuff, make things smarter. Well, let’s not overhype this. Machine Learning is about analyzing historical data and using it to try to predict the future (automated and at scale). Machine Learning basically is pattern recognition, and patterns are the core concept of low-code platforms as explained before. That’s why we have a big opportunity on our hands.
We are in the unique position to have ten years’ worth of historical data. Application models, metrics, user behavior, etc. All fully anonymized and obfuscated, the only thing we need is abstract structures to train our machine learning models. With these models, we can not only speed up application development even more by automating part of the creation of models, we can also lower the entrance barrier for people to learn application development.
Today, I’m happy to introduce Mendix Assist, the first AI-assisted development approach built into a low-code application development platform. Enterprises will benefit from Mendix Assist in three main ways:
- Hands-on mentoring for new developers with AI-assisted next-step-suggestions to teach them how to build apps in real time. Mendix Assist is the equivalent of having a world-class coach looking over their shoulder to dramatically accelerate the learning curve without the added cost of additional training resources.
- Increased developer productivity and capacity with AI-assisted development including ‘complete the thought’ smart suggestions for application logic flows. This development support provides the benefits of “pair programming” without needing two expensive resources on the task.
- Decreased time and cost impact of functional and non-functional defects by preventing them before they happen. By providing consistency checks and quality oversight including security configuration consistency, software maintainability, and application scalability, Mendix Assist spots issues that normal analysis wouldn’t find as well as provide actionable feedback directly to the developer at the time of creation.
Mendix Assist for microflows
We will ship the first version of Mendix Assist in Q3 of this year. This first version of Mendix Assist is based upon Machine Learning analysis of over five million anonymized application flows built with Mendix across 15 industries. Mendix Assist provides 90 percent accuracy on next-step suggestions in microflows.
So, what does this mean? We use Machine Learning to detect best practice patterns in microflows. Based on this we can now assist developers when building a microflow by suggesting the most sensible next step they can take. This suggestion is based on the previous activities and the context of a microflow. We tested Mendix Assist on existing models and saw that it predicts the next activity in a microflow correctly in 90% of the cases!
Let’s see it in action:
As you might notice in the video we do not just suggest and add the next “shape”. The activities that are added when you click a suggestion are fully configured, all (or a lot of) the properties have been configured based on the suggested pattern and the context of the microflow.
The first version of Mendix Assist as shown in the demo video above uses a Deep Learning approach based on Recurring Neural Networks. We have trained a Recurring Neural Network on TensorFlow using the anonymized data of production-quality Mendix models.
How Mendix Assist is different from “Clippy”
One of the first things a lot of people say when they hear about Mendix Assist is: “that sounds like Clippy!”. Clippy, the Microsoft Office Assistant, was designed to make writing easier. It would try to help you with the content you were writing, but it was not contextually aware, served up documentation, and used scripted messaging based on the type of content you were writing. Often, Clippy would jump in to make recommendations, such as “I see you’re writing a letter,” when you were writing something different. Clippy was ineffective as a digital assistant due to lack of context and data and was more likely to drive a user to distraction than actually help get real work done.
Mendix Assist is different in that it analyzes historical data, detects patterns, and provides contextual assistance and next steps, all in a non-intrusive way. It actually feels like an experienced Mendix Developer is pair-programming with you and suggesting you what to do next.
How Mendix Assist goes beyond code completion
The big advantage of a low-code platform is that the “programming” language is very specific to the domain. The Mendix Platform uses Domain Specific Languages (DSLs) for each aspect of an application. Examples are dedicated DSLs for the domain model, for security, for integration, and for logic. Compared to a GPL like C# or Java the number of language elements in these DSLs is much lower. This means we can be much more effective in analyzing entire apps with a lot of functionality, detecting what a developer wants to achieve, and suggesting that.
This allows us to take much more context into consideration. Instead of just analyzing the previous elements in a flow, we include the surrounding model as well. For example, how that flow is used from the user interface, the elements in the domain model, etc. This results in very accurate suggestions in so far that it feels like a Mendix Expert is helping you build your microflow.
Much more to come
As you can imagine, Mendix Assist will be a great help in getting people that are new to Mendix up to speed. They can learn the best practices and the best way to do things from Mendix Assist!
And this is just the beginning… We will be releasing new versions of Mendix Assist monthly. Mendix Assist will continue to get smarter over time via learning algorithms that expand the AI knowledge base, incorporating insights from all applications being built (and run!) on Mendix and tailoring the assistance to your personal development style.
In addition to assisting a developer with the task at hand, we can also suggest entire model patterns based on best practices around performance, scalability, and security.