Was bevorzugen Sie (aus der Sicht Ihres Entwicklers), wenn es um die Implementierung eines Geschäftsprozesses geht?
Ein Business Process Management System (BPMS) oder einfach nur Ihre Lieblings-IDE mit den erforderlichen Tools und Frameworks (zum Beispiel ein Reporting-Tool)?
Was ist aus Ihrer Sicht der größte Nutzen eines BPMS im Vergleich zu einer IDE mit Ihren persönlichen Tools und Frameworks?
OK. Vielleicht sollte ich konkreter sein ... Ich habe ein bestimmtes BPMS kennengelernt, das die Implementierung eines Geschäftsprozesses durch die Konfiguration von Regeln erleichtern soll. Aber für mich als Entwickler ist es schwer mit dem System zu arbeiten. Ich würde gern mit Textdateien arbeiten, die ich umgestalten kann, und ich würde gerne in der Lage sein, die richtige Technologie oder den richtigen Rahmen für meine Arbeit zu wählen. Stattdessen zwingt mich das System zu konfigurieren.
Es gibt Regeln, wo ich Java benutzen kann, aber selbst dann muss ich mich ohne IntelliSense usw. an den Systemeditor halten.
Das führt mich zur Antwort auf meine eigene Frage - ich möchte die Werkzeuge verwenden, die ich gewohnt bin, anstatt lernen zu müssen, mit einem BPMS zu arbeiten (zumindest dem, den ich kenne), weil es mich mehr einschränkt als es hilft. Das BPMS, das ich kenne, ist ein Framework, aus dem man nur schwer entkommen kann! Zu diesem Zeitpunkt würde ich ein Gerüst wie Gral gegenüber jedem BPMS bevorzugen, das ich kenne.
Vielleicht ist die spezifischere Frage: Haben Sie das gleiche Gefühl oder gibt es BPMS, die Sie als Entwickler unterstützen und wie ein Entwickler denken, oder zwingen die meisten Sie dazu, Ihre Arbeit anders zu machen?
Nicht sicher, was genau Sie fragen, aber die Wahl zwischen BPM und einfacher Programmierung hängt von den Anforderungen ab. Ein "Geschäftsprozess" ist im Software-Engineering ein relativ vager Begriff.
Hier sind ein paar Kriterien, um Ihre Bedürfnisse zu bewerten:
Abhängig von der Antwort auf diese Fragen, können Sie feststellen, dass Ihr Prozess näher an einem einfachen Status Chart mit a einige Aktionen und Entscheidungen, die in einer Sequenz ausgeführt werden können, oder Sie werden feststellen, dass Sie etwas ausgefeilteres brauchen und dass Sie das alles nicht selbst umsetzen wollen.
Zwischen einfacher Programmierung und einer vollständigen BPM-Lösung (z. B. Oracle BPM-Suite , die BPEL , Regelengine , usw.), gibt es Zwischenlösungen wie jBPM oder Windows Workflow Foundation und wahrscheinlich viele andere . Diese Zwischenlösung ist häufig ein guter Kompromiss.
Meiner Erfahrung nach sind die von BPMS-Systemen bereitgestellten Entwicklungsumgebungen von dritter Rate, unproduktiv und zwingen Sie praktisch dazu, schwer zu wartenden, schlecht entworfenen Code zu schreiben (aufgrund ihrer Einschränkungen). Fast alle "Features" (UI, Integrationen usw.), die von dem BPMS-System bereitgestellt werden, das mir vertraut ist (dasjenige, das von dieser Firma für ihre Datenbank verkauft wird), waren das Geld, das wir bezahlt haben, nicht wert.
Wenn Sie gezwungen sind, BPMS als Entwickler zu verwenden, wäre mein Ratschlag, so viel von Ihrer Anwendung in einer herkömmlichen Entwicklungsumgebung wie Java oder .Net zu bauen, so wenig wie möglich in der BPMS-Umgebung selbst zu bauen und integrieren Sie die beiden. Das einzige, was im BPMS enthalten sein sollte, ist das Minimum, damit der Geschäftsprozess funktioniert.
Ich habe in der Vergangenheit mit BizTalk und in jüngerer Zeit mit JBPM gearbeitet. Meine Meinung ist aus folgenden Gründen gegen BPMs voreingenommen:
Steile Lernkurve: Damit ein Prozess funktioniert, muss ich verstehen, wie das System und der Editor funktionieren. Es ist schwer genug für einen Entwickler, das System zu verstehen, geschweige denn einen Geschäftsbenutzer. Die Drag & Drop- und visuelle Darstellung ist ein großartiges Demo-Tool. Es beeindruckt sicherlich Manager (die letztlich dafür bezahlen), aber die Produktivität eines Entwicklers sinkt einfach.
Nicht-Entwickler, die den Workflow ändern: Ich habe noch nie eine BPM-Lösung fehlerfrei gesehen. Obwohl es nicht wie Code aussieht, klicken Sie mit der rechten Maustaste auf die Box und Sie müssen etwas Code eingeben, sonst wird es nicht funktionieren. Sie brauchen also unbedingt einen Entwickler. Der beste Teil ist, dass es weder Entwickler freundlich noch Business-benutzerfreundlich ist, nur Demo benutzerfreundlich.
Testability und Refactoring: Es ist praktisch unmöglich, ein BPMS zu testen. Sie haben "Unit Test Frameworks" angekündigt, aber die meisten von ihnen sind Hacks und schwer zu bedienen. Kürzlich habe ich den JBPM ausprobiert; Am Ende habe ich viel Klebecode und falsche Workflow-Handler geschrieben, damit es funktioniert. Der Deal Breaker für mich ist jedoch Refactoring. Wenn sich das Geschäft radikal ändert, ist es wichtig, wie ein Geschäftsprozess aussehen sollte, dann ordnen Sie die Kartons neu an, denn wenn Sie sie einfach neu anordnen, müssen alle Variablen, die an die Felder gebunden sind, neu angeordnet werden. Ich würde die Leistungsfähigkeit der IDE und Tests vorziehen, um meinen Geschäftsprozess neu zu gestalten.
Wenn Ihre Anwendung über einen Workflow verfügt, können Sie eine Workflow-Bibliothek (mit oder ohne persistenten Status) ausprobieren. Es wird immer noch Ihre Arbeitsabläufe verwalten, ohne mit dem BPM zu arbeiten. Wenn ein Geschäftsbenutzer den Code verstehen muss, lassen Sie das Unternehmen gute Prozessflussdiagramme vorbereiten und in guten domänenbasierten Code übersetzen. Verwenden Sie Gurken-Style-Abnahmetests, um Entwickler und Unternehmen zusammenzubringen. Ein BPM ist nur etwas, das versucht, zu viele Dinge zu tun und all diese Dinge schlecht zu machen.
BPMS - viele gängige Geschäftsfälle, Anwendungsfälle sind bereits implementiert. Sie müssen nur wissen, wie man es benutzt. Für den allgemeinen Arbeitsablauf müssen Sie nicht einmal eine einzige Codezeile schreiben, obwohl Sie meistens einige Skripts schreiben müssen, um Dinge abzudecken, die noch nicht implementiert sind.
Einfache Programmierung - benutzen Sie einfach die IDE, um den Code zu hacken. Die positive Seite: mehr Kontrolle. Das negative? Eine Menge Zeit wird für das Umschreiben von Textbausteinen verwendet. Und Sie müssen sie aufrechterhalten.
Kurz gesagt, würde ich ein Business Process Management System bevorzugen. Eine, die ich empfehlen würde, ist ProcessMaker . Es verfügt über einen intuitiven Prozessdesigner, mit dem Sie den Arbeitsablauf per Drag & Drop gestalten können. Und Sie können immer Trigger schreiben, um die Prozessfunktionalitäten zu erweitern. Es ist auch Open Source.