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.
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.
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.