Branchenspezifische Anpassungen - Viele kleine Plugins oder ein/zwei Große erstellen?

Ich stehe immer wieder vor der gleichen Frage, wenn ich neue Branchen/Geschäftsspezifische Features/Anpassungen in unseren Shops machen muss. Packe ich das Feature nun in eins der bestehenden Plugins oder mach ich ein neues Plugin welches nur das Feature behandelt? Mich interessiert bei dieser Diskussion was Ihr so für Vorteile/Nachteile der jeweiligen Methoden seht. Meine Vor-/Nachteile

“Ein-Plugin”

Meine Vorteile:

Eine Git Repo,
Leichteres Testen, da Seiteneffekte eventuell früher auffallen
Weniger Probleme mit Pluginpriorisierung/Templateüberschreibungen
Bei Updates der Shopsoftware müssen die Änderungen “nur” bei einem Plugin gemacht werden

Meine Nachteile:

Updaten/Reinstall führt manchmal zu Probleme, vor Allem wenn eigene Emotion Widgets im Spiel sind
Trotz Subscriber, Service, DIC etc. kann es schnell unübersichtlich werden
Das Backend Plugin-Config-Formular wird langsam etwas lang :slight_smile:
 

“Single Purpose Plugins”

Meine Vorteile:

Single Purpose, Features können leichter separat aktiviert/deaktiviert werden
Ich finde, ich arbeite bei kleinen Plugins sauberer, da ich mehr auf Kompatibilität mit den anderen Plugins achte
Jemand Fremdes kann leichter mit einer kleinen Codebase arbeiten und daran Entwickeln als mit einem großen Monster
Ich fühle mich beim Updaten sicherer, da wenn etwas nicht klappt ich das Plugin deaktivieren kann und dadurch nur ein Feature verliere, nicht alle

Meine Nachteile:

Redundanter Boiler Code
Testen artet manchmal in raten aus, in Kombination mit anderen Plugins
Manchmal etwas schwierig zu entscheiden, welches Feature/Update nun in welches Plugin soll, vor allem wenn sich die Domänen überschneiden.
Größeren Shop Updates (Beispiel 5.1, 5.2 neues Pluginsystem) sind etwas nervig :slight_smile:
Dependencies zwischen den Plugins zicken manchmal, selbst mit DIC/Services

Ich würde es davon abhängig machen, wie die Plugin-Features thematisch zusammenhängen oder wie oft mehrere/alle Features gleichzeitig benötigt werden.

Bei separaten Plugins hast Du bzw. der genutzte Shop den Vorteil, dass eben auch nur das installiert wird, was benötigt wird.
Möglicher unrelevanter Code, Fehler, potentielle Sicherheitslücken etc. werden so erst gar nicht installiert.

Sind mehrere Features aber stark voneinander abhängig bzw. thematisch zusammgehörig, würde es sich aus meiner Sicht anbieten, diese in einem Plugin zusammenzufassen.
Dann muss man sich keine Gedanken darüber machen, ob man jetzt alle Plugins installiert hat, die man braucht.