I stumbled across this very interesting article named “BPM is not Software Engineering” by Keith Swenson, which I very much recommend for reading. It makes the point that while Business Process Management looks a lot like Software Engineering, it differs from SE in a fundamental way, that is who is supposed to be using it. Software Engineering is done by engineers, people whose job is to create technology, while BPM is done by “business people”, that is people who use technology to achieve their business goals.
This is best described by a comparison with spreadsheet applications. I quote:
A programmer from 1980 might have just as easily declared: “There is no way that business person will ever write a program to produce a table of calculated numbers for a report”. But then the spreadsheet was invented which allows the business person to do just that. What you should notice that a spreadsheet represents things in a way that is useful and meaningful to the business person. It does not involve a compiler that outputs the “program” in a different form, for later execution on demand. Internally, the formulae (in most spreadsheet products) are being parsed and converted to an internal pseudocode which is then interpreted. But this is all completely hidden from the user. The business user enters a fomula, and sees the result. A programmer might product a cool new function, which gets integrated into the spreadsheet, and can be called as part of a formula, but the designing and implementation of that extension is not confused with the creation of the spreadsheet itself. Creating the spreadsheet can be done by a business person. Creating the extension module is done by a programmer using Software Engineering techniques.
In the context of things such as spreadsheets, word processors, ie tools, the split between those that use technology and those that develop technology is apparent. The confusion arises when the tool, or the technological object, has become abstract enough, as is the case with Business Processes. In such a context, the distinction must be spelled out clearly, and the sooner it is understood, the better (note however that these days everyone is more or less a prosumer).
I am a mere initiate to the field, but I think that this dialectics shares a lot with the discussion about Domain Specific Languages (in fact, it could be exactly the same discussion). And I think that this is exactly the real value of further exploring (meta)modeling, because (meta)models effectively describe such Domain Specific Languages and therefore (meta)modeling encompasses both the Software Engineering as well as the “business” (may that be actual BPM, spreadsheets, engineering or SE itself) aspect of production.
Or I may just be completely confused. 🙂