Ich arbeite für eine Firma, die mehrere Sprachen unterstützt: COBOL, VB6, C # und Java.
Ich benutze diese Sprachen für meine Hauptarbeit, aber ich sehe mich oft damit konfrontiert, einige Nebenprogramme (z. B. Skripte) in Python zu programmieren, weil ich fand, dass es das beste Werkzeug für diese Art von Aufgabe ist.
Beispiel: Ein Analyst gibt mir eine komplexe CSV-Datei zum Auffüllen einiger DB-Tabellen, sodass ich sie mit Python analysieren und ein DB-Skript erstellen würde.
Was ist das Problem?
Das Hauptproblem, das ich sehe, ist, dass einige Teile dieser Quick & Dirty-Skripte langsam an Bedeutung gewinnen und:
- Mein Unternehmen unterstützt Python nicht
- Sie sind nicht versionskontrolliert (ich sichere sie auf andere Weise)
- Meine Mitarbeiter kennen Python nicht
Die Analysten haben sogar damit begonnen, sie in E-Mails zu referenzieren ("Starten des exportierenden Skripts ..."), sodass sie häufiger benötigt werden, als ich ursprünglich gedacht hatte.
Ich sollte hinzufügen, dass diese Skripte nur Dienstprogramme sind, die nicht Teil des Hauptprojekts sind. Sie helfen einfach dabei, einfache Aufgaben in kürzerer Zeit zu erledigen. Für meine eigenen kleinen Aufgaben helfen sie sehr.
Kurz gesagt, wenn ich eine Lotterie Gewinner waren in einem Unfall sein , müßten meine Mitarbeiter das Projekt am Leben ohne diese Skripte zu halten; Sie würden mehr Zeit damit verbringen, z. B. CSV-Fehler von Hand zu beheben.
Ist das ein häufiges Szenario? Mache ich etwas falsch? Was sollte ich tun?
quelle
Antworten:
Sie müssen die Situation formalisieren, da sie eigentlich nicht zu diesem Zeitpunkt hätte kommen sollen. Diese Dinge passieren jedoch, so dass Sie Ihrem Chef erklären müssen, dass Sie diese Skripte für den persönlichen Gebrauch erstellt haben, aber sie sind in eine größere Verbreitung "entkommen". Geben Sie zu (falls erforderlich), dass Sie schuld daran waren, dass Sie ihn nicht früher darauf aufmerksam gemacht haben.
Zumindest sollten die Skripte "nur für den Fall" der Quellcodeverwaltung unterzogen werden. Wenn Sie (aus welchen Gründen auch immer) nicht verfügbar sind, haben Ihre Mitarbeiter Zugriff auf die Skripte.
Dann müssen Sie entweder Ihren Chef davon überzeugen, dass Python die richtige Wahl ist, oder akzeptieren, dass Sie sie in einer unterstützten Sprache neu schreiben müssen. Wenn die Kosten für die Dokumentation der Skripte und die Schulung Ihrer Mitarbeiter in Python niedriger sind als die Kosten für das erneute Schreiben, können Sie sogar das Argument gewinnen.
quelle
Ich kann Ihnen keine vollständige Antwort geben, was Sie sollten tun. Ich kann nur einen einzigen Vorschlag machen, mit dem Sie beginnen können:
Checken Sie die Skripte in ein Repository ein, auf das alle (erforderlichen) Entwickler zugreifen können. Beachten Sie jedoch unbedingt, dass Sie diese Skripte zuerst für Ihren eigenen Zweck geschrieben haben, dh um eine Ihnen übertragene Aufgabe auszuführen. Fügen Sie dann hinzu, dass Sie diese Skripte nur einchecken, um anderen den Vorteil zu geben, sie zu verwenden.
Danach müssen Sie nur noch sehen, wie andere Leute darauf reagieren.
quelle
Ich habe bei meiner Arbeit ähnliche Probleme. Ich hörte "Was ist PHP?" vor einigen Jahren. Sie verstehen nichts außerhalb des MS-Stacks und möchten nichts lernen. Wenn Python das richtige Werkzeug für den Job ist, würde ich meinen Vorgesetzten nur davon erzählen und bereit sein, eine Menge Vergleiche anzustellen und zu erklären, warum Python die richtige Wahl war. Es wird frustrierend sein, aber ich denke, die meisten würden zustimmen, dass Python eine gute Wahl für die Textmanipulation ist.
quelle
Das erste, was Sie tun müssen, ist mit dem Team und Ihrem Chef zu sprechen. Im Moment haben Sie einen riesigen Lkw-Faktor (wenn Sie von einem Lkw getroffen würden, wäre niemand sonst in der Lage, Ihre Skripte zu pflegen). Es scheint wichtig zu sein, Skripte für diese Aufgaben zu haben, aber es ist auch wichtig, dass jeder, der diese Skripte bearbeiten und warten muss. Sie müssen erläutern, wie die Verwendung von Python zu einem Mehrwert führt - wie Zeit, Mühe, Ressourcen, Geld usw. gespart werden.
Zweitens, bringen Sie es in die Versionskontrolle des Projekts. Jetzt. Nichts, was Sie für ein Projekt produzieren, sollte sich jemals außerhalb der Versionskontrolle dieses Projekts befinden.
Seien Sie auf Gegenreaktionen vorbereitet - Menschen mögen normalerweise keine Veränderungen. Es war eine schlechte Idee, allein mit nicht unterstützten und unbekannten (für das Team / die Organisation) Technologien loszulegen, ohne zumindest die anderen Entwickler zu konsultieren und die beste (nicht nur für Sie, sondern für das Projekt) Methode zur Automatisierung dieser Aufgaben für alle zu finden benutzen.
Ich denke, das ist wahrscheinlich ein guter Fall von
Es hört sich so an, als hätten Sie den Job erledigt, aber Sie werden sich jetzt mit den Auswirkungen befassen müssen.
quelle
Meine Faustregel lautet:
Alles, was sich möglicherweise auf die Arbeit anderer auswirkt, sollte so schnell wie möglich mit Ihren Kollegen und Vorgesetzten besprochen werden.
Aber wenn es für Sie und Sie alleine ist, können Sie alles tun, um die Arbeit zu erledigen , solange es weder die Infrastruktur noch die Sicherheit Ihres Unternehmens beeinträchtigt.
quelle
Sie haben zwei Möglichkeiten:
Je nach Organisation kann die Nummer 1 eine Herausforderung sein (schließlich vermeidet die Einschränkung der Liste der Standardtechnologien eine kombinatorische Explosion der Anforderungen an Schulungs- und Supportfähigkeiten).
Die zweite Option würde Ihre Fähigkeiten verbessern und es könnte sein, dass Sie Drittanbieter (und wahrscheinlich Open Source mit kommerziell freundlichen Lizenzen) finden können, um einen Teil der harten Arbeit zu erledigen. ZB sollte eine Suche nach "LINQ to CSV" einige nützliche Treffer bringen.
Übrigens, die Entwicklertools von VB6 (IDE, Compiler) werden nicht unterstützt (nicht einmal Sicherheitsupdates), sodass der Standard wahrscheinlich trotzdem aktualisiert werden muss. (Die VB6-Laufzeit wird als Teil der aktuellen Windows-Versionen unterstützt und ist in der Installation enthalten.) Dies könnte möglicherweise als Hilfestellung bei der Annäherung an Nummer 1 dienen: Das Standard-Toolset muss aufgrund von Lieferantenabhängigkeiten ein sich bewegendes Ziel erreichen.
quelle
Wenn Sie eine Aufgabe erhalten und nur so rechtzeitig erledigt werden können, haben Sie keine wirkliche Wahl. Ich halte es für ratsam, die Verantwortlichen wissen zu lassen, was Sie tun. Sie sollten die erforderliche Quellcodeverwaltung nicht verlassen (es sei denn, sie funktioniert überhaupt nicht). Testen und Dokumentieren.
Manchmal muss ein Unternehmen einem einzelnen Entwickler erlauben, sich mit einem neuen Entwicklungsbereich zu befassen. Leider gelangt der Code möglicherweise schneller in die Produktion als jeder andere.
quelle
Nun, ich muss zugeben, dass das Arbeiten mit 20 verschiedenen Sprachen VIEL stinkt.
Sie haben ein Bash-Skript, das ein Python-Skript aufruft, das ein Perl-Skript aufruft, das eine Java-Binärdatei aufruft, die eine DLL aufruft.
Dann trifft etwas den Fan in der gesamten Pipeline, und Sie gehen durch - WTH IS DAT KODEZ? Vor allem in Perl ... Und das Debuggen von einfachen, beispielsweise Codierungsproblemen, wird zu einem albtraumhaften Durcheinander. Sie können nicht 5 von 7 Sprachen effektiv debuggen, und es wird zu einem echten Schmerz.
Oder Sie müssen eine einfache Änderung hinzufügen, aber Sie erstellen 10 Fehler, weil Perl Fallstricke, Java Fallstricke usw. hat.
Und diese Sprachkette von 7+ beginnt Schritt für Schritt.
Treten Sie vorsichtig, hier Drachen sein ...
quelle
Wenn Sie diese Tools für sich selbst verwenden, können Sie alles tun, was Sie produktiver macht.
Tatsächlich sollten Sie ermutigt werden , solche Werkzeuge herzustellen und zu verwenden, die letztendlich zu einer Erweiterung Ihrer Arme werden.
Schließlich werden sie erkennen, wie wichtig es ist, über solche Tools zu verfügen, unabhängig von der Sprache, in der sie geschrieben sind , und beginnen, sie in ihrer Arbeitsumgebung umzusetzen.
quelle
Wenn Sie aufgefordert werden, Code zu schreiben, der etw. Tut, wird normalerweise die Sprache angegeben oder impliziert (die Regel in Unternehmen).
Wenn Sie jedoch eine einmalige Aufgabe erledigen müssen, z. B. das Importieren von Daten in die Datenbank, können Sie das Tool auswählen, das Ihrer Meinung nach am besten passt, da Sie etwas Richtiges und Schnelles tun müssen und das Ergebnis wichtig ist. nicht die Werkzeuge.
Also würde ich diese Regel anwenden:
1) Wenn Sie aufgefordert werden, eine Aufgabe wie den Datenimport auszuführen, verwende ich die Tools / language / etc. das wäre für mich am bequemsten und für die aufgabe am schnellsten.
2) Wenn Sie aufgefordert werden, ein Tool für bestimmte Aufgaben zu schreiben, z. B. zum Importieren von Daten, würde ich mit dem Manager besprechen, welche Sprache / welches Tool verwendet werden soll (mit Ausnahme der Sprache, die standardmäßig verwendet wird, z. B. wenn das Unternehmen [fast] verwendet ] nur Java).
3) Wenn die Aufgabe einmalig zu sein schien, aber wiederholbar wurde, sollten Sie mit dem Manager sprechen, um sie von 1) auf 2) zu ändern und von Ihrer bevorzugten auf die von der Firma unterstützte Sprache umzuschreiben.
quelle
Ich nehme an, Sie sind nicht in der Lage zu entscheiden (oder Sie würden die Frage nicht stellen). Was hält Ihr Chef von diesem Problem? Sie sollten mit ihm sprechen und versuchen, ihn davon zu überzeugen, dass Python der richtige Weg ist ...
Natürlich geht es darum, was passieren wird, wenn Sie gehen. Nicht in der Lage zu sein, den Code zu pflegen, ist wahrscheinlich ein Grund, der ausreicht, um Python nicht mehr zu verwenden. Oder Sie können Ihre Kollegen für diese Sprache ausbilden ...
quelle