Meticuously matching metamodels

Many commonly used tools assume a very specific conceptual model of the world. The tools might be geared to manage classes, operations, attributes, and relations (UML editors), fields, projects, screens, and roles (Jira), inputs, outputs, controls, and mechanisms (IDEF0 editors), or filters, pins, and connectors (DirectShow GraphEdit). The chosen concepts are represented in the tool’s metamodel (whether this is explicit or not).

Since people have attended different schools, work and have worked at different companies, read different books, come from different cultures or are just genetically wired in different ways, every person holds his or her own mental models of the world. Just try to create a commonly accepted definition of concepts such as “freedom” and “democracy” and you’ll see what I mean. An even worse scenario is a metamodel that lacks the concepts of freedom and democracy altogether, like the Orwellian Newspeak.

Just like Newspeak, an improper metamodel prevents us from reasoning about certain things in an organization. If there is no concept of a “project” in a tool, then it is probably not appropriate in a project oriented organization. likewise, some tools may have a “project” concept in their metamodel but lack a “product” concept. Such tools are probably not appropriate in a very product oriented organization. Seen the other way around, some organization may run all their development activities in the line organization and would find the “project” concept useless or confusing. Likewise, some organizations don’t see product development as a continuous activity where features are added to an existing project year after year but as one single project followed by “maintenance”. In this kind of an organization the concept “product” may be synonymous with “project” and one of the concepts would be superfluous.

The conclusion of the above is that when choosing a tool to support a process in an organization, one should start with explicitly matching the metamodel of the tool to the actual concepts used in the organization. If the match is poor or contrived then the tool will be hard to use and to explain.

Unfortunately it is sometimes very difficult to find the metamodel of a tool. Not many user guides start with a drawing of the tool’s metamodel.

Another way would be to start with the conceptual model of the “things” to manage in the organization and thereafter to create a tool with a metamodel that matches these concepts exactly. This is the aim of for instance the Eclipse EMF and GMF projects. Unfortunately the threshold for adopting the otherwise promising GMF technology is still very high which is an impediment for using them in a commercial setting. Hopefully this will change.

Leave a Reply

Your email address will not be published. Required fields are marked *