Das Unternehmen, für das ich derzeit arbeite, hat eine schreckliche Menge an Prozessen, die manuelle Arbeit erfordern, daher ist die Anzahl der Projekte, die sie übernehmen können, sehr begrenzt, da ihre Prozesse nicht skaliert werden können, haben sie einen Punkt erreicht, an dem sie Projekte ablehnen müssen . Diese Prozesse hängen weitgehend von manuellen Einstellungen, manueller Ausführung und dem Schreiben von Excel- und Word-Dokumenten und dergleichen ab. Ein Beispiel dafür, einer dieser Prozesse beinhaltet das manuelle Ausfüllen von mehr als 800 Zellen in einer Tabelle, ein anderer exportiert alle diese Zellen manuell in einen anderen internen Werkzeug und so weiter.
Ich wurde von diesem Unternehmen vor etwa einem halben Jahr in einer technischen Führungsrolle eingestellt, mit der Absicht, die aktuelle Abteilung, in der ich arbeite, von der manuellen Arbeit in die automatisierte Arbeit mit Python als Programmiersprache umzuwandeln. Mein Profil ist rein technisch, ich bin Softwareentwickler und Softwarearchitekt mit jahrzehntelanger Erfahrung.
Während dieser sechs Monate habe ich zwei verschiedene Rollen wahrgenommen, die Python-Infrastruktur aufgebaut, um die Prozesse automatisch auszuführen, und dieselbe Infrastruktur auch verwendet, um Ergebnisse in einem sehr wichtigen Projekt zu liefern, das sie haben, das alles funktioniert gut und ich wurde von gelobt hohe Qualität der Leistungen.
Die Infrastruktur ist so generisch und flexibel wie möglich und kann über Python angepasst werden, um die unterschiedlichen Anforderungen der Projekte zu erfüllen. Die Logik ist die gleiche wie zum Beispiel Projekt in React oder in Django. Alles Komplizierte ist in der Infrastruktur abstrahiert und über einen Funktionsaufruf in Python verfügbar, alles ist so konzipiert, dass der Benutzer nur Projektspezifika programmieren und Blöcke mit Python zusammenfügen muss.
Das Problem ist, weil andere Leute in der Abteilung mit anderen Projekten beschäftigt waren und die manuellen Prozesse so lange dauern, hat niemand außer mir an dieser Infrastruktur oder den daraus abgeleiteten Projekten gearbeitet, und niemand sonst in der Abteilung ein Programmierer noch etwas über Python weiß, das wenige Programmieren, das sie gemacht haben, ist VBA.
Ich habe meinen Kollegen gezeigt, wie alles funktioniert, und sie erkennen den Wert, den es liefert, und finden es erstaunlich, mögen Python aber überhaupt nicht, wenn es um die Implementierung der Projektspezifikationen oder die Wartung der Infrastruktur geht. Sie sind keine Programmierer und die Rolle, in die sie wechseln sollen, erfordert bis zu einem gewissen Grad Programmieren. Die Implementierung der Projektspezifika erfordert Kenntnisse in einfachem Python, also hatte ich gehofft, dass sie in jedem Projekt von dort aus beginnen und die Ergebnisse selbst miterleben würden, aber ich bin es Beginnen zu glauben, dass dies niemals passieren wird, mit der Ausrede, dass sie damit beschäftigt sind, die manuelle Arbeit in anderen Projekten zu erledigen.
Ich habe kürzlich erfahren, dass in der Vergangenheit eine externe Firma für die gleiche Sache wie ich eingestellt wurde, aber nicht weit gekommen ist.
Das andere Problem ist, dass weder mein Vorgesetzter noch andere Vorgesetzte etwas über Software wissen, es gibt keine Stunden für die Infrastruktur, also stecke ich alle Stunden, die ich mit der Infrastruktur, die nicht projektspezifisch ist, verbracht habe, in ein bestimmtes Projekt, wie ich wurde gesagt, und jetzt glauben sie, dass automatisierte Prozesse zu viel Zeit in Anspruch nehmen, weil dieses Projekt länger als erwartet gedauert hat, obwohl ich mehrmals erklärt habe, dass die meisten Stunden mit der Infrastruktur zusammenhängen und nur sehr wenig mit der eigentlichen Projektfunktionalität.
Ich suche also Rat, da ich mich allein fühle und nicht sicher bin, ob ich gegen eine Wand stoße. Im Moment habe ich das Wachstum der Infrastruktur begrenzt, bevor es für eine Person zu viel wird, und konzentriere mich darauf, Interesse zu wecken und zu bekommen ordentliche Statistiken darüber, was möglich ist und wie viel Zeit dafür benötigt wird.
BEARBEITEN:
Ich werde mehr Kontext basierend auf den gegebenen Antworten bereitstellen.
Ein Prozess selbst kann darin bestehen, eine physikalische Größe 800-mal zu messen und die Ergebnisse zwischen bestimmten Schwellenwerten oder bestimmten Kriterien 800-mal in einer Excel-Tabelle zu melden. Derzeit wird dies manuell von einem gut bezahlten Ingenieur durchgeführt, der auf den Knopf eines Werkzeugs 800 drückt hundert Mal alle fünf Sekunden oder so (so schnell er kann) und filtert in seinem Kopf und schreibt die Daten manuell in eine Tabelle.
Die Kommunikation mit dem Tool kann aus mehreren Gründen nicht mit VBA erfolgen, einschließlich technischer Einschränkungen der Sprache, und dies würde auch nicht für alle Tools skalieren oder wartbar sein, die diese Größenordnung messen, da sie unterschiedliche Protokolle verwenden und zu unterschiedlichen Herstellern gehören.
Beachten Sie, dass dies nur ein Prozess in einem riesigen Rahmen von Prozessen und Projekten ist, die sehr unterschiedlich sind und sich ändern können, und beachten Sie, dass dies auch in Echtzeit erfolgen muss, obwohl dies aufgrund der bestehenden technischen Einschränkungen nicht in Echtzeit geschieht Da dies manuell erfolgt, haben sich Kunden beschwert, aber es wird nicht darauf eingegangen. Aus diesem Grund lobten sie die Ergebnisse meiner Arbeit, weil auch solche Bedenken angesprochen wurden.
Also brauche ich eine richtige Sprache, und ich habe mich für Python entschieden, weil ich es gut kenne und es am einfachsten zu erlernen und damit zu beginnen ist so weiter und nur erwarte ich vom Benutzer etwas Python-Code, um die Filterkriterien für die Ergebnisse festzulegen und wo sich das Tool anhand seiner IP befindet. Ich persönlich finde das nicht kompliziert.
Ich könnte dies zu einer grafischen Benutzeroberfläche abstrahieren, um zu vermeiden, dass Benutzer Python verwenden, aber beachten Sie, dass dies bedeuten würde, dass ich in jedem Projekt alle Teile der Funktionalität selbst implementieren würde, wenn ich dies für jeden Prozess tue, während meine Kollegen nur einen Knopf drücken. Und nicht alle Prozesse passen sich gut an eine GUI an, sie erfordern eine gewisse Logik, um über Python implementiert zu werden, ich wäre nicht in der Lage, dieses Arbeitsvolumen selbst zu bewältigen, noch ist es die Absicht, die Absicht ist, dass die Leute anfangen, Dinge zu automatisieren, wie ich es tue ich selbst. Die Absicht ist, dass ich die Infrastruktur und komplexe Probleme selbst handhabe, während sie die Anforderungen für andere Projekte mit dieser Infrastruktur mithilfe von Python automatisieren.
Ich habe mit allen Beteiligten gesprochen und die Vision für die Infrastruktur geteilt, bevor ich angefangen habe, und ausdrücklich erwähnt, dass Python verwendet werden würde, es sei denn, und die vielfältigen Gründe dafür, insbesondere die wachsende Komplexität der Projekte und die Tatsache, dass die aktuelle Arbeitsweise dies sehr impliziert der Kundenanforderungen wurden nicht berücksichtigt. Mir ist jetzt klar, dass sie vielleicht OK gesagt haben, ohne zu viel nachzudenken.
Die Annahme dieses Tools wird dadurch gefördert, dass ich Zeit habe, anderen Mitgliedern zu zeigen, wie es funktioniert, und zwei Personen wurden ausgewählt, um mit mir daran zu arbeiten, und ich muss ihnen das ganze Jahr über so viel wie möglich beibringen, aber Ich bin mir nicht sicher, ob sie darüber glücklich sind, und wenn Sie das Programmieren nicht mögen, kann das Leben die Hölle sein.
Mit generisch und flexibel, wie es sein kann, meine ich nicht, dass es kompliziert ist oder es zu viele Funktionalitäten gibt, es bedeutet, dass sie einen einzigen Einstiegspunkt zu einer Funktionalität haben, unabhängig von der Einrichtung, und die Infrastruktur alle zugrunde liegenden Details handhabt Kommunikation, Protokolle und Algorithmen hinter den Kulissen, sie können jedes verfügbare Tool mit der Infrastruktur verwenden und die gleichen Ergebnisse reproduzieren, mit generisch und flexibel meine ich, dass es nicht von bestimmten Tools oder Hardware abhängig ist, Sie rufen einfach eine Funktion in Python auf Holen Sie sich einen Wert aus einer Kombination von Tools und es regelt alle Details und die Kommunikation für Sie und gibt Ihnen einen Wert.
Meiner Meinung nach ist es erforderlich, ein wenig Python zu lernen, um das zu erreichen, was das Unternehmen mit der Abteilung vorhat. Das Unternehmen erhält ausdrücklich Projekte, die ein hohes Maß an kundenspezifischer Automatisierung von Prozessen erfordern, um in sehr kurzer Zeit Ergebnisse zu erzielen.
IN BEZUG AUF NICHT-TECH
Ich soll der technische Leiter für den Übergang sein, aber der Titel ist derselbe wie für alle anderen in der Abteilung, wenn nicht für den Senior-Tag. Mit Nicht-Tech meinte ich nicht, dass ich mit Leuten aus anderen Bereichen zusammenarbeite, ich meinte, dass ich die manuelle Arbeit, die in der Abteilung geleistet wird, nicht als so technisch betrachte, da jeder Knöpfe drücken und Tabellenkalkulationen füllen kann. Im Vergleich zu anderen Unternehmen hinken wir in Bezug auf Prozesse und Zeitrahmen weit hinterher.
Sie sagen also, dass die Mitarbeiter Ihres Unternehmens nicht technisch versiert sind und einige Tabellenkalkulationen und VBA zusammengebastelt haben, damit sie ihre Arbeit erledigen können, und dass Sie dies durch ein System ersetzt haben, bei dem sie Python lernen müssen?
Das von Ihnen erstellte System ist möglicherweise erweiterbarer, wartbarer, skalierbarer usw. usw., aber wenn die Mitarbeiter Code in Python schreiben müssen, um Projekte einzurichten und die Infrastruktur zu warten, dann sind Sie in einer verlorenen Position, es geht nicht passieren. In der Tat sollte es nicht passieren, vermutlich verfügen die Mitarbeiter über andere Bereiche des betriebswirtschaftlichen Wissens, die für ihre Arbeit von zentraler Bedeutung sind; Kundenbetreuung, Kontoverwaltung, Geschäftsanalyse? Das Codieren ist eine Verschwendung ihrer Zeit und ihres Fachwissens.
Es ist völlig verständlich, dass Sie sich in dieser Position befinden. Sie mussten zuerst die Knochen des Systems schreiben lassen. Sie müssen die Daten schützen, eine Benutzeroberfläche kann in diesem Stadium wie ein Luxus erscheinen. Vor allem, wenn alles an Ihrer Softare hängt und Sie die einzige Person sind, die die Arbeit macht. Sie müssen jedoch dafür sorgen, dass das System funktioniert, ohne sich auf die Programmierfähigkeiten der Benutzer zu verlassen.
Ich kann mir vorstellen, dass Sie deswegen unter großem Druck stehen. Es scheint, dass Sie allein schon besser abgeschnitten haben als ein ganzes Unternehmen externer Berater. Jetzt ist es an der Zeit, diesen Erfolg zu nutzen, um Hilfe zu erhalten. Können Sie das Unternehmen davon überzeugen, jemanden einzustellen, der Ihnen hilft? Wenn nicht, um Ihnen beim Schreiben einer Benutzeroberfläche zu helfen, dann zumindest, um die Last von den Benutzern zu nehmen und Ihre Zeit freizusetzen, um mit einer Benutzeroberfläche zu beginnen. Sie müssen zu diesem Zeitpunkt keinen erfahrenen Entwickler einstellen, ein eifriger Neuling, den Sie ausbilden können, ist möglicherweise die bessere Option.
Eine letzte Sache: Ich war in der Lage, Monster-Excel-Tabellen mit alptraumhaften VBA-Makros durch richtig codierte Systeme zu ersetzen, und ein Ansatz, der funktionierte, bestand darin, Excel als Benutzeroberfläche in der ersten Iteration beizubehalten, um das Problem „Hier nicht erfunden“ zu vermeiden. Mit der Zeit sahen sie, dass wir ihnen den Schmerz nahmen und ihr Leben leichter machten, und sie vertrauten uns, wenn es darum ging, Excel endgültig zu entsorgen.
Das klingt nach einer ungewöhnlichen (und frustrierenden) Situation, in der ich persönlich noch nicht war, also wird wahrscheinlich jemand anderes direkt relevantere Erfahrungen haben. Dieser Teil warf jedoch eine rote Fahne für mich auf:
Die Infrastruktur ist so generisch und flexibel wie sie nur sein kann...
Das klingt zumindest nach dem, was ich bei einigen brandneuen Kollegen in Softwarejobs gesehen habe. Es fällt mir auf, dass es für eine anfängliche Arbeit möglicherweise zu kompliziert ist, bevor sich irgendein Wert gezeigt hat. Die Probleme, die Sie in späteren Absätzen beschreiben, treffen ziemlich genau auf meine Sorgen, wenn ich das lese.
Ich würde denken, dass Sie zunächst sehr kleine Teile der Funktionalität abbeißen und sich selbst und Ihrem Arbeitsplatz beweisen müssen , dass Sie tatsächlich Effizienzsteigerungen erzielen können. Führen Sie ein paar Gespräche mit Leuten in Ihrem spezifischen Projekt darüber, (a) was die schwerwiegendsten Schmerzpunkte sind, und (b) überlegen Sie, welche Art von Tool oder Schnittstelle sie zu ihrem Prozess hinzufügen könnten. Wenn Ihre Lösung Benutzerprogrammierung erfordert und diese keine Programmierer sind, dann ist das ein Nichtstarter. (Wenn sie es gewohnt sind, sich Excel anzusehen, ist das Erstellen einer Tabellenkalkulationsvorlage mit einigen Python-Makros unter der Haube vielleicht eine vernünftige Startalternative.)
Holen Sie sich im Voraus etwas Buy-in oder Interesse für ein kleines Tool. Bringen Sie es ihnen in einer Woche. Holen Sie sich Feedback und iterieren Sie. Holen Sie sich eine Geschwindigkeit, mit der Sie den Schmerz für andere Menschen reduzieren. Zeigen Sie, dass sich die projektspezifische Zeit tatsächlich auszahlt. Man muss fast die Denkweise eines winzigen Startups/Skunkworks übernehmen und Wege finden, sich selbst zu verkaufen, um den Kunden glücklich zu machen. Es ist unwahrscheinlich, dass es produktiv ist, einen großen Moonshot zu machen und zu versuchen, alle Probleme auf einmal zu lösen (ohne vorheriges Buy-in auf der Schnittstelle).
In meinem Bereich (Videospiele) habe ich einen einzelnen Entwickler gesehen, der unabhängig einer Nicht-Tech-Abteilung (Kunst) angehört hatte, der sich sehr bewusst und sensibel für die Bedürfnisse von Künstlern war (z. B. Spitzenleistung mit visuell basiertem grafischem Denken), der sehr erfolgreich war und galt als unschätzbares Teammitglied. Sie konnte schnell Hilferufe von den Künstlern entgegennehmen und die bisherigen textbasierten Tools verbessern, um die dortigen Engpässe zu beseitigen.
Vielleicht verbringen Sie ein Wochenende damit, darüber nachzudenken, wie Ihr Ein-Mann-Softwareentwicklungsprozess aussieht. Auch das traditionelle SDLC- Wasserfallmodell beginnt mit ausgiebigen Kundeninterviews in den ersten Schritten. Denke nicht, dass du das überspringen kannst.
Es war ein großer Fehler von Ihnen, Infrastrukturstunden einem bestimmten Projekt zuzuordnen. Man hätte von Anfang an darauf achten sollen, dass es dafür ein eigenes Projekt gibt.
Ich vermute auch, dass es ein Fehler von Ihnen war, ein System zu implementieren, das anscheinend von niemand anderem verwendet werden kann. Wie auch immer, was getan ist, ist getan.
Ich habe das Gefühl, dass dieses spezielle Problem nicht so ungewöhnlich ist.
Sie müssen einen Haken finden, damit die Leute beginnen können, die zugrunde liegende Infrastruktur zu nutzen, und einige anfängliche Produktivitätsgewinne erzielen, die ihnen die Möglichkeit geben, mehr zu lernen. Sie sollten dies wahrscheinlich so tun, dass sie die Tools verwenden können, mit denen sie zu Beginn vertraut sind.
Wenn sie beispielsweise daran gewöhnt sind, Daten über Skripte in einem Excel-Arbeitsblatt zu ändern, sollten Sie in Betracht ziehen, einen odata-Endpunkt bereitzustellen, der von Excel gelesen/geschrieben werden kann. Sie könnten diesen Endpunkt konfigurierbar machen, um einige Datentransformationen gemäß Konfigurationsdateien durchzuführen. Dann geht es darum, die üblichen Transformationen aus den VBA-Skripts langsam in Funktionen Ihres Endpunkts zu migrieren.
Power-User erkennen vielleicht irgendwann, dass sie ihre eigenen odata-Endpunkte schreiben können, oder entscheiden sich vielleicht sogar, Excel komplett über Bord zu werfen, um direkt auf die Infrastruktur zuzugreifen.
Ich vermute, Sie müssen das Projekt finden, das mit dem geringsten Aufwand am wahrscheinlichsten davon profitiert, und darauf abzielen.
Du bist gegen eine Wand gefahren. Leider müssen Sie sich möglicherweise ändern, um mehr zu erreichen - entweder das Unternehmen oder was Sie tun.
Sie haben ein gutes System gebaut, aber niemand kann es benutzen. Dies ist ein typisches Missverhältnis zwischen einer technischen Person und den Benutzern.
Eine Lösung wäre, den Ansatz zu ändern. Die "Kunden" für Ihre Arbeit sind Ihre Mitarbeiter. Meiner Erfahrung nach ist es am besten, herauszufinden, welche Art von Lösung meine Kunden verwenden können, bevor ich anfange, etwas zu bauen. In diesem Fall klingt es so, als könnten die Kunden Lösungen verwenden, die auf Excel und VBA basieren, aber nichts anderes. Ja, VBA ist nicht so sauber wie Python, aber es kann trotzdem die Arbeit erledigen.
Gibt es eine Möglichkeit, das, was Sie bereits geschrieben haben, in VBA neu zu schreiben? Ich finde, dass es einen großen Unterschied in der Akzeptanz dessen macht, was ich tue, wenn ich den Leuten ein kurzes VBA-Makro gebe, das ihnen hilft. Wiederholen.
Sie befinden sich in einer schwierigen Situation, in der Sie im Grunde mit Fallschirm in ein Unternehmen gesteckt werden, um ihre alten manuellen Prozesse zu automatisieren, mit wenig oder keiner Unterstützung durch die Geschäftsleitung, wenig oder keiner Unterstützung durch Ihre Mitarbeiter und dem Wissen, dass ein früherer Versuch, diese Aufgabe zu erledigen endete mit einem Misserfolg.
Ihr Ziel, Ihre Mitarbeiter dazu zu bringen, Python zu lernen, ist gut, aber nicht kurzfristig; Verständlicherweise werden sie fragen, „was habe ich davon“, und eine Antwort von „vielleicht etwas reduzierter Arbeitsbelastung in 6 Monaten“ wird nicht befriedigend erscheinen.
Unterschätzen Sie auch nicht den Angstfaktor vor Änderungen des Status quo; Ihre Kollegen könnten besorgt sein, dass ihre nicht vorhandenen Programmierkenntnisse der Aufgabe nicht gewachsen sind, und das Management wird sie entlassen, weil sie nicht programmieren können. Diese Angst mag völlig unbegründet sein, aber sie kann ihr Urteilsvermögen unterschwellig beeinflussen, wenn es darum geht, sich zu engagieren.
Sie müssen also ein Vorzeigeprojekt erstellen, das zeigt, wie wunderbar und nicht bedrohlich Ihr Ansatz ist. Wählen Sie eine besonders mühsame manuelle Aufgabe aus, die im Allgemeinen von allen nicht gemocht wird, und automatisieren Sie sie. Kurzfristig müssen Sie die gesamte Codierung vornehmen, aber wenn die Benutzer nach Verbesserungen fragen, können Sie ihnen sanft vorschlagen, den Code unter Ihren wachsamen Augen zu ändern. Wenn Sie es schaffen, das Arbeitspensum einer Person zu verbessern, spricht sich das herum, und nach und nach werden andere Interesse zeigen - aber das wird leider eine ganze Weile dauern, und es wäre nicht verwunderlich, wenn Sie die Begeisterung für einen Job verlieren würden, der sich wie Waten anfühlt durch Sirup, und suchte ein Unternehmen auf, das für Ihre Talente empfänglicher war.
Philipp Kendall
Josch
David Gremlin
Josch
Josch
Helena
Job_September_2020
Benutzer132962
ArtUnbekannt
Lukas Sawczak
DrMrstheMonarch