If we think back a few years ago to 2016, mobile application development was still largely a siloed discipline. Tools that were great for mobile app development were typically specialized for that purpose, and different teams were often implementing mobile apps separately from web projects. We all knew that wouldn’t last forever, and indeed platforms that combine mobile and web app development have become increasingly common.
But beyond that inevitable merger, additional forces are pushing us into a whole new realm. Enterprises are beginning to experiment with, pilot and deliver new forms of interaction, such as conversational UIs or augmented reality (AR). As they do so, businesses have come to realize that user experiences need to be tailored for each different user and their needs as well as for their mode of interaction. In other words, individual experiences need to be fit-for-purpose. Organizations are now becoming acutely aware of the downside of not addressing tailored customer experience. And, at the same time, they’re finding it harder and harder to keep up with solution delivery. So, in addition to creating a new set of user experiences, organizations are in the process of transforming their solution delivery approach to what some refer to as a digital product delivery model: a model that allows organizations to more rapidly deliver solutions to real business problems through digital technology.
This is why mobile app development is now multiexperience development.
Mendix’s vision for MXDP
Our vision for multiexperience is based on the following three principles.
Delivering great user experiences across all channels
The way that people engage with businesses, individuals, and systems is rapidly progressing from forms-based UIs on one or two devices to an expanding array of digital touchpoints that increasingly leverage new interaction models and capabilities.
Mobile has been a target for application delivery for over a decade, yet mobile solutions in the enterprise remain largely underserved. Even organizations that have begun creating conversational UIs or AR apps have only developed and delivered a handful of mobile solutions. There are examples of organizations that have delivered dozens or even hundreds of mobile apps, but these remain much rarer than one might imagine.
Why is that?
We believe that one reason is that developing rich, responsive apps that take full advantage of being mobile and delivering great experiences is still too challenging for most organizations. That’s why we are delivering a truly native mobile option: a new mobile client architecture based on React Native, fully enabled by WYSIWYG design and model-driven development of client logic, complete with drag-and-drop native actions, that supports offline-first development.
Beyond mobile, new forms of interaction—such as conversational UIs—eliminate the possibility of “build once, run anywhere”, because these interaction models increasingly have their own specific needs and need to be modeled in new ways. So, the state of the art in low-code development must advance to provide abstraction and automation for each new form of interaction. Here we are investing in and delivering new modelers and platform services to support designing and building each new form of interaction, leveraging the same application architecture and back-end services (more on that later).
But delivering contextualized, optimized, and cohesive experiences requires more than new tools for creating additional forms of interaction. People now expect rich, natural experiences that are optimized for them—their task, their aim, their context, and their chosen interaction mode—while remaining cohesive and seamless across any and all touchpoints. Satisfying that need requires a new approach to designing and delivering solutions— i.e., a product-oriented approach vs. a project-based approach—while keeping the user and their needs front and center. Such an approach requires fresh thinking about culture, methodology and technology.
Which leads us to two additional principles that underpin the Mendix multiexperience vision.
Adopting DesignOps best practices
More and more organizations are embracing agile, continuous integration & delivery (CI/CD) tools, and DevOps within their application delivery practices. These are core tenets at Mendix, and are fundamental both to our platform and our Digital Execution best practices. The main idea behind these concepts is for organizations to deliver successful solutions more rapidly, and to do so reliably, repeatedly, and at scale. Fundamental to such an aim is the need to ensure quality as you rapidly iterate. Speed can’t come at the cost of quality.
Creating effective digital solutions requires that we take a deeper and broader view of application quality and, in turn, how to deliver it. Quality is no longer measured by testing application functionality alone, but by measuring the solution’s real-world efficacy. Does the solution solve the right problem? Does it do so in a way that is reliable, performant, usable, and supportive of users’ needs?
Ensuring that a solution is usable and aligns with user and business needs requires thoughtful solution design while remaining pragmatic about delivery. DesignOps conceptually layers on top of DevOps to operationalize your organization’s approach to product design. It makes design an integral part of the application lifecycle, applying design thinking techniques to test assumptions from initial concept to solution design and delivery. At Mendix, we believe that DesignOps isn’t something that should only be performed by a centralized product design team. It should be practiced by all development teams as an integral part of their work.
A low-code platform plays a central role here, not just in tooling, but as the orchestrator of process, feedback and collaboration—throughout the entire application lifecycle. Business users, developers, and designers alike can create live apps to validate their ideas and implementation designs by putting them into test users’ hands. And they can do so in the same length of time that it would take to build a throwaway prototype. Your developers can quickly and easily user test initial designs and any or all enhancements. Your users can provide feedback in production to be fed back directly to the development team. Your operations team can monitor apps in the field for performance issues and usage patterns. And your product owners can manage design sprints and prioritize enhancements or refinements along with business stakeholders. In other words, low-code can become the center of your DesignOps practice.
Establishing the right architectural foundation
Delivering software that supports the user journey across an expanding array of digital touchpoints requires the right architectural foundation. Organizations need to balance optimizing a user experience for each individual and by touchpoint with the cohesiveness of experience across them, the autonomy of delivery teams, degree of code reuse, and governance of shared resources and data. That need has been present since the emergence of mobile but is exacerbated by the emergence of a great number of simultaneous touch points, application of user-centric design, and new forms of interaction that in some cases are designed and constructed completely differently. The classic n-tier architecture of the 90s and early-2000s may have gotten us through the days of limited use of mobile apps alongside the web, but this is an inadequate foundation for today and the multiexperience future.
The core of the emergent architecture for multiexperience systems combines microservices principles and containerization. When combined, you gain the ability to create reusability and flexibility, while preserving control and team autonomy (I say “microservices principles” because not all services will be small—their granularity will range from small to large depending on a number of factors). The emergent architecture leverages a landscape of services of various sizes (so-called “multi-grained services”), published and controlled through standards-based APIs so that you can compose and orchestrate as desired to satisfy the needs of a specific user’s experience. Gartner refers to such an architecture as a MASA, or Mesh App and Service Architecture.
The Mendix platform is based upon an advanced MASA, stemming from an investment in our platform architecture we began several years back in containerization, event-driven architecture and API publishing and consumption. Many of our customers now build microservice-based landscapes in support of both multiexperience apps and creating large-scale mission-critical systems and are seeing the benefits of the approach. At Mendix, we see this as a core area of multiexperience development and will continue to make a strategic investment in it.
At Mendix, we are passionate about not only the technology behind multiexperience development, but the organizational approach and way of working required to deliver value through great digital products based on it. Multiexperience is essential for your customer experience.