Zurück zum Blog

Das Produktentwicklungsdilemma

📅  

In dieser Woche wurde an mehreren, sehr unterschiedlichen Bereichen gearbeitet, wir beginnen daher zur Abwechslung mit dem Vermischten.

Vermischtes

Die Kategorienansicht mit den erwähnten Menüs und Komponenten


Kategorienansicht


Ausblick: Produktentwicklung

Das aktuell schwierigste Thema liegt im Bereich Strategie der Produktentwicklung. Zunächst: Unter Produkt verstehen wir in unserem Zusammenhang eine Software, die es in einer bestimmten Standardausprägung gibt. In dieser Ausprägung kann sie gemäß einer Anleitung installiert werden und verhält sich dann genauso wie in der Dokumentation beschrieben.

Um das Thema Installation nehmen wir uns erstmals nächste Woche an, durch die Anzahl der eingesetzten Komponenten ist sie derzeit nicht einfach durchführbar.

Ein weiterer Aspekt steckt im Widerspruch zwischen Generalisierung und Spezialisierung. Viele Aspekte eines Webshops sind nun in der Software in einer grundlegenden Art und Weise vorweggenommen. Bei jeder Anforderungsänderung durch einen der Referenzkunden stehen wir vor einer Entscheidung: Eine Option ist es, die Anforderung für alle Kunden zu übernehmen, eine weitere eine Option zu schaffen, die Anforderung irgendwie nur für diesen Kunden zu übernehmen, eine dritte - bisher noch nie zur Anwendung gekommene - die Anforderung abzulehnen.

Das Übernehmen für den einzelnen Kunden kann wieder auf mehrere Arten passieren. Einerseits kann es sich um einen einfachen Schalter handeln, mit dem eine Option ein- und ausgeschaltet werden kann, oder einen Parameter, mit dem ein gewisser Wert festgelegt werden kann. Eventuell kann eine Komponente entwickelt werden, die zwar mit allen Installationen ausgeliefert wird, aber nur in dieser einen Installation zur Anwendung kommt. Oder wir müssen ein getrenntes Modul in Form eines Gems entwickeln, das pro Installation optional installiert werden kann. Zur Zeit haben wir 7 derartige Module entwickelt, und es werden wohl noch einige hinzukommen. Dabei wird es sich weniger um neue Funktionen handeln. Eher werden bestehende Funktionen aus der Applikation in Gems herausgezogen. Um diese Refaktorierungen durchführen zu können, werden wir allerdings unsere Testabdeckung erhöhen müssen und neben den bislang fast ausschließlich getesteten Modellen und ihren Methoden auch die Controller mit deren Methoden testen.

Stets ist aber die Frage zu stellen, ob sich der Aufwand lohnt, bzw. ob die Modularisierung überhaupt nötig ist, da eventuell zunächst getroffene Annahmen falsch sind. Es kann auch einfacher sein, kleine Komponenten in mehreren Varianten zu implementieren und auch in Folge zu warten, als eine große, hoch konfigurierbare Komponente.

Zurück zum Blog