UPDATE: These original ideas have evolved to a full-blown opinion article, co-authored with Antonio Vallecillo and published in the Sosym journal, read it here (open access)

Organized by Eugene, the panel at Models 2019 was aimed at discussing how modeling and model-driven engineering were used outside the software domain. Panelists were asked to talk about non-software projects where they have used MDE, how MDE had helped and how it had failed.

As one of the panelists, I mentioned our works on modeling firewall security policies, governance of (open source) communities, among others. But I decided to focus on the day I discovered my wife was cheating on me. I caught her modeling graphical workflows in Eclipse without telling me anything about it.

She is a biologist. As part of her PhD thesis, she had to process DNA data to detect gene mutations that could be correlated with an increased risk of developing heart mutations. And for that, she used Knime4Bio (a Knime extension for bioinformatics). Note that this extension was not created by “one of us” but by one of “them” ( Pierre Lindenbaum), not exactly an expert in language design (which as we discussed below, it turns out it doesn’t matter that much).

An example of the models she created, directly taken from the thesis, is the following

As you can see, it’s not a trivial model. And it’s not only a model but an executable one. Knime supports the running of this workflow and the inspection of the data at each point of the process. I believe the fact that she was able to create models like this alone brings up some important reflections for the modeling community. I briefly enumerate them here but I really hope that we (the models community) find the way to discuss and expand them since I do believe that a brighter future for modeling is hiding somewhere in them:

  • Nobody calls it modeling. My wife never really thought what she was doing has anything to do with me. Even if she knew I was doing research on (software) modeling. She didn’t waste time in philosophical discussions (e.g. programming vs modeling), just got her job done.
  • Modeling is the natural evolution to reduce complexity. We see it every time. Any community, once facing the problem of reducing the complexity of its domain, turns to modeling for help. In this case, as non-programmers, they could not just write the scripts for data processing they needed so they created the abstractions that worked for them. Low-code /no-code solutions are not a new discovery 🙂
  • Data modeling / processing still seems to be the strongest selling point. Any domain needs to retrieve and transform data.
  • (Good) Tools are the entry point. The only metric she used when considering to use the “modeling” tool was whether it helped her or not. She couldn’t care less about any other factor. For her, the tool was the only “visible” aspect of the modeling infrastructure. She couldn’t care less about the beauty of the underlying metamodels. If the tool wasn’t helping, she would have immediately dropped it. So, to have an impact
    • Make sure you create something useful, not perfect
    • With a Tool-first approach
    • Scalability and usability triumph over consistency and formalism

My main conclusion is that there is plenty of modeling outside the systems / software domain. And that for many of those people, modeling is a natural solution, not a forced one (looking at you, my dear programmers). But unfortunately, they don’t know we exist (as they see us as part of the software development community) and therefore they don’t ask us for help. As a result, the average quality of the languages, notations, transformations they develop could be largely improved (just take a look at some of the tools for modeling AI data pipelines, quite a few of them are really horrible IMHO).

I believe modeling should break free of the software chains and become an independent discipline, ready to help any other science and engineering area where we can be useful. For a long time, we’ve been too focused on discussing how to convince software people to adopt a more model-based approach (which is good and we should continue trying) but we have not been able to realize that there are plenty of communities that “love” us already and could benefit even more from our help. Let’s stop talking only about software modeling, or systems modeling. Let’s talk modeling!. Who is with me?

Featured image by niu niu on Unsplash

Want to build better software faster?

Want to build better software faster?

Read about the latest trends on software modeling and low-code development

You have Successfully Subscribed!

Pin It on Pinterest

Share This