I know this, because I fell into this bear trap.
Long ago, we had a great workshop, designing a meta-model for a project. We had modelling experts, domain experts, and even a Project manager to keep it all real. And at the end we had a MM which we all agreed would capture the essence of what we needed to model. Now just go away and populate it.
I was SO confident we’d nailed it – after all, it wasn’t the first time we’d thought about this – that I offered to customise our chosen tool to implement the MM. With Sparx EA, this is fiddly, but fairly straightforward. So a spent a couple days organising a set of diagrams, toolboxes and stereotype definitions, and it all went into an ‘MDG” file which was in effect our own modelling language. A “Meta-model in a box”.
Our team of 5 then started modelling.
We had a team stand-up every week to start with. Things were developing fast. We were discovering all kinds of new stuff about the domain, so sharing was essential. but the MM didn’t quite keep up. We needed new stereotypes, new kinds of links, and even new kinds of diagram, almost weekly. So I spent hours each week re-designing the MDG – which contained all these new ideas – and re-releasing it to the team. This went on for about 2 months, after which I finally got tired of endless re-writes, and we decided as a team that whilst we’d DOCUMENT our MM, we’d wait until it stabilised before we committed it to code.
And finally it did stabilise. Right before the modelling was complete.