Wer kennt das nicht – man will etwas installieren (z.B. ein Software-Paket unter Ubuntu) und es werden hunderte Abhängigkeiten hineingezogen.
Als DLL Hell bezeichnet verfolgt uns das Problem noch heute: Aufgeblähte JAR-Dateien bei Java, hunderte MB Download für Android-Apps oder das CRM Tine 2.0, bei dem man zwar ein Modul-System hat, aber aufgrund der Abhängigkeiten alle Module aktivieren musste. Damit war das Modul-System von Vornherein sinnlos.
Weiche Abhängigkeiten als Ausweg
Sinnvoller sind da Systeme, die flexibel auf die vorhandenen Module reagieren können. Ein Beispiel ist dabei unsere FOP-Produktreihe:
- Basis für unser CRM ist NUR die Kunden-Liste: Kunde mit seinen Eigenschaften Anschrift, Telefonnummern usw, sowie die Wiedervorlage-Funktion
- Aktiviert man das Telefonanlagen-Modul, lassen sich alle Telefonnummern anklicken. Man kann aber auch ohne das Modul Telefonnummern verwenden.
- Aktiviert man Rechnungen, sind diese mit Kunden verknüpft und beim Kunden werden alle Rechnungen aufgelistet. Sind Rechnungen nicht aktiviert, kann man das Feature „Kunden“ aber trotzdem nutzen.
Auf diese Weise werden Features viel weicher in die Software ein- und ausgeblendet. Pakete sind nicht mehr zwingend, sondern werden aktiviert, wenn man sie benötigt. Dadurch nehmen sie die Rolle von Features ein, die, wenn vorhanden, genutzt werden und andernfalls die Software trotzdem funktioniert.
Ganz praktisch ist bei uns daraus die Produktgruppe FOP entstanden – Feature Oriented Programming. Wir können sehr fein Software aus Einzel-Features zusammenstellen. Zusätzlich können wir Regeln festlegen, dass wenn zwei Features gleichzeitig aktiviert sind, ein drittes Feature aktiviert werden kann, das die ersten beiden Features verknüpft.
Ein Beispiel: Aktiviert man im CRM sowohl die Kunden-Liste als auch die E-Mail-Funktion, können zukünftig im E-Mail-Programm die Absender angeklickt werden und man sieht den dazugehörigen Kunden-Datensatz. Anders herum kann man auch aus dem Kunden-Datensatz heraus anfangen, eine E-Mail zu schreiben.
Comments are closed