In most software topics, the boundary between theory and practice in software is clearly drawn: theory is for academics who seldom descend from the ivory tower, and practice is for industry professionals who have long forgotten the concepts and application of theory. In concurrency, for example, most developers either know or have programmed semaphores, but few remember the conceptual underpinnings devised by Dijkstra.
But BPM belongs to a rarer category, in which theory informs practical design and theoretical jargon is part of the hype with customers. Somehow the abstruse terms "pi-calculus" and "Petri net"—as impressive to the ear as database management's "relational calculus" or capacity planning's "Erlang formulae"—have permeated the consciousness of the BPM community. Many BPM onlookers are familiar with and interested in pi and Petri, but have at best a vague understanding of them, and prefer an executive summary or beginner's treatment; the pedantic details are best left to graduate students.
Process theory is practically important for several reasons:
It is mentioned frequently in connection with BPM, even in nonacademic material. Countless presentations, for example, state without explanation that BPEL is influenced by the pi-calculus and Petri nets. For the many practitioners who are intimidated by the pedantic name-dropping but are curious to uncover its meaning (asking questions such as: What is the pi-calculus ? What ...