7 Stimmen

Ablösungs- oder Migrationsstrategie für Excel/Access

Gibt es eine Möglichkeit, die von den Endbenutzern geschätzte Flexibilität der Excel/Access-Entwicklung zu bieten und gleichzeitig eine zentrale IT-Verwaltung einzurichten, so dass Daten und Logik sicher, gesichert, versionskontrolliert usw. sind? Die gängigsten Optionen sind das Umschreiben in C#/ASP.Net/Java/Python/Your Choice, aber das entzieht den Benutzern die Kontrolle. Gibt es einen besseren Weg, und wie gehen Sie an Ihrem Standort vor?

Es ist ein allgemeines Problem, dass Benutzer fantastisch nützliche Excel/Access-Mini-Apps erstellen, die die IT-Abteilung gerne unter Kontrolle bringen würde. Die Benutzer lieben die Flexibilität, die Excel bietet, insbesondere die Möglichkeit, Änderungen während des laufenden Betriebs vorzunehmen, Diagramme zu erstellen und Daten zu importieren/exportieren. In Access haben wir eine hervorragende QBE. Der Nachteil ist, dass es nach kurzer Zeit Legionen von außer Kontrolle geratenen Tabellenkalkulationen/Datenbanken gibt, die geschäftskritisch sind, mit einer Menge schlecht verstandener Geschäftslogik und brüchigem Code, die zu betreuen sehr mühsam ist, vor allem wenn die Mitarbeiter weiterziehen.

Das bringt die IT-Abteilung in eine missliche Lage: Sie würde diese Anwendungen gerne unterstützen, weiß aber nicht genug darüber. Erschwerend kommt hinzu, dass sie in der Regel unsicher sind und keinerlei Dokumentation enthalten.

6voto

Kevin Ross Punkte 7105

Da ich auf beiden Seiten des Zauns stand, würde ich die Ursache des Problems suchen. Warum machen die Nutzer ihre eigenen kleinen Anwendungen? Weil es zu schwierig, zu teuer, zu zeitaufwändig ist und nie klappt, wenn sie die "richtigen" Wege gehen.

Außerdem kennen sie sich in der Regel sehr gut mit dem Geschäft aus, so dass sie zwar nicht sehr gut programmieren können, aber sehr gut wissen, was zu tun ist.

Was können wir also tun, um dieses Problem zu bekämpfen? Ich persönlich denke, dass es innerhalb der IT-Abteilung ein kleines Team geben sollte, dessen Aufgabe (oder eine seiner Aufgaben) darin besteht, diese kleinen Anwendungen zu entwickeln. Sie sollten sehr eng mit den Endnutzern zusammenarbeiten und nicht im Elfenbeinturm der IT eingesperrt sein.

In meiner jetzigen Position bin ich auf der Nicht-IT-Seite des Zauns. Ich habe ein paar ziemlich große Anwendungen, die entwickelt werden müssen, also habe ich um eine Installation von Visual Studio und etwas Platz auf einem SQL-Server gebeten. Mein Antrag wurde abgelehnt. Also habe ich einfach um Speicherplatz auf dem SQL-Server gebeten, was wiederum abgelehnt wurde (die Bearbeitung jedes Antrags dauerte etwa eine Woche), so dass ich am Ende im Zugang "feststecke".

Das sind jetzt sehr schöne Access-Apps mit Versionskontrolle, Kommentaren in den (Schock!) und all den anderen netten Dingen, aber am Ende des Tages habe ich versucht, die Dinge auf die "richtige" Art und Weise zu tun und wurde schließlich gezwungen, den Access-Weg zu gehen. Wenn also meine Anwendungen skaliert werden sollen und ich lange Zeit für eine Neufassung brauche, wer ist dann schuld?

4voto

Heinzi Punkte 157917

Sie könnten einen gemischten Ansatz versuchen: Erlauben Sie Ihren Benutzern, Excel/Access zu nutzen, um ihre eigenen, spezialisierten Tools zu erstellen, aber nehmen Sie die geschäftskritischen Dinge und stellen Sie sie unter IT-Kontrolle. Es gibt ein paar Strategien, die Ihnen dabei helfen können:

  • Stellen Sie sicher, dass Ihre IT-Abteilung mit VBA vertraut ist. Dabei handelt es sich nicht um ein "Ja, jeder kann ein paar Zeilen schreiben"-Wissen, sondern um eine gründliche Schulung, genau wie bei einer weniger einfachen Programmiersprache. Obwohl "echte Programmierer" Ihnen etwas anderes erzählen werden, ist es es Es ist möglich, große, stabile Anwendungen in VBA zu schreiben.
  • Wenn Sie derzeit die Daten in Access-Datenbanken zu verwenden, sollten Sie davon abrücken und zu einem SQL-Server migrieren. Auf diese Weise können Sie eine zentrale Sicherung und Verwaltung vornehmen und gleichzeitig Ihren Power-Usern die Flexibilität geben, diese SQL Server-Tabellen mit ihrem Access-Frontend zu "verknüpfen".
  • Die häufig verwendete Geschäftslogik sollte unter der Kontrolle Ihrer IT-Abteilung stehen. Dies kann entweder mit VBA geschehen, indem Sie eine Access-Bibliothek erstellen, die von Ihren Benutzern verknüpft wird, oder in einer der .net-Sprachen unter Verwendung von COM-Interop. Letzteres hört sich komplizierter an, als es ist, und es wird die Zufriedenheit Ihrer IT-Abteilung erhöhen, da die Entwicklung in .net einfach viel lohnender ist als VBA (Versionskontrolle möglich, usw.).

4voto

Ben McCormack Punkte 30876

Haben Sie in Erwägung gezogen, SharePoint für Anwendungen auf Abteilungsebene zu nutzen? Viele professionelle Entwickler sträuben sich gegen die Idee, Sharepoint für die "Anwendungsentwicklung" zu nutzen, aber es kann in der Tat eine großartige Möglichkeit für "Power-User" sein, ihre Daten und Tools in einen verwalteten Rahmen einzubringen.

Mit SharePoint können Sie die Gesamtstruktur der Website verwalten und dann Benutzer mit erhöhten Berechtigungen innerhalb ihrer jeweiligen Abteilungen einrichten. Es gibt einige großartige Tools von Drittanbietern, die Ihnen dabei helfen, ein Auge darauf zu haben, was auf Ihrer SharePoint-Website vor sich geht.

SharePoint ist beileibe kein Allheilmittel, aber es eignet sich hervorragend für viele Mehrbenutzeranwendungen, die mit einer Liste von Daten Schritt halten müssen.


(Das Folgende hat nicht wirklich etwas mit meiner obigen Antwort zu tun, aber Ihre Frage hat mich wirklich getroffen, und ich dachte, ich würde meine ähnlichen Erfahrungen und Erkenntnisse mit Ihnen teilen).

Unser Unternehmen wird in naher Zukunft einen ähnlichen Prozess durchlaufen. Ich bin auf der Seite der "Endverbraucher" und kann vieles nachempfinden. Kevin Ross sagte . Manchmal sind Access und Excel einfach die besten Werkzeuge, die mir zur Verfügung stehen, um die Arbeit zu erledigen.

Hier ist ein Beispiel: Vor einigen Jahren wurde ich gebeten, ein System für die Erstellung von Bestellungen bei einem Lieferanten in China für Produkte mit einer Vorlaufzeit von 3 Monaten zu entwickeln. Unsere ERP-Software hatte zwar einige Funktionen für die Beschaffung, aber nichts, was auch nur annähernd der Komplexität der Situation entsprach, mit der wir konfrontiert waren. Jahre später, nachdem wir mehrere Iterationen der Anwendung in Excel durchlaufen hatten ( VLOOKUP war ein Lebensretter), Access ("So que ist der Grund, warum Menschen relationale Datenbanken verwenden. Toll!), und zurück in Excel ("machen wir es nicht so kompliziert"), finde ich immer noch, dass diese Micorosft Office-Anwendungen die besten Werkzeuge sind, um die Arbeit zu erledigen.

Wie hoch sind die Kosten für no diese Hilfsmittel einsetzen, um die Arbeit zu erledigen?

  • Ein Auftrag an unseren ERP-Anbieter, um eine spezielle Funktion für diesen Bestellvorgang hinzuzufügen: Soll das ein Witz sein? Wir würden wahrscheinlich Zehntausende von Dollar für eine unflexible, monolithische Anwendung mit horrender Benutzerfreundlichkeit bezahlen ... und wir würden trotzdem wieder bei Excel landen.
  • Kaufen Sie Software von Drittanbietern, die genau für diesen Prozess entwickelt wurde: Ich habe eine Vor-Ort-Demo einer Software gesehen, die genau was ich mir für unseren Beschaffungsprozess wünsche. Er beginnt bei 100.000 Dollar. Es gibt wahrscheinlich andere Tools, die wir für ein paar tausend Dollar bekommen können, aber zu diesem Preis habe ich die meisten ihrer Funktionen bereits in meiner eigenen Anwendung nachgebildet.
  • Versuchen Sie, die Arbeit "von Hand" zu erledigen. Ha! Ich bin im Grunde meines Herzens ein Programmierer, das heißt, ich bin faul. Wenn ich eine ganze Woche am Schreibtisch sitze, um eine Bestellung zu bearbeiten (so lange hat es tatsächlich gedauert), dann kann ich darauf wetten, dass ich eine Lösung finde, für die ich nur ein paar Stunden brauche (und das ist jetzt der Fall). Vielleicht wird mein Nachfolger das meiste wieder von Hand machen, aber ich werde die Werkzeuge in meinem Werkzeugkasten nutzen, um mir Zeit und Stress zu sparen.

Es ist so schwer, die perfekte Anwendung zu finden, die dem Benutzer ein Maximum an Kreativität ermöglicht, aber dennoch von der IT-Abteilung "verwaltet" werden kann. Sobald man denkt, dass man eine Lösung für eine Sache gefunden hat, stellt man fest, dass sie etwas anderes nicht kann. Kann ich mit dieser Lösung einen druckbaren Bericht schreiben, wie ich es früher in Access getan habe? Kann ich komplizierte Excel-Formeln schreiben, die mehrere Datenquellen aus verschiedenen Tabellenblättern miteinander verknüpfen ("Sie wollen, dass ich lerne なに ? Nein, ich habe noch nie etwas von einem " SQ uirre L Abfrage" vor. VLOOKUP ist in Ordnung, vielen Dank)? Kann ich die Ergebnisse per E-Mail an die Leute in meiner Abteilung schicken? Kann ich die Daten automatisch aus unserer Backend-Datenbank abrufen, wie ich es in Excel und Access tue? Kann ich meinen eigenen Code schreiben, VBA oder anderweitig, um mir die Arbeit zu erleichtern? Die Liste lässt sich fortsetzen.

Der beste Rat, den ich einem IT-Manager in Ihrer Situation geben kann, ist respektieren Sie die anderen Arbeitnehmer in Ihrem Unternehmen. Lassen Sie sie wissen, dass ihre Arbeit wichtig ist (auch wenn sie nur für sie selbst und den Kollegen am Nachbartisch nützlich ist). Lassen Sie sie wissen, dass Sie nicht versuchen, ihnen die Arbeit schwer zu machen. Halten Sie sie nicht für Idioten, weil sie geschäftskritische Anwendungen in einer Office-Software erstellen; Sie versuchen lediglich, die Arbeit mit den ihnen zur Verfügung stehenden Mitteln zu erledigen, und sind in der Regel sehr fähige und intelligente Menschen. . Fordern Sie sie auf, verschiedene Lösungen zu erkunden mit statt nur die Werkzeuge zu entfernen, die sie derzeit in ihrem Werkzeugkasten haben, und sie dann durch solche zu ersetzen, mit denen sie nichts anzufangen wissen.

Wenn Sie Benutzer haben, die klug genug sind, sich selbst in den Fuß zu schießen, indem sie komplizierte Anwendungen in Excel und Access erstellen, sind sie wahrscheinlich auch klug genug, um zu lernen, wie man die geeigneten Werkzeuge um die gleichen Aufgaben zu erfüllen. Investieren Sie die Zeit und Energie, um sie in den Prozess einzubeziehen, und Sie werden am Ende eine Lösung haben, die für alle funktioniert.

3voto

David-W-Fenton Punkte 22473

Ich möchte mich einem der wichtigsten Punkte von Kevin Ross anschließen:

Ich persönlich denke, dass die kleines Team von Leuten innerhalb der IT, deren Aufgabe (oder eine ihrer Aufgaben) darin besteht diese kleinen Anwendungen zu entwickeln. Sie sollten sehr eng mit den Endanwendern zusammenarbeiten Endnutzer arbeiten und nicht im Elfenbeinturm der Elfenbeinturm der IT.

Ich denke, jede IT-Abteilung, in der viele Benutzer Access/Excel verwenden, sollte mindestens einen gut ausgebildeten und erfahrenen Spezialisten für die Entwicklung von Anwendungen haben.

  1. I

  2. t

I

I

B

O

0voto

Lance Fisher Punkte 25464

Wenn es sich um ein geschäftskritisches Programm handelt, das in Access oder Excel erstellt wurde, schlecht aufgebaut ist und von niemandem verstanden wird, ist es wahrscheinlich an der Zeit, es richtig neu zu erstellen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X