Wie balancieren Sie die widerstreitenden Bedürfnisse der Abwärtskompatibilität und Innovation?

StackOverflow https://stackoverflow.com/questions/160968

Frage

I arbeiten auf eine Anwendung, die eine sowohl eine GUI (grafische) und API (scripting) Schnittstelle hat. Unser Produkt hat eine sehr große installierte Basis. Viele Kunden haben viel Zeit und Mühe in das Schreiben Skripte investiert, die unser Produkt benutzen.

In allen unsere Entwürfe und Umsetzung, wir (verständlicherweise) haben eine sehr strenge Anforderung 100% Abwärtskompatibilität zu erhalten . Ein Skript, das vor lief muss weiterhin auf genau die gleiche Art und Weise, ohne jede Änderung laufen, wenn wir eine neue Software-Version einzuführen.

Leider ist diese Anforderung manchmal bindet uns die Hände hinter unserem Rücken, wie es wirklich unsere Fähigkeit, schränkt innovate und kommen mit neuen und besseren Möglichkeiten, Dinge zu tun.

Zum Beispiel könnten wir mit einem besseren kommen (und mehr nutzbar) Weg, um eine Aufgabe zu erreichen, die bereits möglich ist. Es wäre wünschenswert, diese bessere Art des Standard-Weg zu machen, aber wir können dies nicht tun, wie es die Abwärtskompatibilität Auswirkungen haben kann. So sind wir mit dem Verlassen die neue (besser) Art und Weise als Modus fest, dass der Benutzer muss „einschalten“, bevor er sie verfügbar wird. Es sei denn, sie in der Dokumentation oder Online-Hilfe lesen (was viele Kunden nicht tun), wird diese neue Funktionalität für immer verborgen bleiben.

Ich weiß, dass Windows Vista eine Menge Leute verärgert, wenn es zuerst alles wegen der Software und Peripheriegeräte herauskommt, die nicht auf es funktioniert, auch wenn sie auf XP gearbeitet. Sie erhielt einen ziemlich schlechten Empfang, weil dieser. Aber man kann sehen, dass Microsoft auch bei der Herstellung einige große Neuerungen in Vista, für viele Anwender auf Kosten der Abwärtskompatibilität gelungen. Sie sind ein Risiko eingegangen. Hat es tilgen? Haben sie die richtige Entscheidung? Ich denke, nur die Zeit zeigen.

Finden Sie sich die widerstreitenden Bedürfnisse von Innovation und Abwärtskompatibilität Balancing? Wie gehen Sie mit dem Balanceakt?

War es hilfreich?

Lösung

Was ist meine Programmiererfahrung angeht, wenn ich werde fundementally etwas ändern, die Vergangenheit eingehende Daten verhindern wird richtig verwendet werden, ich brauche eine Abstraktionsschicht für die alten Daten zu schaffen, wo sie für die Verwendung umgewandelt werden können im neuen Format.

Im Grunde habe ich die „verbesserte“ Art und Weise als Standard und stellen Sie sicher durch einen Konverter kann es Daten von dem alten Format lesen, aber speichern oder speichern Daten wie das neue Format.

Ich denke, die große Sache hier ist, Test, Test, Test. Rückwärtskompatibilität nicht vorwärts Fortschritt behindern soll.

Das ist nur meine 2c

Andere Tipps

Split Entwicklung in zwei Zweige, eine, die Abwärtskompatibilität und einem für einen neuen Major Release hält, wo Sie machen deutlich, dass die Abwärtskompatibilität gebrochen wird.

Die kritische Frage, die Sie stellen müssen, ist, ob die Kunden / wollen, müssen diese „Verbesserung“, auch wenn Sie es als eine Ihrer Kunden wahrnehmen, vielleicht nicht. Sobald eine bestimmte Art und Weise, Dinge zu tun hat festgestellt wurde, ist die Workflow-Wechsel ein sehr „teuer“ Betrieb. Je nach Computer savyness der Benutzer kann es einige lange dauern, bis die Änderung in der Benutzeroberfläche anzupassen.

Wenn Sie mit Kunden Innovation beschäftigen die Innovation als solche ist nicht immer eine gute Sache, so viel Spaß wie es sein könnte für Sie, diese Verbesserungen zu entwickeln.

Sie immer nach innovativen Wegen suchen, könnten die Kompatibilität halten rückwärts.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top