How to create the ultimate Mendix development team?
One of the advantages of using Mendix is that business-oriented people can learn how to create an application. It is not required to be a computer scientist to know how to work with Mendix. This makes the pool of potential Mendix developers much larger than traditional developers. However, there are common characteristics between a traditional and Mendix development team that should not be overlooked. In this article, Menno de Haas, Team Lead at WebFlight, discusses a number of aspects that are essential for a high-quality output of a Mendix development team.
It sounds trivial, but it all starts with a search for the right people. Although Mendix does not require coding skills, you still work with data, relationships, and processes. This requires people to have a certain level of abstract thinking, which is usually reflected in studies and activities that people like. Beta-oriented people that do like to work with data structures and models are more likely to enjoy their job and excel in being a good Mendix developer.
Standards and processes
In every development team, it is important to have the right standards and processes in place for quality assurance and maintainability of the (low-)codebase. This means you need some sort of DoD (Definition of Done) that describes the development process that starts with a new user story up until the release to production of that same story. In addition, the team needs to adhere to the same conventions with regards to the technical implementation. In traditional software development, people use lint(er) to check for a certain code style. Despite the fact the commercial tools are available to check the quality of a Mendix model, Mendix does not come with such a tool out of the box. This makes it more important (and cheaper) to agree on a shared list of conventions (naming, folder structure, setup, and configuration).
From my experience, the most important part of the DoD is peer-review! This allows team members to learn from each other, which stimulates an open culture of receiving feedback and sharing knowledge. As a result, the quality of the work and people increase significantly.
How can a team assure that a product is and continues to work as expected? Software testing is a collection of methods and tools development teams use to measure the quality of the software. The testing pyramid distinguishes three levels of automated testing: unit testing, integration testing, and UI (functional) testing. The order of the levels in the pyramid stresses the amount of effort needed to create the tests. Depending on the risks associated with different parts of the application, you can think of including these tests in your application.
Unit tests are the easiest form of automated testing to include in your application. In my opinion, every developer should create unit tests. Creation of unit tests forces the developer to think twice about the logic he created, which makes it more likely to find bugs now and in the future. Mendix comes with a free unit test suite in the App Store, which offers the basic functionality to create and run unit test suites. However, object mocking and advanced assertions (e.g. number of times a method object is committed to the database) are not possible. CI integration is possible (not using default Sprintr deployment), but fairly complex to accomplish. To monitor the functionality of critical exposed APIs, API documentation and testing tools (for instance Stoplight.io) are essential!
To get most out of your team, reserve time for people to discover topics beyond the scope of their daily work. This can significantly broaden or deepen the knowledge in the team on both soft and hard skills. Usually, people really appreciate having time to learn! For basic Mendix applications, hardcore IT skills are not required, but when projects deviate from the basics, you easily find yourself in unknown territory. If people in the team are used to explore topics they are unfamiliar with, it is easier to cope with the unknown territory. So be sure to have some people in your team who are not afraid of hardcore IT topics (ops, coding Java/JS, infra)!
Are you interested to find out more about our approach to creating the ultimate Mendix development team, or curious about our latest projects?
Please visit https://webflight.nl/ or contact:
Rogier de Graaf, Commercial Lead, at firstname.lastname@example.org or +31 6 430 830 25
Interested in joining our own “ultimate Mendix development team” at WebFlight?
Check out webflight.nl/vacatures