> Software developers should provide expertise [...], but also in the externalization of mental models to facilitate communication and enable collaborative modelling.
> Software development is largely a communication problem. [...] We should contribute to better concepts and a richer language to describe the domain.
A while back I understood my work as a web developer as a translation from "business speak" into the language of some web framework. An activity not so different from translating a novel from it's original language into some other.
The key point being that one needs to fully understand the "business speak" side of things before one can write it out as computer code.
> We should lead in this effort, not wait for someone else to do it for us.
But neither can we, software developers, do this on our own.
I guess something I had been missing before is the feedback aspect (i.e. the externalization of mental models). However, in my experience most people in the 'business side' aren't interested in understanding the software side, so they are not receptive of what the software engineers have to say about the problem domain (i.e. the business side of things).