Many tools offer you an increased productivity in what you’re doing. There are a lot of different tools on the market and it’s often difficult to choose the right tool for the job. In 2010 CLEVR has chosen Mendix for the promise of easy and fast development. Back then Mendix existed a few years and was at version 2.5. I consider myself as an early adopter of the Mendix platform. Since then they have released a lot of new versions and reached into the cloud, mobile and a lot more. This blog describes my experience with the Mendix platform over the years. I will share why working in Mendix is so fast and also what CLEVR has done to make their projects even faster.
Firstly, I will address the speed of development. Mendix refers to independent research carried out by QSM, see this website, that shows when a large development project is being developed in Mendix, it is, compared to the same project in Java, on average 6 times faster!! We have a similar experience.
6 TIMES FASTER? YES, 6 TIMES FASTER!
How does a development platform enable you to work faster and increase your productivity? By making things simple and understandable. At CLEVR we have teams working with other development platforms and also teams coding directly in Java and JavaScript. In 2010 I was the head of the project team that started rebuilding our ExpertDesk application in Mendix. The 6 years prior, we developed ExpertDesk on another development platform. In just 1 year we have built a version of ExpertDesk on Mendix that has the same and even more functionality than our previous version on the other platform. A great result, especially when you realize that the amount of team members in our development team was reduced by 50%.
In 2010, another development team started working on our product Floxxium, using amongst other technologies Java and JavaScript with (off course) re-use of a lot of libraries. Floxxium is also a service management solution like ExpertDesk, albeit with another philosophy, targeting different markets. By comparing the rebuilding of ExpertDesk on Mendix, with the ExpertDesk on another platform, and the building of Floxxium, we can state that developing in Mendix is at least 6 times faster indeed!
WHY IS MENDIX FASTER?
Mendix uses several types of visual diagrams that they call a domain specific language (or DSL). The DSL for business logic is called ‘microflows’. With microflows you can manipulate data and perform actions like opening forms, calling web services and a lot more.
Microflows are used for everything from GUI buttons, to scheduled events, to calculated attributes, to web service handling, to domain model events (triggers on a change of data). Microflows can call other microflows and you can use a functional programming style if you like.
In the DSL for the domain model you design your data structure with entities, attributes and associations. The following features are supporting fast development:
- The simple overview, so you don’t need separate documentation for your data model;
- Creating relations with an arrow, even for many-to-many relations, that are completely handled and maintained by Mendix;
- The inheritance of entities allowing for object oriented thinking and re-use;
- The non-persistent entities, meaning they are not stored in the database. This allows you to build Mendix as a layer on top of other applications without the need to store duplicates of the data;
You can add calculated attributes to entities that use the same Microflows DSL as all other business logic.
Off course there is a DSL for the GUI with layouts, forms and snippets. I suggest you take a tour at Mendix if you are interested by now. You are also welcome to drop me a line (see contact details below). I will proceed beyond the visual ease of use into some of the less visible, but certainly not less powerful features.
The consistency checks are very powerful. You cannot start a model if it is inconsistent and the errors point you direct to the place where they occur. If I remove the first action in the Microflow above the following errors appear:
So while building (coding, developing, modeling, give it a name!) the tool helps you in creating software that plays by the rules. This removes a lot of potential errors and therefore saves a lot of time!
The easy extendibility and integrations are very powerful too:
- Easy (visual mapped) web services;
- Between Mendix applications even better (faster, easier) AppServices;
- Java actions that generate a full class for you with parameters and return values for the microflow, so you just have to add a few lines of code between //BEGIN USER CODE and //END USER CODE;
- Custom widgets using the client JavaScript API;
- And an AppStore to share all of the above;
Finally the eco system in which the developer does his job is just great. To mention a few benefits of the ecosystem:
- A built in source control system, called the team server, that saves the revisions in the cloud;
- Running the application locally by pressing the ‘run’ button;
- Deploying and running your application in the cloud by pressing another ‘run’ button;
- Debugging with a graphical, interactive debugger that can also connect to cloud environments;
- Asking questions on the forum and getting reliable answers fast;
- A great community sharing work in the AppStore;
- A cloud portal for full management of your production environment in the cloud.
THE ADDITIONS WE DEVELOPED TO MAKE MENDIX EVEN MORE POWERFUL
We have learned that testing is becoming a big part of a Mendix project. When testing manually, the testing time is getting relatively large compared to the building time. Over time when a project becomes a release and new features are added the testing effort becomes even larger.
CLEVR has developed the Application Test Suite (ATS) to address automated testing. This framework is designed with speed and ease of use in mind. So people who do not build or model in the Mendix modeler can still create test scripts. Off course creating test scripts takes time and the first time maybe a bit more than it takes to do a manual test. But in automating your test you get your returns in huge amounts when you are doing future iterations. If you would perform a regression test for each deployment to subsequently a development, test, acceptance and production environment, you would make 4 times use of the automated test script. And since we are all working Agile the future will have an endless amount of iterations J.
A complex ecosystem like that of Mendix is sometimes also difficult to support. You need tooling to find complex bugs. At CLEVR we have built tooling that makes all kinds of support information available and especially a tool that listens to all log messages, even those internal trace messages. When an error occurs this tool stores the last seconds before the error to the database. That is similar to your airplane’s flight data recorder. For more information on this topic read my other blog on solving common helpdesk problems.
Also platform tools can suffer from performance issues and to address those you need tooling as well. In yet another blog I describe when and how to handle performance issues by making use of the performance and statistics tool in CLEVR’ Application Performance Monitor.
To conclude this blog, I believe with Mendix you can develop your Apps at least 6 times faster than classic developments anno 2015. This means that what would take half a year in the past now only takes a month! And with the right tooling and the right people you can maintain this development speed in the long run.