Frage

Dies ist eher eine allgemeine Frage, welche Richtung eine bessere Investition für das Unternehmen sein würde.

Kerngeschäft Anwendung Unsere Firma ist in Visual FoxPro geschrieben und ist über 9+ Jahre alt. Die Datenbank ist riesig 15+ Gigs und die Kernlogik ist komplex und noch schlimmer zu machen das Datenmodell ist schrecklich. Die beiden Jungs, die es gebaut und haben sie in all diesen Jahren zumindest in ihren 50ern sind gehalten, so unnötig Ruhestand zu sagen, oder möglicherweise den Tod innerhalb der nächsten zehn Jahre kommen könnte oder so.

Diese VFP App Laufwerke allen unseren Kerngeschäftsfunktionen und erfordert Terminal Services und Citrix für den Zugriff es von der Außenwelt. Unsere Web-Anwendungen haben mit ihm über ODBC-Schnittstelle und wir haben immer Performance-Probleme mit ihm. Die Server, die dieses System laufen, sind auch sehr alt, wie Win 2000 Server und auseinander fallen.

Vor kurzem haben wir Sitzungen über die Aktualisierung der Systeme hat, die diesen Kern App sowie andere Dienste wie E-Mail und Dateispeicher laufen. Der größte Aufwand ist jedoch den Kauf neuer Server-Hardware, OS-Lizenzierung, Terminaldienste Lizenzierung, Citrix usw. Lizenzierung einige Performance und den Zugriff von außen Probleme zu lösen wir zur Zeit, als auch nur im Allgemeinen bringt uns bisher auf unseren Systemen haben.

Das Preisschild im 55K $ bis $ 65K Preisklasse sein wird. So als Web-Entwickler Sicht meines Punkt ist, dass dies eine große Verschwendung von Geld! Meine Lösung wäre, dass das Geld zu investieren in Umschreiben des Core-System auf der Web-basierte .NET-Plattform laufen. Dies würde die Beseitigung der Notwendigkeit für Terminalserver und Citrix Lizenzierung zusammen mit der teuren Hardware und Konfigurationsmanagement, es zu laufen. Ich habe nicht den Punkt sehe diese Art von Geld in einem veralteten System zu investieren, die sowieso auf seine Art und Weise heraus sein sollten.

Ich suche einige überzeugende Argumente zu bekommen, warum dies ist eine Verschwendung von Geld. Hoffentlich ist es jemand hier, die diese Art von Situation konfrontiert hat vor, dass mir einige Standpunkte geben kann. Die Hardware-Upgrade scheint der einfachste Weg zu sein zu nehmen, weil sie nur ein Berater in kommen und tun es alle. Ein Software-Entwicklungsprojekt würde länger dauern, benötigt mehr Ressourcen und möglicherweise ein wenig mehr Geld kosten.

War es hilfreich?

Lösung

Jedes Projekt muss eine Kosten-Nutzen-Analyse. Wenn eine $ 60.000 einmalige Investition alle Ausgaben für die nächsten 10 Jahre lösen wird, dann ist es (wahrscheinlich) viel wirtschaftlicher als es noch 1 Jahr ein Teams von Entwicklern der Einstellung ein neues, besseres System zu bauen.

Auf der anderen Seite, wenn es bereits ist $ 50.000 / Jahr bei der Wartung kostet und diese Kapitalkosten sind nur das System am Leben zu halten, und Sie werden weitere $ 60k in ein paar Jahren von jetzt verbringen müssen, dann garantiert es eine ernsthaft in Erwägung in Bezug auf eine Neukonstruktion.

Oder man könnte die mittlere Straße nehmen und starten Sie es wie ein Web-Service in etwas undurchsichtigen Einwickeln, dann nach und nach Komponenten mit besseren Auslagern (effizienten, wartbar, etc.) interne Komponenten. Viele Unternehmen gehen diesen Weg, weil es die Upfront-Kosten für eine Rewrite aufschiebt; Bei Bedarf können Sie die IT-Ressourcen verschieben anderswo.

S.Lott ist richtig, obwohl - es ist wahrscheinlich, dass Sie nicht in der Lage sein werden, allein auf Kosten zu konkurrieren. Sie müssen versuchen, die Risiken, die mit diesen alten Systemen zu quantifizieren - zum Beispiel, wie viel wird es das Unternehmen kosten zu finden und qualifizierten FoxPro Entwickler trainieren, wenn die ursprünglichen Programmierer verlassen entscheiden (oder ich den Sprachgebrauch so viele Manager zu verwenden, ‚ve erfüllt " überfahren von einem Bus") ...


Nur einige weitere Perspektive zu dieser hinzuzufügen: Vor .NET (und für ein paar Jahre nach) ich die meisten meiner Projekte ausschließlich in Delphi durchgeführt. Zu der Zeit, es war wirklich eine gute Wahl für die Entwicklung von Unternehmen. Ich war eigentlich die Person, die nicht wollte „Upgrade“. Nach einer Weile wurde es jedoch offensichtlich, sowohl für mich und meine höher-ups, dass diese Angst der Menschen außerhalb des Unternehmens.

Investoren, Wirtschaftsprüfer, alle - sie taten es nicht, wie die Idee, dass unser Kern IT-Asset in einiger „verschleiern“ Sprache durchgeführt wurde. Natürlich war Delphi nicht / ist nicht wirklich so dunkel; es gibt einen „delphi“ Tag hier auf SO mit einer Zählung von 3340. Aber lasst sie verwenden, um unser Beispiel - hier sind die aktuellen Zählwerte:

  • c# - 57293
  • .net - 30577
  • asp.net - 26600
  • java - 31023
  • vb.net - 5996
  • delphi - 3340
  • foxpro - 69
  • vfp - 27

Lassen Sie diese Zahlen in eine Weile sinken. Delphi, mein Werkzeug der Wahl an der Zeit, hat jetzt weniger als 10% der Darstellung von C #, und das machte nicht-Techies nervös. Foxpro / VFP ist nicht einmal 1%. Ich kann mich nicht einmal daran erinnern, wie oft ich zu beantworten Fragen hatte wie:

  • Was passiert, wenn der leitende Entwickler (me) quitt oder wird von einem Bus überfahren?
  • Wie schwierig / teuer wird es Programmierer in diesem Bereich zu mieten?
  • Was passiert, wenn der Verkäufer hält es unterstützen? (Dies geschah fast)
  • Was passiert, wenn wir Hilfe von außen bekommen? Consultants? Sicherheits-Audits?
  • Wie wird es leicht sein, es mit externen Produkten zur Arbeit zu kommen?

Blablabla, Sorge Sorge Sorge war, wie ich damals gefühlt, und das war ein Produkt, das nicht wirklich war , die verschleiern. In Ihrem Fall reden wir über FoxPro hier. FoxPro bekommen hat fast wie COBOL zu sein; Sicher, es ist immer noch rund, gibt es Menschen gibt, die es wissen, aber wer ein neues Projekt in FoxPro beginnt heute? Es ist langweilig, es ist geradezu Ghetto . VB6 beginnt Ghetto zu werden, und VB / Zugang effektiv ersetzt FoxPro so vor vielen Jahren.

Ich bin sein offensichtlich etwas melodramatisch hier, aber wenn ich du wäre, dies ist der Winkel, ich nehmen würde. Vergessen Sie die kurzfristigen Ökonomie, vergessen über das Alter und den Fokus auf die Dunkelheit des Produkts. Wie viele echte, qualifizierte Antworten denken sie sie bekommen, wenn sie einen Mangel-Anzeige löschte für einen FoxPro Entwickler? Welche Art von Bezahlung müßten sie Angebot für eine Position wie das? Was wäre der Umsatz wie? Dies kann alle scheinenFernbedienung, wenn diese beiden Entwickler dort für 20-ungeraden Jahre gewesen, aber wenn Sie ein Multimillionen-Dollar-Geschäft laufen lassen, sollten Sie, dass es ist nie eine gute Idee, um das Spiel Ihres Überleben auf einem oder zwei Mitarbeiter kennen - nicht, wenn Sie ihm helfen können, .

Andere Tipps

Die kurzfristige Rewrite gegen Wieder Hardware Argument kann nicht gewonnen werden. Hardware und Lizenzen sind immer billiger als ein Rewrite. Und Hardware-Plus Lizenz scheint kein Risiko einzubeziehen.

Sie können nicht auf den ROI Argument gewinnen. Es sei denn, das System trivial ist und du bist ein Genie, es wird immer $ 100K oder mehr kosten, eine Anwendung neu zu schreiben, dass tatsächlich hat etwas. Denken Sie mehrere Personenjahre.

Sie können die „technischen Schulden“ Argument gewinnen. Ändern wird immer mehr und komplexere, riskant und teuer. Je länger dieser Code verewigt wird, desto mehr Risiko und Kosten ansammelt.

Die eigentliche Frage ist „beginnt jetzt zu reparieren?“ oder „Warten, bis er bricht und später leiden?“ Und das hat keine definitive $ -wertigen Antwort.

Sie können nicht auf Geld konkurrieren, so dass Sie auf Risiko konkurrieren, Features, Wachstum, Wartbarkeit, Anpassungsfähigkeit, die Einhaltung von Standards, Sicherheit, für jeden Kunden eindeutigen Wert zu schaffen, usw. usw.


„Wir suchen jetzt in einer größeren Kundenbasis und mehr Daten“. Das ist ein Argument, das man zu gewinnen könnte fähig sein.

(Ich bin über 50, ich habe nicht in absehbarer Zeit zu sterben. Das Argument nicht gewinnen Herzen und Köpfe. Es sei denn, sie über 80 sind, können Sie nicht wirklich Alter verwenden, sofern Art und Weise zu bekommen Ihr Argument ignoriert.)

Fokus auf die Kosten (und Risiko) von Änderungen.

Zeigen Sie, dass Sie eine Web-basierte Lösung, die Änderungen weniger kostspielig und weniger riskant macht.

Ferner graben in das, was es gibt und finden Sie Teile, die von einem Web-Framework ersetzt werden kann. Code Sie keine Schreib billiger ist, den Code, den Sie schreiben, zu erhalten.

In der Regel diese Tonnen Hardware einer schlechte System Ergänzung ist ein schlechter Plan, würde ich wahrscheinlich sagen, dass es # s besser neu zu schreiben, aber es ist schwer zu sagen, ohne die Details zu kennen.

Beachten Sie, dass ein anständiger Rewrite sollte Leistung, Zuverlässigkeit und Wartbarkeit verbessern, damit das Einsparpotential groß ist und nur von Jahr zu Jahr erhöhen, auch wenn die initiale Investition ein wenig mehr ist.

Um herauszufinden, ob es sich lohnt, müssen Sie berechnen, zusätzlich zu den Kosten einer Rewrite:

  1. Dokumentieren alles, was das System zur Zeit nicht, und Reverse-Engineering der Anforderungen.

  2. Schreibeinheit und Integrationstests für alles, was existiert zur Zeit. Diese existieren wahrscheinlich doensn't schon, aber sollte es sein.

  3. Die Kosten des neuen Systems beibehalten wird. Das neue System wird nicht die Wartungskosten zu beseitigen, ist es lediglich reduzieren. Wie viel werden Sie sparen?

  4. Kosten von Hardware für das neue System. Das neue System ist zu haben, auf etwas laufen.

  5. Lizenzkosten für Software / etc. , die für das neue System benötigt. Läuft alles Open Source sein? Oder wollen Sie mehrere Visual Studio Test-Editionen für Ihre Entwickler und Tester?

  6. brauchen
  7. Kosten neues Personal für die Einstellung der Entwicklung zu tun. Zusätzlich zu den geraden Lohnkosten gibt es Bürokosten. Die Gesamt könnte $ 300.000, für etwa 3 Entwickler, Zählen Gehalt, Büroflächen, Ausrüstung, Lizenzen, Gesundheitsleistungen sein.

  8. Der Zeithorizont für die Rettung. Die Einsparung wird nicht sofort auftreten. Es wird auch in Zukunft auftreten. In der Zwischenzeit müssen sie noch für das aktuelle System für die Lizenzierung zahlen, weil etwas die Arbeit, bis das neue System eingerichtet wird gesetzt zu tun hat.

  9. Der Cash Flow Probleme. Aufgrund der oben in der kurzen Frist werden sie mehr Geld brauchen, um die Entwicklung zu finanzieren. Die tatsächlichen Kosten höher sind, weil sie im Wesentlichen ein Darlehen, Eigenkapital zu bekommen, oder Opportunitätskosten haben (sie aer eine andere Anlagemöglichkeit zu verzichten zu haben, die Rewrite zu verfolgen).

  10. Das Geschäftsrisiko. Es kann eine Gefahr sein, dass die Rewrite könnte mehr kosten, Arbeit schlechter,

Zwei wichtige Zahlen:

  • Die Anzahl der "FoxPro" Jobs aufgelistet in San Francisco Craigslist jetzt: 2.
  • Die Anzahl der ".NET" Jobs aufgelistet in Craigslist San Francisco jetzt:. 252

Eine Menge anderer Punkte, die erwähnt wurden, sind gültig. Sie können jedoch so viel ausgeben, wie Sie auf Hardware wollen, aber die Tatsache ist, dass, wenn etwas kaputt geht und Sie Hilfe benötigen, werden Sie ein Heck einer Zeit zu helfen mehr Menschen zu finden haben.

klingt wie eine gute Zeit, um über einen migration¹ zu sprechen beginnen zu neuere, bessere gestützte Technologien. (Und in 10 Jahren, wenn .NET ist ein alter Hut, können Sie es tun alle immer wieder:)

[1] und entwickeln sich das System, tun Sie es nicht neu schreiben. Ich würde Ihr aktuelles System wurde sehr organisch basiert auf Bedürfnisse zu der Zeit erraten. Es gibt keine Möglichkeit, dass Sie in der Lage sein werden, um vollständig alle, dass zu ersetzen (zumindest nicht ohne ein paar Jahre und ein paar miillion Dollar).

Als historischer VFP Devloper (über 20yrs mit Foxpro / VFP, und immer noch Leute zu schreiben, fragen mich haben / aktualisieren ihre Systeme mit VFP, für eine Vielzahl von Gründen), die immer noch sehr mächtig. Während jedoch die Erforschung und viel von meiner OOP und Entwicklung Erfahrung zu nehmen und die Arbeit mit .NET, ich einige Dinge in .Net viel einfacher, finde vor allem das starke Typ-Casting. Um jedoch einen Basisbericht zu tun, dass alle starken Typ-Casting in die Datenbank Tabellen / Strukturen / Objekte, und in vielen Fällen so weit, ein PITA zu tun.

Der Preis für eine Rewrite ist immer wichtiger Gesichtspunkt, aber so ist auch der Zusammenbruch eines Systems ... unabhängig von VFP, VB, Access oder anderen. Ich würde ein Beratungsunternehmen, um Hilfe bei der Wieder Modellierung des Systems stark schlage vor, und vielleicht als Projektmanager / Mentor Ihre internen Mitarbeiter von Programmierern handele die in der Lage sein, ihre Talente zu bieten, auch wenn es einige erfordern Ausbildung in der neuen Entwicklungsumgebung. Auf diese Weise können Sie eine gute Basis für ein starkes Talent in der Sprache bekommen, noch einige Kosten niedrig halten, indem Sie Ihre eigene Programmierung Mitarbeiter mit - aber Sie können zusätzliche Programmierung Mitarbeiter einstellen müssen. Die Lernkurve von VFP zu Net ist da, und kann immer noch ein Kopf Scratcher sein.

Es gibt eine Vielzahl von Unternehmen gibt, die VFP-Spezialisten waren, die anschließend ihre Dienste auf .NET-Welt migriert haben und kann eine perfekte Ergänzung für Ihr Unternehmen bieten die historischen Kenntnisse und Berufserfahrung aus beiden Welten haben. Ich weiß, dass sie als Mentoren auch für die Entwicklung einer solchen Arbeit wirken können.

Sie können nur sagen, dass es eine Verschwendung von Geld ist, nachdem Sie den ROI analysiert -. Es stark davon abhängen, wie viel kostet es, das System neu zu schreiben

Classic Fehler auf JOS - „System ist ein Chaos, machen wir es umschreiben“.

Es wird in diesen alten Gebäuden wie der Blick und mit einem Zahnstocher zu sehen und zu fragen, warum es da ist. Sie schätzen, es nicht erforderlich ist, und ziehen Sie es heraus.

Auf einmal das Gebäude einstürzt um den Kopf:)

Es könnte eine bessere Idee

sein
  1. Betrachten wir Teile des Systems für eine bessere Wartbarkeit neu zu schreiben.

  2. Die Optimierung des Systems für eine bessere Leistung.

  3. Abstrahieren die Foxpro bestimmte Teile, so dass es leichter zu einer anderen Technologie umgewandelt werden könnte.

Dieser schrittweise Ansatz würde das Risiko reduzieren, und bietet einige kurzfristigen Verbesserungen.

Es gibt keine magische Kugel hier für das Unternehmen. Der einzige Weg, um sicher zu sein ist der Hit auf einem neuen Server zu ergreifen, um die Stabilität und Geschwindigkeit Vorteile zu erhalten, die an die bestehende unternehmenskritischen Software bringt. Dann einmal, dass für ein paar Jahre geparkt beginnen Re-Engineering, das Ding auf einer anderen Plattform wie .NET, wenn das ist, was Sie tun möchten. In Anbetracht der Tatsache, dass Sie die VFP Daten in die neue Datenbankstruktur an einem gewissen Punkt müssen migrieren.

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