Why you need to be a Model Expert

One of the best bits of my job is going to see EA and eaDocX customers, and helping them to get more out of their models. 

And one of the main reasons I'm asked to get involved starts out as some variation of  "I can't make my documents look right..". Because we're the document people, right ?

Now as the designer of the tool producing the documents, this obviously makes me nervous. But I noticed a trend where, when we look at the documents they are trying to produce, increasingly its the underlying model which isn't quite what the author expected.

It's not that the model is 'wrong', just not quite what the author thought it should look like. The use cases are written a bit differently, or the enterprise architecture not joined-up in the way they assumed, or there are new stereotypes which they don't understand.

And these things happen much, much more as more people get involved with the same model. Fairly obvious really - the larger the team, the harder it is to get them all modelling in a consistent way.

So then many of these encounters changed from 'help me get better documents.." to "help us get a better model"

Somewhere in the middle of all this I discovered that, lurking under the covers of the eaDocX Generator was the answer to this problem. A way to help people understand the structure of their models, without looking at each package and element, but by looking at a single diagram.

I think we have an answer....

eaDocX has a feature which creates a document quickly. We call it Quick Document, because we don't have much imagination. Quick Document helps document authors to get a document which shows-off the elements, diagrams and connections in their model, by letting eaDocX discover what the model is made of:

  • What kinds of elements and stereotypes of elements there are
  • What kinds of diagrams there are
  • Which elements link to which other elements.

So why not re-purpose this code, and instead of creating a document of the content of the model, just draw a single diagram showing the structure of the model: elements, stereotypes, diagrams and connections.

Then customers can concentrate on fixing the model, before they ever think about making documents.

Because a consistent model isn't just tidier. It's more understandable by other people. It's easier to see where there are gaps, overlaps and inconsistencies. And so it's more valuable to the business which paid for it. After all, a model can be the Single Version of the Truth for a project or a whole company, and getting that right is important. 

Model Expert

So Model Expert was born - to help people understand and fix their models.

 

With help from some enlightened customers, we worked out that it needed to do three things:

  1. Analyse a model, to show what it's structure is right now:
    • This means what types *(e.g. "Requirement", "Business Function","Component") there are, and what stereotypes people have created based on those types
    • Which diagrams those types use
    • What connections exist between the types, including EA's 'secret' connections (tagged-value or classifier-based)
    • Which of the standard EA attributes have been used, and which tagged values
    • How many there are of all of these

      This 'structure' is called the Meta-model - a model of a model.
       
  2. Validate the current model against some kind of standard or reference model, to see where it needs improvement
    • Check that the model is using an approved set of elements, connections and attributes, so we can have a 'gold standard' for any new modelling we do
       
  3. Fix the current model.
    • We don't do automated fixing - it's just too dangerous, and we think the 'fix' part is best done by intelligent humans. But we do provide tools to take you to exactly where the problem might be in the model, so that you can quickly see what needs doing, and do it.
    • Model Expert will help you fix things either based on a simple Analysis (you probably know what it should look like already)
      or
    • let you fix by comparing your current meta-model and your reference meta-model.

 

Where to use Model Expert

More and more organisations are building big models. We know this, because we go to lots of EA user groups, and lots of speakers talk about the problems of building and managing large models. 'Large' here doesn't just mean a model with lots of elements in it. A 50,000 element model which just has Requirements is big, but it's fairly easy to understand.

Large here means any model where you have lots of different kinds of things in it, but where you can't get all the modellers into one room. That might because it's a big team, and it's too expensive to get them all in one place, or a smaller team which is geographically spread. Or if you're unlucky, both. 

Aside: And this is another trend we see. EA seems to be slowly moving out from holding single-idea models ('idea' = BPMN, or UML, or TOGAF, or SysML) to holding lots of those ideas in the same model, and using the links between the big ideas to get new insights.

Either way, keeping a single model consistent across people, geography and time  - these things don't get built in an afternoon, and ideas change over time - is hard. And I think that Model Expert can play a part in that.

First Fix

The first step towards getting control of a model is to understand where it is today. This means letting Model Expert analyse the whole model, to get a view of what you have right now. Actually that's a fairly bad idea for most models, as Model Expert will produce a large, scary diagram, which will frighten all but the most hardened modellers.

Better to pick one 'idea' in the model: the Use Cases bit, or the SysML bit, or the Enterprise Architecture (pick a single layer, not the whole thing). This produces a diagram which is not so frightening, and gives you a managable set of things to fix. Note that if you choose to look at a single project, that may have lots of ideas in it, so will also produce a scary diagram.

Once you have fixed the most obvious errors - mutiple stereotypes with similar names, accidentally duplicated conectors between the same two 'things' - then you're ready for your first Reference Model.

Reference Models

A Reference model is, initially at least, a simple copy of your best meta-model, but one with all the obvious errors removed. And it really is as simple as copy/paste of an EA package.

Now you have a Reference model, all new bits of modelling can be compared against this, to see if they obey the 'rules' of the model.

This is important, becaue you can now build-in this step - comparing a model with the team reference model - into your model management process. Usually this means that before any new piece of modelling is ready for peer review (you do peer-review new models, don't you?), then it must have been checked against the reference model, and have all the errors fixed.

Note that by 'fixing', we're just talking about the structure and style of the modelling. Model Expert can't tell you that the Requirement 123 is wrong, or that Use Case 'Configure Wibbles' has a step missing. It can however tell you that Requirement 123 has a steroetype of 'special', which isn't allowed, and that 'Configure Wibbles' use case doesn't have a tagged value which we've decided is compulsory.

Teach the Reference Model, and use it

Reference models are not just about checking new content. When someone new joins the team, it's the reference model you tell them about first. It explains in the simplest terms 'how we do things around here'. And Reference models don't change much - afer the initial burst of activity. Changing them has big implications: removing a connector from the reference model means a whole bunch of modelling now doesn't meet the standards, so you need to think if you will go back and change that old stuff, and if so, who pays.

A good, stable reference model is also a good place to start when creating EA MDGs, which can embody your modelling style into the heart of EA. They can make it really simple to help the modeller to do the right thing, first time.

Become a Model Expert

Understanding what's in your model is becoming more and more critical to using and re-using models.

And tools like Model Expert can help you to do that.