Wie vermeiden Sie eine Branchageddon-Situation, wenn Sie mit großen Organisationen zusammenarbeiten?
Wir arbeiten mit einer Reihe großer Finanzunternehmen zusammen, deren Ansatz darin besteht, keine Software-Updates vorzunehmen, sondern nur hoch / kritische Sicherheitspatches und maßgeschneiderte Funktionen. Diese Organisationen nehmen nur Patches und benutzerdefinierte Versionen zwischen wichtigen Updates entgegen. Wichtige Updates können Jahre auseinander liegen und hohe Kosten verursachen. Dieser Ansatz führt dazu, dass wir (das Softwarehaus) eine Verzweigung unseres Codes pro Großkunde haben, die alle Kosten und Ineffizienzen einer langfristigen Verzweigung mit sich bringt.
Meine Fragen an die Community sind:
- Haben Sie ähnliche Ansätze zur Akzeptanz von Updates bei Ihren Kunden erlebt?
- Welche Vorschläge haben Sie, um mit diesem Ansatz zu arbeiten?
- Welche Vorschläge haben Sie, um die Herangehensweisen von Organisationen an Software-Updates zu ändern?
Antworten:
Bieten Sie, wie Michael erwähnte, eine Standardlösung an, die auf Release-Versionen / -Nummern basiert und eine für Ihre Branche relativ lange Lebensdauer hat (möglicherweise verschachtelt mit einer oder mehreren Zwischenversionen mit kürzerer Lebensdauer, wenn dies für Ihre typischen Kunden sinnvoll ist).
Geben Sie Ihren Kunden die Möglichkeit, sich auf diesen Standard-Release-Track einzulassen, möglicherweise mit einer angemessenen Migrationsfrist.
Wenn sie auf einer vollständig benutzerdefinierten Strategie für den Filial-Support bestehen, berechnen Sie diese einfach entsprechend, um alle zusätzlichen Kosten für das Angebot eines solchen benutzerdefinierten Supports ordnungsgemäß zu decken. Dies ist nur wirtschaftlich sinnvoll. Einige Kunden werden migrieren, um ihre Kosten zu senken (wodurch Sie die Anzahl der benutzerdefinierten Filialen reduzieren können), andere nicht.
Die variable Support-Abrechnung, die mit dem Alter der Release-Versionen, aus denen die benutzerdefinierten Filialen stammen, zunehmend zunimmt, kann auch ein Anreiz für Kunden sein, schneller auf neuere Filialen zu migrieren und die älteren benutzerdefinierten Filialen schneller zu schließen. Dies kann dazu beitragen, die Anzahl der benutzerdefinierten Filialen pro Kunde zu verringern - wenn Sie Kunden haben, die gleichzeitig mehrere Versionen Ihrer Software ausführen.
Stellen Sie sicher, dass Sie nicht in die Falle geraten, vollständige Verzweigungszusammenführungen von / zu einem der Release-Zweige (sowohl Standard- als auch benutzerdefinierte) durchzuführen. Alle Änderungen an diesen sollten entweder individuell entwickelt oder von Kirschen ausgewählt und zusammengeführt werden.
Da sich jeder dieser Zweige allmählich voneinander unterscheidet, nimmt die Anzahl der Hotfixes, die angepasst / individuell entwickelt werden müssen, exponentiell zu (das Zusammenführen von einfachen Kirschpickeln schlägt fehl). Sie müssen die Entwicklungskosten für diese berücksichtigen.
Wenn im Bild keine (signifikanten) Zweigzusammenführungen vorhanden sind, können (und sollten, ich kann ihre Bedeutung nicht genug betonen) vollautomatische CI / CD-Pipelines für diese Zweige erstellt werden, zusammen mit einem guten Hotfix-Tracking / Management-System, das die Hotfix-Bereitstellung ermöglicht nur Routine (oder fast).
quelle
Wenn Sie Filialen pro Version anstatt pro Kunde pflegen, kann dies möglicherweise dazu beitragen, die Anzahl der Filialen zu verringern?
Andernfalls besteht die einzige Möglichkeit, sich wirklich davon zu lösen, darin, die Software selbst zu hosten und zu einem SaaS-Modell zu wechseln, in dem Sie nur eine Version davon verwalten können.
quelle