Seite mehreren Jahren entwickle ich selbst Business Anwendungen für kleine, mittlere und große Unternehmen und Organisationen. Eigentlich sollte ich eine Menge darüber gelernt haben was Kunden benötigen. Aber wie die meisten Softwareentwickler bin auch ich jedesmal aufs neue überrascht wen sich die Anforderungen währende des Projektverlaufs ständig ändern. Du startest ein neues Softwareprojekt und wen du dich endlich dem Ende näherst haben deine Kunden neue Ideen. Warum ist das so?
Kunden ändern ihre Anforderungen – und Du musst reagieren – andernfalls wird Deine Software nie zum Einsatz kommen. Aber warum ändern Kunden ihre Anforderungen? Ich denke nicht, dass sie nicht wissen was sie benötigen. Es sind deren Kunden welche Änderungen an das Geschäftsmodell auslösen. Und diese Kunden wiederum ändern ihre Anforderungen weil sich die Dinge in ihrem Umfeld ändern – das ist nun mal der Lauf der Dinge.
Und darum implementieren wir Konfigurationsschichten in unsere Software. Wir wissen, dass unsere Kunden ihre Anforderungen ändern werden. Und deshalb versuchen wird Software so zu entwickeln, dass wir die Möglichkeit haben auf Änderungen zu reagieren. In fast allen Bereichen der modernen Softwareachitektur finden wir unzählige Frameworks und Konzepte um genau diesen – sich ständig ändernden Bedingungen zu begegnen.
Aber wen wir über Business Anwendungen sprechen gibt es da eine Reihe an Funktionalitäten die sich immer wieder ähneln – unabhängig von den sich ändernden Anforderungen.
- Formulareingaben müssen in einer Datenbank gespeichert werden ,
- Anwender müssen informiert werden wen Daten gespeichert oder geändert werden,
- Daten müssen anhand von Geschäftsprozessen unterschieden und kategorisiert werden,
- Änderungen müssen protokolliert werden,
- und Geschäftsprozesse müssen überwacht werden.
Diese Art von Funktionalitäten werden durch sogenannte Business Process Management (BPM) und Workflow Frameworks abgebildet. Die Idee hinter einer BPM oder Workflowlösung ist es, das Verhalten einer Business Anwendung zu verändern ohne dazu gleich die ganze Software neu implementieren zu müssen. Meist wird anhand eines Modells der Geschäftsprozess beschrieben und so im System konfigurierbar gehalten. Aber nicht jede Form von Konfigurierbarkeit macht eine Software automatisch besser. Wird alles und jedes über eine eigene Konfigurationsschicht realisiert, kann ein Softwaresystem träge langsam und unnötig komplex werden. Du solltest genau so viele Funktionen konfigurierbar halten, wie nötig sind, um auf Änderungen im Geschäftsprozess reagieren zu können. Aber Du solltes auch so wenig wie möglich die Komplexität von Software mit unnötigen Konfigurationen erhöhen. Es ist ein Balanceakt zwischen Flexibilität von Software und effizienter Softwareentwicklung.
Nicht jede BPM Lösung erfüllt also die Anforderungen an jede Art von Geschäftsanwendung. Genau sowenig wie jeder Web Framework die Anforderungen für jede Web Anwendung erfüllt. Bei der Arbeit an unserem Open Source Projekt Imixs Workflow stellen wir diesen Gedanken möglichst in den Vordergrund. Wir sind schließlich Softwareentwickler! Und wir mögen keine Begrenzungen durch unnötige Frameworks. Wir suchen nach Wegen um coole Software zu schreiben. Das heißt wir lieben es, mit neuen coolen Frameworks zu arbeiten aber wir wollen uns auch nicht in einen Käfig aus Vorgaben sperren lassen die auf der Basis von ‚politischen‘ Entscheidungen getroffen wurden.
Das Imixs Workflow Projekt versucht einen Lösungsansatz zu liefern um auf Änderungen flexibel reagieren zu können. Und es bleibt Dir selbst überlassen Deine Software so zu bauen wie es Dir Spaß macht.
Imixs Workflow …the open source workflow technology for business applications