Should my Organization Use Mendix or SAP Fiori (or both)? Part 1 of 2.

Introduction

As a consultant operating in business application development, the question "what is the difference between Mendix and Fiori?" has been posed to me quite a few times, and when answered was usually followed by "well, which one should I use?"

In this post the second question is addressed.

Answering the question at one particular client was easy because they were already running SAP and already invested quite heavily in SAP technologies. The answer is different at another company who hasn't made the investment into the SAP Cloud Platform. Ultimately, there are many factors to consider that will ultimately influence the decision.

This post breaks the criteria that would influence the decision into the following categories:

  1. Strategic Objectives
  2. Technical Landscape
  3. Development Team
  4. User Experience Strategy

1. Strategic Objectives

It is as much a technical decision as it is a strategic one. In this sphere cost and long-term vision of the IT organization plays a big role. (Let's not forget that the IT organization's vision should be aligned with that of the business.)

A strategic analysis of each of the platforms would need to be conducted, keeping in mind the expected utilization of the platform (number of users, applications to be hosted, security and uptime requirements, etc.) Apart from the obvious gap-analysis of features vs requirements, the service agreement levels also influences the decision.

To emphasize, it is important to determine whether the platform is aligned with and supports the business strategy. Currently forces impacting business strategy includes a changing workforce, an increased need for mobile computing, Internet of Things and Artificial Intelligence. Both Mendix and Fiori cover these things, making the decision all the more difficult from a strategic perspective.

2. Technical Landscape

The technical landscape will look different if SAP Fiori is used vs. Mendix. With SAP there is essentially one system of record, but each Mendix application has its own database (which often leads to unnecessary duplication of data). For both platforms integration is a crucial piece of the technical landscape.

If the application will primarily connect to SAP, then it makes more sense to stick to SAP technologies (the main choices here are SAP Cloud Integration, or a NetWeaver Gateway setup). Mendix supports integration at an application-level, which is something to keep in mind when thinking about scalability.

3. Development Team

The skills needed to develop and support Mendix applications are different from what you would need for Fiori applications. As such, the development resources of the organization is something to think about in order to effectively adopt one of these platforms.

For Mendix a strong technical background is not essential (albeit helpful), instead it favors a comprehension of business analysis (especially when it comes to activity/process modelling and relational database design). Mendix has the capability to run Java on the server and JavaScript on the client side, and as such programming knowledge in these languages is beneficial. The same developer can do both the data modelling and UI development.

Fiori development has a more defined separation of development responsibilities, and as such there will typically be an ABAP developer for the backend and a JavaScript developer for the frontend. The only gray area is the integration layer if OData web services need to be developed - the front-end developer should be able to do this, but in some instances a little bit of ABAP code is required.

In terms of a development experience, SAP Fiori development can be done in a web browser with the WebIDE, which makes for an efficient workflow. The Mendix development environment is limited to the Windows operating system, and an application is bound to a specific version of the IDE. This results in a sub-par development experience, especially when you start working on multiple apps on different versions.

4. User Experience Strategy

Both platforms, if implemented with a proper UX strategy, has the ability to give users a pleasant user experience with a consistent look and feel. From my experience Fiori has the most mature model in this regard, and it can be observed with their design tool (called BUILD), and predefined floor-plans (e.g. the master-detail pattern).

Just because applications should have a similar look and feel doesn't mean it should be identical, and both platforms provides the ability to customize the theme of each individual application.

A good user experience ultimately comes down to a successful design, and for that a good user experience designer is required. A well thought-out design doesn't mean it will be implemented the way it was envisioned, however, and certainly doesn't mean that it won't change as the business and technical requirements evolve during the project (this is often the case in projects following the agile methodology). Quality insurance is extremely important.

Conclusion

In conclusion, there is no clear answer which platform is best and it is ultimately up to the CIO to make the decision. The criteria discussed in this post highlights some of the factors that might be important when making hte decision.


© 2017