My favorite Mendix 3 Feature – Version Control
Without a doubt, one of the coolest features of Mendix 3 is Version Control. Previously, Mendix development was a bit like living in the wild west. If you messed up a microflow or data model, you would just delete it and remodel it in a few minutes, because its that agile. After all, you just need to understand the business to model at fast draw speed, but still you had to ask yourself one question: ‘Do you feel lucky?’ Well, do ya punk? Cause there is no turning back without source control Harry.
Its the topic that is bound to pop up when talking with techies. “What version control do you use?” Admittedly, the answer starts with a slight “uhm well” and ends up in a justification that “in Mendix you model so fast, the model is self-explanatory and that source control is obsolete and only sissies use it“. Thats all true in a gunslinger-way, but the reality is that in distributed development teams and complex systems, visibility of changes and traceability of contribution is key in making collaboration a smooth process. Rolling back to some old code is inevitable, so fine historical granularity is key.
That being said, Mendix 3 has it now, but what’s under the hood? The guys up in Rotterdam chose subversion for its version control because of its maturity and particular feature-set. It leverages diffs to control changes made on the model on a finely grained level, which is the coolest thing since Clint Eastwood.
But thats not all. It also integrates into Sprintr™ (aka Team Server), and deprecates the traditional multi-developer projects that is dependent on connectivity to a centralized database repository, either by local connection or you had to have a good internet connection — where here in South Africa its still pretty much the wild west today. With SVN you can work on a local copy and merge your model at a later stage, not to mention all the other benefits you get from a VCS, like commit messages and conflict resolution. Using Sprintr™ in a scrum environment, its a handy way to relate changes to user stories. There is a lot of good stuff in there.
Now you can enter that next technical discussion with confidence, not having to dodge the bullets around the lack of source control. “Go ahead, make my day.”