Pseudomodels and intent

Wow – easily the most techy blog title I’ve ever had…
Harry has an interesting concept of pseudomodel in his reply to my earlier post on imprecise models.
I like the term too actually, but I’m not so sure about his description of process.
He says

I don’t think of writing code as “progressing gradually towards precision” and I doubt anyone else does either. And while I do see development as an “iterative process”, I don’t think of it as “iterative refinement”. Modeling shouldn’t be any different.

I think modelling will continue to be different to traditional coding because of the constituencies that will become involved by the raising of abstractions.
Until we get models that are perfectly aligned with our business domains, we’ll have people who want to create models but who get them slightly wrong from a precision point of view – usually in the places where the imperfect models interact with other aspects of the system across or down the abstraction stack.
With code, you’d likely not want to have people check in sources that don’t even compile and then hand them off to other folks who do make them compile, but I think that’s exactly the type of process we’ll see emerging in modelling for a while.  I feel this way because I don’t foresee us getting modelling languages of pure business intent 100% right for some time yet – we’re simply not close enough to formal enough descriptions of systems as intensely human as a business yet.  However, I hope we won’t want to try and keep modelling as locked away with the techies as traditional development has been. (Hope I’m not talking myself out of a job here…)
So when you think about modelling as coding then I think we’ll see a good deal of “progressing gradually from models with less precision to models with more precision” – to misquote – which looks like a really different process to programming in a traditional language.
I think people’s experience of which parts of that process are painful will then drive the evolution, refinement and concern separation of the languages in question.
Comments (2)

  1. Steven Kelly says:

    "progressing gradually from models with less precision to models with more precision"

    That can be read two ways because of all those plurals, so let’s cut it down to one model at the start and see what it could mean. Either (1) there’s one model, which is less precise to start with but gets worked on until it is more precise, or (2) there is initially one model, then we build another model, maybe in a different modeling language, by some mixture of automatic transformation of the first and building a completely new model by hand.

    I like the sound of the first far more as a process for development: there’s one clear versionable component, and each fact is represented once, all at the same level of abstraction. The second sounds more like OMG’s MDA, whose transformations end up duplicating the same facts in more than one place (PIM and PSM, for instance). Keeping that lot in synch simply isn’t going to happen, and even if it did, why would we want to have everything said twice (stated dually). If we did that (were we to choose such a way) we would quickly find (in short order it would become apparent) that actually this was a bad idea (and I guess you got the picture!). 🙂

    More in my blog entry:


  2. There aren’t really seven, but it makes for a good title (look up "seven stages shakespeare" if you’re…