Ich bin ausgebildeter Biologe und Mathematiker. Meine Aufgabe ist es, algorithmische und konzeptionelle (manchmal UX) Lösungen für Probleme in einer Laborumgebung (typischerweise Optimierungskram, manchmal Datenanalyse) zu entwickeln, um unserem Projekt zum Erfolg zu verhelfen. Ich bin seit ungefähr 2 Jahren im Unternehmen, ich mag meinen Job, weil ich viele verschiedene Dinge tun kann.
Die Problematik:
a) Da ich diejenige mit dem größten Fachwissen über das Geschäft der Kunden bin, ist dies nicht das einzige, was ich tue, ich mache auch viel Projektmanagementarbeit (Anforderungsanalyse, Schreiben anderer Spezifikationen, Kommunikation mit dem Kunden, ... ) ==> Ich kann selten mehr als ein paar Stunden mit einer Sache verbringen.
b) Ich kenne R, Matlab und sehr wenig C (2 Universitätskurse). Meine Firma arbeitet mit C#. Ich kann Code also weder einfach testen noch selbst schreiben – er muss durch einen Entwickler gehen. ==> Das führt zu Missverständnissen, die Zeit kosten.
c) Es ist weder eine Option, nur Projektmanagement zu werden, noch 100% Entwickler zu werden, da meine anderen Fähigkeiten und Kenntnisse anderswo sehr nützlich sind. Außerdem bin ich derzeit der einzige „echte“ Mathe-Typ im Unternehmen.
Aktuelle Situation: Ich löse das Problem und schreibe einen Prototyp in R. Jemand anderes macht die Implementierung in C#.
Gut: Ich komme schnell mit einer testbaren Lösung.
Schlecht: Entwickler dokumentieren oder arbeiten nicht gerne mit zu detaillierten Spezifikationen und haben Schwierigkeiten zu beurteilen, ob es wie erwartet funktioniert, ich kann Code nicht verstehen, Code wird auf eine Weise geschrieben, die es schwierig macht, sich an neue Probleme anzupassen. ==> Viel Zeit verloren und ich und die Entwickler unzufrieden.
Wie kann ich die Situation für alle verbessern? Meine Ideen:
Finden Sie einen Weg, um Entwickler davon zu überzeugen, dass gut dokumentierter Code und Testzugriff für mich nicht darauf zurückzuführen sind, dass ich jeden kleinen Schritt kontrollieren möchte, sondern dass dies eine Art der Zusammenarbeit ist.
C# lernen, damit ich bestimmte Teile der Software selbst schreiben kann (dauert laaange Zeit, schätze ich)
C# gerade gut genug lernen, damit ich Code verstehen und Missverständnisse frühzeitig erkennen kann (möglicherweise nicht effizient)
Lernen Sie etwas wie Python, das näher an dem ist, was ich weiß (schneller), verbinden Sie es mit der restlichen Software und stellen Sie es zusammen mit C#-Teilen bereit. Wenn es leistungskritisch ist (sehr selten), übergeben Sie diese Teile an echte Entwickler.
beten Sie, dass wir bald Cloud-Lösungen verkaufen und weiterhin alles in R machen
[Ihre Idee hier]
Meine Frage an Sie: Was ist Ihrer Meinung nach das Beste, um die Situation zu entschärfen? Ich möchte unbedingt im Unternehmen bleiben und möchte, dass wir erfolgreich sind. Ich kann auf etwas Unterstützung vom Chef zählen.
Ich würde vorschlagen, dass Sie mit dem Entwicklermanager zusammenarbeiten, um Ihre Bedürfnisse mit den Fähigkeiten der Entwickler in Einklang zu bringen, über die sie derzeit verfügen.
Höchstwahrscheinlich werden die Entwickler wahrscheinlich nicht von C#, zu R oder Python oder zu BDD wechseln wollen und ehrlich gesagt auch nicht müssen. Entwickler, die mit einem bestimmten Stack vertraut und vertraut sind, möchten normalerweise nicht zu einem anderen wechseln.
Ich denke, Ihre Bedürfnisse können von den Leuten erfüllt werden, die Sie haben, aber Sie müssen eine Beziehung zu den Entwicklern und ihrem Manager aufbauen , um dies zu erreichen.
Zusammenfassend denke ich, dass dies überhaupt kein technisches Problem ist, sondern eher ein Mangel an Teamwork und/oder Kommunikation.
Dies ist ein perfekter - ehrlich gesagt einfach perfekter - Zeitpunkt, um BDD zu verwenden.
Sie wissen, was der Code tun soll. Sie können Code schreiben - verwenden Sie Cucumber. Das ist jetzt der Link
Schauen Sie es sich an – im Grunde können Sie damit die Schritte für einen erfolgreichen Test definieren, und dann geht der Entwickler los und schreibt Code, der sich in diese Definition einklinkt.
Sie können dann sicher sein, dass alles, was die Entwickler sich ausgedacht haben, funktioniert. Es ist auch genau das, was Cucumber zu tun vorgibt (nur tut es das nie, weil Geschäftsleute weder Code schreiben noch Dinge mit einer hässlichen Benutzeroberfläche verwenden - und wer kann ihnen die Schuld geben?)
Ich weiß nicht, ob ein Gurkenport für "R" existiert, das wäre nett, Sie könnten die eine Gurkenspezifikationsdatei haben und dann beide Codebasen dagegen testen - aber ich bin sicher, Sie könnten Ihre Leute dazu bringen, einfach "anzurufen " Ihren R-Code aus C# und verwenden Sie diesen als Eingabe für den Cucumber-Code.
Jane S