Ist es okay eine Sprache verwenden, die nicht von Ihrem Unternehmen unterstützt wird, die für einige Aufgaben?

softwareengineering.stackexchange https://softwareengineering.stackexchange.com/questions/1750

Frage

Ich arbeite für ein Unternehmen, dass unterstützt mehrere Sprachen:COBOL, VB6, C# und Java.
Ich benutze diese Sprachen für meine primäre Arbeit, aber ich finde mich oft zu codieren einige kleinere Programme (z.B.Skripten) in Python, weil ich fand, dass es das beste Werkzeug für diese Aufgabe.

Zum Beispiel:Ein analyst gibt mir eine komplexe CSV-Datei zum Auffüllen einiger DB-Tabellen, so würde ich die Verwendung von Python zum analysieren und erstellen Sie eine DB-Skript.

Was ist das problem?
Das Hauptproblem, das ich sehe, ist, dass einige Teile dieser quick & dirty-Skripte sind langsam an Bedeutung gewinnt und:

  1. Mein Unternehmen hat keine Unterstützung für Python
  2. Sie sind nicht versioniert (I sichern Sie Sie auf andere Weise)
  3. Meine Mitarbeiter nicht wissen, Python

Die Analysten haben sogar begonnen, auf Sie in der E-Mail ("starten Sie das Skript, dass die Exporte..."), so dass Sie gebraucht werden, oft mehr, als ich anfangs dachte.

Ich sollte hinzufügen, dass diese Skripte sind nur Dienstprogramme, die nicht Teil des Haupt-Projekts;Sie sind einfach Hilfe zu bekommen triviale Aufgaben in weniger Zeit erledigt.Für meine eigene kleine Aufgaben, die Sie helfen, eine Menge.

Kurz gesagt, wenn ich ein Lotterie-Gewinner werden in einem Unfall, meine Mitarbeiter würden halten müssen, um das Projekt am Leben, ohne diese Skripts;Sie würde verbringen mehr Zeit bei der Festsetzung der CSV-Fehler von hand zum Beispiel.

Ist dies ein häufiges Szenario?Mache ich etwas falsch?Was soll ich tun?

War es hilfreich?

Lösung

Sie brauchen, um die situation zu formalisieren, wie es sollte eigentlich nicht haben zu diesem Punkt gekommen sind.Jedoch, diese Dinge passieren, so müssen Sie erklären Sie Ihrem Chef, dass Sie diese Skripte erstellt für den persönlichen Gebrauch, aber Sie habe die "Flucht" in die breitere Auflage.Zugeben (falls erforderlich), dass Sie die waren Schuld für nicht bringt dies, um seine Aufmerksamkeit zu früher.

Zumindest sollten die Skripts gesetzt werden, unter source-control "just in case" - zumindest dann, wenn Sie nicht verfügbar sind (aus welchem Grund auch immer), Ihre co-Arbeiter haben Zugang zu den Skripten.

Dann müssen Sie entweder überzeugen Sie Ihren Chef, dass Python ist der Weg zu gehen für diese oder akzeptieren, dass Sie gehen zu müssen, zu re-schreiben Sie in einer unterstützten Sprache.Wenn die Kosten für die Dokumentation des Skripts und Schulung Ihrer Mitarbeiter in Python ist niedriger als die der neu schreiben, könnte man auch den Streit gewinnen.

Andere Tipps

Ich kann Ihnen keine vollständige Antwort darauf geben, was Sie sollte tun. Ich kann nur einen einzelnen Vorschlag geben, mit dem Sie beginnen können:

Überprüfen Sie die Skripte in einem Repository, auf das alle (erforderlichen) Entwickler zugreifen können. Machen Sie sich jedoch sehr sicher, dass Sie diese Skripte zuerst für Ihre geschrieben haben besitzen Zweck, dh eine Aufgabe ausführen, die Sie erhalten hatten. Fügen Sie dann hinzu, dass Sie nur in diesen Skripten einchecken, um anderen den Vorteil zu ermöglichen, sie zu nutzen.

Danach müssen Sie nur sehen, wie andere Leute darauf reagieren.

Ich bin auf ähnliche Probleme gestoßen, bei denen ich arbeite. Ich hörte "Was ist PHP?" vor einigen Jahren. Sie verstehen oder kümmern sich nicht darum, etwas außerhalb des MS -Stacks zu lernen. Wenn Python das richtige Werkzeug für den Job ist, würde ich meinen Vorgesetzten nur davon erzählen und für eine Menge Vergleich und 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.

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 wurden, kann niemand sonst Ihre Skripte leicht verwalten können). Es sieht so aus, als ob Skripte für diese Aufgaben wichtig sind, aber es ist auch wichtig, dass jeder, der diese Skripte bearbeiten und pflegen muss. Sie müssen erklären, wie die Verwendung von Python einen Mehrwert erhöht - wie es Zeit, Mühe, Ressourcen, Geld usw. spart.

Zweitens, bringen Sie es in die Versionskontrolle des Projekts. Jetzt. Nichts, was Sie für ein Projekt produzieren, sollte jemals außerhalb der Versionskontrolle dieses Projekts liegen.

Seien Sie auf Rückschläge vorbereitet - Menschen mögen normalerweise keine Veränderung. Ein eigenständiges Auslaufen von nicht unterstützten und unbekannten (für Team/Organisation) Technologien war eine schlechte Idee, ohne zumindest die anderen Entwickler zu konsultieren und die beste Art (für das Projekt, nicht nur Sie) zu ermitteln, um diese Aufgaben für alle zu automatisieren benutzen.

Ich denke, das ist wahrscheinlich ein guter Fall von

Es ist einfacher, Vergebung zu bitten, als die Erlaubnis zu erhalten.

Es hört sich so an, als hätten Sie den Job erledigt, aber Sie müssen sich jetzt mit den Auswirkungen befassen.

Meine Daumenregel lautet:

Alles, was möglicherweise die Arbeit anderer beeinflusst, sollte so schnell wie möglich mit Ihren Kollegen und Vorgesetzten besprochen werden.

Aber, Wenn es für Sie und Sie allein ist, solange es die Infrastruktur oder Sicherheit Ihres Unternehmens nicht schädigt, Sie können es tun, was Sie erledigen möchten.

Sie haben zwei Optionen:

  1. Mach es zu einem Standard
  2. Übersetzen Sie in ein Standardwerkzeug

Abhängig von der Organisation kann Nr. 1 eine Herausforderung sein (schließlich vermeidet die Liste der Standardtechnologien eine kombinatorische Explosion der Schulungs- und Unterstützungsqualitätsanforderungen).

Die zweite Option würde Ihren Fähigkeiten helfen, und Sie können möglicherweise Dritte (und wahrscheinlich Open Source mit kommerziell freundlichen Lizenzen) finden, um einige der harten Arbeiten zu erledigen. ZB eine Suche nach "linq to csv" sollte einige nützliche Treffer erzielen.

BTW, Entwickler -Tools von VB6 (IDE, Compiler), wird nicht unterstützt (nicht einmal Sicherheitsfixes), sodass dies wahrscheinlich ohnehin aktualisiert werden muss. (Die Laufzeit von VB6 wird im Rahmen der aktuellen Windows -Versionen im Rahmen der Installation unterstützt. Dies könnte möglicherweise als Helfer für Ansatz Nr. 1 verwendet werden: Das Standard -Toolsatz muss aufgrund von Lieferantenabhängigkeiten ein bewegendes Ziel erhöhen.

Wenn Sie eine Aufgabe erhalten und die einzige Möglichkeit haben, sie pünktlich zu erledigen, haben Sie keine Wahl. Ich denke, es ist ratsam, diese Verantwortlichen mitzuteilen, was Sie tun. Sie sollten nicht die erforderliche Quellensteuerung (es sei denn, sie funktioniert überhaupt nicht funktioniert?) Testen und Dokumentation.

Manchmal muss ein Unternehmen einen einzigen Entwickler möglicherweise in einen neuen Entwicklungsbereich untersuchen. Leider kann der Code schneller in die Produktion gelangen, als jeder andere auf dem neuesten Stand sein kann.

Nun, ich musste zugeben, dass die Arbeit mit 20 verschiedenen Sprachen viel stinkt.

Sie haben ein Bash -Skript, das Python -Skript aufruft, das Perl -Skript aufruft, das Java Binary aufruft, das C Dll ...

Dann trifft etwas den Lüfter in der gesamten Pipeline, und Sie gehen durch - WTH IS DAT Kodez? Besonders in Perl ... und das Debuggen von einfacher Codierungsprobleme wird zu einem albtraumhaften Chaos. Sie können 5 von 7 Sprachen nicht 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 Gotchas, Java Gotchas usw. hat.

Und diese 7+ Sprachkette beginnt einen Schritt nach dem anderen.

Treten Sie vorsichtig vor, hier werden Drachen ...

Wenn dies Tools sind, die Sie für sich selbst verwenden, können Sie alles tun, was Sie produktiver macht.

Eigentlich du sollte 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, solche Werkzeuge zu haben, Egal in welcher Sprache sie geschrieben sind, und wird beginnen, in ihrem Arbeitsumfeld umzusetzen.

Wenn Sie angewiesen werden, Code zu schreiben, die STH to STH., Wird die Sprache normalerweise angegeben oder impliziert (die Regel in Unternehmen).

Wenn Sie jedoch eine One-Shot-Aufgabe erledigen müssen, z. B. Daten in DB importieren, können Sie das Tool auswählen, das Ihrer Meinung nach am besten zu den besten geeignet ist, da Sie etwas Richtiges und schnelles tun müssen, und das Ergebnis ist wichtig. nicht die Werkzeuge.

Also würde ich diese Regel verwenden:

1) Wenn Sie angewiesen werden, einige Aufgaben wie den Datenimport zu erledigen, würde ich die Tools/Sprache/usw. verwenden. Das wäre für mich am bequemsten und wäre am schnellsten für die Aufgabe.

2) Wenn Sie angewiesen werden, Tools mit einer Aufgabe zu schreiben, z. B. einige Daten importieren, würde ich diskutieren, welche Sprache/Tool mit dem Manager verwendet werden soll (mit Ausnahme, wenn ich Sprache verwende, die implizit Standard ist, beispielsweise wenn das Unternehmen [fast [fast) verwendet ] nur Java).

3) Wenn die Aufgabe One-Shot zu sein schien, aber sie wiederholbar wurde, sollten Sie mit dem Manager sprechen, um sie von 1) auf 2) zu ändern und von Ihrem bevorzugten zu Unternehmen unterstützten Sprache neu zu schreiben.

Ich nehme an, dass Sie nicht in der Lage sind, sich zu entscheiden (oder Sie würden die Frage nicht stellen). Was denkt Ihr Chef über dieses 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 aufrechtzuerhalten, ist wahrscheinlich ein Grund, der gut genug ist, um die Verwendung von Python nicht mehr zu verwenden. Oder Sie können Ihre Kollegen zu dieser Sprache aufklären ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
scroll top