This is more an architecture related question than a programming one, but I think it might be useful to developers given that I have been wondering this myself for some time.
I have no experience with Business Process Management tools use or implementation. (The closest thing I have used is BizTalk server, but I know that it is not really a full BPM product, but a document based integration platform with some process orchestration features).
Recently, several of our clients have been asking for BPM-based development projects, and most of the time I discover that some BPM vendor has been giving them some of those 'look how amazing is my product' demos, where they show 'how easily' you can modify your business process flow just by 'dragging and dropping' shapes around and those kind of things.
Obviously, vendors don't say anything about how you first need to have running your well designed processes on the BPM so you can actually make that kind of magic happen.
My clients suddenly see a new light thinking that BPM technology will finally fix the typical problems common to almost any IT department: applications that are hard to maintain, missing deadlines when implementing changes to support new business needs, etc.
None of them have finished implementing BPM, so I have no a real world reference to know what is such think like.
I honestly believe that many of those problems only should need solutions based on development process improvement, better analysis of future needs and better project management skills. Heck, even better programmers and designers.
So, my question is:
What should an organization have in place before trying to implement a BPM platform in order to succeed?
EDIT: Is really SOA what enables a BPM strategy to succeed?