Frage

Was bevorzugen Sie (von Ihrem Entwickler-Sicht), wenn es kommt, einen Geschäftsprozess zu implementieren?

Ein Business Process Management System (BPMS) oder einfach nur Ihre Lieblings-IDE mit den benötigten Tools und Frameworks (ein Reporting-Tool zum Beispiel)?

Was ist aus Ihrer Sicht die größte Vorteil eines BPMS im Vergleich zu einer IDE mit Ihren persönlichen Tools und Frameworks?

OK. Vielleicht sollte ich das konkretisieren ... Ich habe eine bestimmte BPMS wissen, was es leicht machen sollte durch die Konfiguration Regeln einen Geschäftsprozess zu implementieren. Aber für mich als Entwickler ist es schwierig, mit dem System zu arbeiten. Ich möchte mit Textdateien arbeiten, die ich Refactoring kann, und ich möchte in der Lage sein, die richtige Technologie oder Rahmen für die Arbeit, die ich zu tun haben, zu wählen. Stattdessen zwingt mich das System zu konfigurieren.

Es gibt Regeln, wo ich Java verwenden können, aber selbst dann muss ich Stick an den Editor-Systeme ohne intellisense etc.

So Dies führt mich auf die Antwort meiner Frage - Ich möchte die Werkzeuge verwenden, ich bin es gewohnt, anstatt dass mit einem BPMS zur Arbeit lernen, wie man (zumindest die, die ich kenne), weil es begrenzt mir mehr als es hilft. Das BPMS ich weiß, ist ein Rahmen, aus dem es schwer zu entkommen ist! Zu diesem Zeitpunkt würde ich einen Rahmen wie Gral über jeden BPMS Ich weiß es vorziehen.

Also vielleicht die speziellere Frage: Fühlen Sie sich gleich oder gibt es BPMSes, die Sie unterstützen einen Entwickler in beeing und denken wie ein Entwickler oder tun die meisten von ihnen zwingen Sie Ihren Job eine andere Art und Weise zu tun?

War es hilfreich?

Lösung

Nicht sicher, was genau Sie fragen, aber die Wahl BPM vs. Ebene Programmierung wird von den Anforderungen ab. Ein „Geschäftsprozess“ ist ein relativ vagen Begriff in der Softwareentwicklung.

Hier sind ein paar Kriterium Ihre Bedürfnisse zu bewerten:

  • Komplexität der Regeln - Sind die Entscheidungen / Regeln verkörperte in Ihrem Prozess einfach, kompliziert, konfigurierbar, hartcodierte
  • Volatilität des Prozesses - Wie oft hat Ihr Prozess ändern? Wer sollte in der Lage, um die Änderung zu machen?
  • Integration Notwendigkeit - Ist Ihr Prozess mehrere heterogene Dienste realisiert werden, oder alle in derselben Sprache implementiert ist
  • synchron / asynchrounous - Ist Ihr Prozess "lang andauernde" mit der Notwendigkeit asynchrone Aktionen zu behandeln
  • menschliche Aufgaben - Gibt es in Ihrem Prozess menschliche Interaktion beinhaltet, mit Aufgabe zugewiesen wird / geroutet Menschen nach ihren Rollen / Verantwortlichkeiten
  • ?
  • der Prozessüberwachung - Was ist das Niveau der Kontrolle, die Sie auf den vorhandenen Prozessinstanzen wollen ausgeführt werden? Müssen Sie die Aktionen prüfen, usw.?
  • Fehlerbehandlung - Abhängig von den vorherigen Punkten, wie planen Sie mit Fehlern umgehen, oder Wiederholungsfehlerhafter Prozessausführung

Je nach Antwort auf diese Fragen, können Sie erkennen, dass Ihr Prozess ist näher an einem einfachen Zustand Grafik mit ein paar Aktionen und Entscheidungen, die in einer Sequenz ausgeführt werden kann, oder Sie können feststellen, dass Sie etwas ausgefeilteren benötigen, und dass Sie nicht wollen neu implementieren alles selbst.

Zwischen Ebene Programmierung und Voll fledge BPM-Lösung (zB Oracle BPM Suite welche enthält BPEL , Regel-Engine , etc.), gibt es Zwischenlösungen wie < a href = "http://www.jboss.com/products/jbpm/" rel = "noreferrer"> jBPM oder Windows Workflow Foundation und wahrscheinlich viele andere. Diese Zwischenlösung ist häufig guter Trade-off.

Andere Tipps

Nach meiner Erfahrung die Entwicklungsumgebungen von BPMS-Systeme sind vorgesehen drittklassigen, unproduktiv und praktisch Sie zwingen, schwer zu schreiben zu halten, schlecht Code entworfen (wegen ihrer Einschränkungen). Fast alle „Features“ (UI, Integrationen, etc.) zur Verfügung gestellt von der BPMS-System Ich bin vertraut mit (dem von dieser Gesellschaft verkauft benannt für seine Datenbank) waren nicht das Geld wert, den wir bezahlt haben.

Wenn Sie gezwungen sind, BPMS zu verwenden, als Entwickler, mein Rat wäre, so viel von Ihrer Anwendung in einer herkömmlichen Entwicklungsumgebung, wie Java oder .Net, baut so wenig wie möglich in der BPMS-Umgebung zu bauen selbst und die beiden miteinander integrieren. Die einzigen Dinge, die in der BPMS ist das Minimum, um den Geschäftsprozess zu arbeiten.

gehen sollten

Ich habe mit Biztalk in der Vergangenheit zusammengearbeitet und in jüngerer Zeit mit JBPM. Meine Meinung nach ist voreingenommen gegen BPMs aus den folgenden Gründen:

  1. Steile Lernkurve: Um einen Prozess funktioniert, muss ich verstehen, wie das System und der Editor funktioniert. Es ist schwer genug für einen Entwickler des System zu verstehen, geschweige denn ein Unternehmen zur Verfügung. Die Drag & Drop und visuelle Darstellung ist eine große Demo-Tool. Es besticht sicherlich Manager (die letztlich dafür bezahlen), aber ein Entwickler-Produktivität sinkt nur.

  2. Nicht-Entwickler Ändern den Workflow: Ich habe nicht eine BPM-Lösung tut es gesehen einwandfrei. Obwohl es nicht wie Code aussehen wird, klicken Sie rechts auf die Box und Sie müssen einen Code setzen, sonst wird es nicht funktionieren. So dass Sie auf jeden Fall einen Entwickler brauchen, es zu tun. Der beste Teil ist, dass es weder Entwickler freundlich noch Unternehmen benutzerfreundlich, einfach Demo benutzerfreundlich.

  3. Testablity und Refactoring: Es ist praktisch unmöglich, Test BPMS fahren. Sie tun ‚Unit-Test-Frameworks‘ haben beworben, aber die meisten von ihnen sind Hacks und schwer zu bedienen. Vor kurzem habe ich versucht, die JBPM ein; Ich landete eine Menge Leim Code zu schreiben und gefälschte Workflow-Handler es Arbeit zu machen. Der Deal Breaker für mich aber ist Refactoring. Wenn das Geschäft radikal seinen Geist über Änderungen, wie ein Geschäftsprozess aussehen sollte, dann viel Glück die Kisten neu zu ordnen, weil gerade neu zu ordnen, sie wird nicht funktionieren, werden alle an den Boxen gebunden Variablen auch neu arrangiert sein müssen. Ich würde die Macht des IDE und Tests lieber meinen Geschäftsprozess Refactoring.

Wenn Ihre Anwendung Workflow hat, dann könnten Sie eine Workflow-Bibliothek versuchen (mit oder ohne persistenten Zustand). Es wird nach wie vor Ihre Workflows ohne alle aufblasen verwalten, die mit einem BPM kommt. Wenn ein Business-Anwender, den Code verstehen muss, dann lassen Sie das Geschäft gute Prozessablaufpläne vorzubereiten und sie in guten Domain getrieben Code übersetzen. Verwenden Gurke Stil Abnahmen machen zusammen die Entwickler und Unternehmen bringen. Ein BPM ist nur etwas, das versucht, zu viele Dinge und Ende zu tun schlecht all diese Dinge zu tun.

BPMS-- viele gemeinsamen Geschäft Fall wird Anwendungsfall bereits umgesetzt. So dass Sie nur wissen, wie es zu benutzen. Für gemeinsamen Workflow, brauchen Sie nicht einmal eine einzige Zeile Code zu schreiben, wenn auch meist würden Sie einige Skripte Abdeckung Dinge schreiben müssen, die noch nicht umgesetzt werden.

Plain programming-- nur die IDE verwenden, um den Code zu hacken aus. Die positive Seite: mehr Kontrolle. Das negative? Eine Menge Zeit auf Umschreiben Standardcode ausgegeben. Und Sie haben sie zu halten.

Also kurz gesagt, würde ich einen Business Process Management System bevorzugen. Einer, ich würde empfehlen Process . Es verfügt über einen intuitiven Prozessdesigner, die Sie mit Drag & Drop Design-Workflow ermöglicht. Und Sie können immer schreiben Trigger den Prozess Funktionalitäten zu erweitern. Es ist Open-Source-als auch.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top