Frage

Wenn Sie vertraut mit der Phrase „man bauen wegzuwerfen“, na ja, scheinen wir das getan zu haben; wir an die Grenzen der Version 1 unseres Online-App. Es ist Zeit, die Dinge zu bereinigen, durch:

  • Re-Organisation von Code und UI
  • Unifying UI Prozesse
  • mehr Funktionalität Hinzufügen
  • Bauen für die Zukunft
  • Sie unsere Datenbankstruktur ändern alle oben
  • zu handhaben

Was ist der beste Weg, diesen Übergang zu machen passieren?

Wir wollen vermeiden, alle unsere Nutzer auf ein neues System zu werfen (sobald es fertig ist) ... sie würde ausflippen und wir konnten den Anruf Last nicht verarbeiten. Unsere Benutzer Der Bogen spannt sich von technisch versierten verwendet-to-Write-Software-Typen, zu denen, die nicht wissen, was HTML ist.

Wenn wir eine neue „Installation“ unseres Systems und bewegen Benutzer über ihm beginnen allmählich, nachdem wir dieses neue Design gewährleisten löst ausreichend genug, um die Probleme mit der Version 1?

Sollten wir (irgendwie) jedes Modul unseres Systems schrittweise ändern, und Phase? Dies kann schwierig sein, da das Datenbank-Layout ändern wird, was mit dem „Kern-Code“ und den Code für mehr umliegenden Module zwicken.

Ist es üblich, eine Reihe von vertrauenswürdigen, Patienten zu haben, „Beta-Tester“ Kunden einer Schneide Version einer App? (Das Ziel wäre Feedback und Test auf einem neuen System für Bugs zu bekommen)

Jede andere Beratung? Erfahrungen aus erster Hand?

War es hilfreich?

Lösung

Die Antwort, fürchte ich, ist es abhängig ist. Es hängt von der Art der Anwendung und die Art des Benutzers, die Sie haben. Ohne zu wissen, was das System ist und der Umfang der Änderungen in der Version, ist es schwierig, eine Antwort zu bieten.

Das heißt, es gibt einige Faustregeln.

Zum einen vermeiden den großen Knall zu starten. Jede Einführung eines Systems wird Probleme haben. Die Branche ist mit Projekten übersät, wo die Menschen gedacht, der Bang-Bang-Start war eine gute Idee, nur für Kinderkrankheiten, die Einführung in die Knie zu bringen. Cuil war eine kürzliche hochkarätige Kausalität des Big-Bang-Starts.

Um die Kinderkrankheiten handhabbar zu machen, müssen Sie zunächst mit einer kleinen Anzahl von Benutzern arbeiten, dann langsam die Anzahl der Benutzer Ratsche.

Zweitens ist die Sache, die Sie müssen absolut positiv tun müssen, ist den Benutzer zuerst setzen . Der Benutzer sollte die geringste Menge an Arbeit möglich verwenden V2 des Systems zu tun hat. Die ideale Menge an Arbeit wäre Null.

Das bedeutet, dass, wenn Sie langsam Benutzer auf die andere von einem System wählen migrieren, Sie sind verantwortlich für sicherstellen, dass alle Daten und Einstellungen migriert werden. Zum Beispiel tut nichts Dummes wie erklärt den Benutzer, sie V1 für alle Datensätze vor 12.09.2008 und V2 für alle Datensätze verwenden müssen nach.

Der Punkt der Freigabe V2 sollte die Nutzer wird das Leben leichter macht, nicht macht es unnötig erschwert.

Drittens hat ein Beta-Programm. Dies gilt auch für Intranet-Anwendungen. Die Entwicklung einer Anwendung ist ähnlich wie Newton-Raphson-Methode für die Wurzel eines Polynoms zu finden. Sie machen eine Vermutung, was der Nutzer will, können Sie es an den Benutzer liefern, der Benutzer eine Rückmeldung und langsam aber sicher jede Iteration bringt Sie näher an der Lösung des Problems.

Eine Beta-Programm wird Ihnen helfen, die Wurzel zu finden viel schneller als nur neue Versionen aufzwingen auf Menschen ohne Zeit für sie zu den Änderungen Stellung zu nehmen. Betas helfen, die Benutzer an Bord früher und ihnen das Gefühl in den Prozess einbezogen; deren Bedeutung ich nicht genug betonen kann.

Andere Tipps

Wir Plopp gerade ein brandneues CRM-System auf unseren Benutzern, und lassen Sie mich Ihnen sagen, es eine schreckliche Idee ist es, so zu tun. Es war sehr schmerzhaft für mein Team und für unsere Kunden

würde ich durch jeden erdenklichen gehen bedeuten schrittweise Releases zu tun, auch wenn es bedeutet, mehr Arbeit zu tun. Sie werden dankbar sein, weil Sie nicht durch heroischen Anstrengungen zu gehen, um alles zu bekommen bewegt, und Ihre Kunden schätzen die Möglichkeit, das Produkt eine eine Zeit ein wenig zu erhalten eingeführt.

Ich hoffe, das hilft!

Ich stimme mit Esteban , dass die schrittweise Freisetzungen am besten sind. Es ist wie ein Haus Umbau: So funktioniert es über mit zunächst wie eine gute Idee zu sein scheint. Aber bedeutet, dass Sie alles im Voraus planen, eine Reihe von Auftragnehmern mieten und ausziehen. Dann ändert sich etwas in den Plan oder ein Auftragnehmer verschwindet, und die ganze Zeit um dich zu retten hoffte, ist verschwunden. Inzwischen gibt jede allmähliche Veränderung eine Chance, zwischen den Schritten zu stoppen und zu denken. Manchmal kann man spätere Änderungen vermeiden, wenn frühere Änderungen funktionieren besser als geplant.

Ich arbeite an einem System, das ein großes Skalierungsproblem hatte. Wir haben eine Liste aller Änderungen, die wir dachten, wir würden brauchen und priorisiert sie von wahrscheinlichen Auswirkungen. Dann begannen wir, eine Änderung zu einem Zeitpunkt zu machen. Etwa auf halbem Weg durch die Liste, wir fanden wir das Skalierungsproblem gelöst hatten. Ich habe immer noch die Liste, aber ich kann es nie beenden müssen. Ich bin frei Funktionen hinzuzufügen und andere Probleme zu lösen.

Natürlich gibt es Zeiten, wenn es am besten ist, die Kugel zu Bit und reißt die ganze Sache nach unten. Aber das ist viel weniger verbreitet als die Menschen zu glauben neigen. Und für kritische Betriebssysteme, die „tear-down“ Entscheidung kann tödlich sein. Schauen Sie sich die großen Projekte der Regierung, dass jeder der modernen Computing-Ära werden müssen gebracht stimmt, kann aber nicht, weil einige wichtige Dienstleistung verloren. Wenn die Philosophie allmähliche Veränderung gewesen, vielleicht wäre sie ein Stück zu einer Zeit modernisiert.

Es klingt wie inkrementelle Wieder Architektur sollten Sie Ihren beweglicher Summen-Satz der Wahl sein.

Ich habe noch nie auf einer Web-Anwendung getan, aber ich habe einige ziemlich radikale Client-Anwendung Änderungen durchgemacht, die schrittweise durchgeführt wurden. Wenn Sie ein wenig Zeit investieren vorne, um sicherzustellen, dass Teile der Arbeit in eine ziemlich vernünftigen Weise sequenziert werden kann es gut funktionieren. Eine kleine Investition in gut Refactoring Hilfen ist sehr hilfreich, wenn Sie nicht bereits haben. Ich persönlich kann empfehlen JetBrains ReSharper , wenn Sie .NET verwenden, und wenn Sie Java sind -basierte ich glaube, IntelliJ IDEA ähnliche Funktionalität enthält.

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