It doesn’t seem to be a consensus in the community regarding the meaning of the words programmer/coder and developer. Recently, Dave Winner posted this picture on why coding is the wrong word:
I agree with this message, especially in the sense that it says there is more to developing than typing code. This aligns very well with our vision of the key role of modeling activities in the development process: people like me model the domain of the software to be built and then use model-driven development techniques to generate (most of ) the code needed to run that software (of course you could also directly interpret the models but that’s another discussion). So I don’t write myself directly a lot of code but this I still consider myself a developer, even if “of a different kind”.
The intersection between both roles (Model-driven engineers and programmers) is not empty because of at least two important reasons:
- It’s not always easy to decide where to draw the line between modeling and programming (which is not a bad thing IMHO), especially when using textual modeling tools . Low-level/detailed modeling (e.g. Executable UML ) and high-level programming clearly overlap (and the model oriented programming language UMPLE is a great example of this)
- With exceptions, MDD requires some manual coding to complete/adapt the generated code so model-driven engineers still need to adopt a programming role at some point. Again, this is not necessarily a bad thing. I have argued before that you should use the right amount of modeling for each project.