Wäre es für einen Informatik-Doktoranden ethisch vertretbar, einen Assistenten (Programmierer) einzustellen?

Ich habe mich gefragt, ob es für einen Doktoranden im Bereich Informatik ethisch vertretbar wäre, einen Programmierer in einem bestimmten Bereich einzustellen. damit er sich mehr auf den algorithmischen oder mathematischen Teil der Arbeit konzentrieren konnte. Wäre das etwas ethisches zu tun? Soll der Doktorand diesen Assistenten als Co-Autor in die Artikel aufnehmen?

Ethik beiseite, es ist ein bisschen abnormal. Üblicherweise wird in der Wissenschaft eine solche Situation durch Zusammenarbeit gelöst . Ich würde dringend empfehlen, dass Sie sich einen anderen Akademiker suchen, mit dem Sie zusammenarbeiten können, anstatt die Arbeit zu vermieten – das erspart Ihnen, das Geld auszugeben, und Sie erhalten den Bonus einer Networking-Möglichkeit. In der Tat doppelte Punkte, da Sie der Urheber des Projekts sind und diese Gelegenheit anderen zur Verfügung stellen - die Wissenschaft ist voll von talentierten Menschen, die nur darauf warten, dass ihnen jemand ein neues Problem stellt.
Als Programmierer habe ich das Gefühl, dass dies mit academia.stackexchange.com/questions/37370 zusammenhängt . Wenn Sie befürchten, dass Ihr Code schrecklich sein wird, Sie ihn aber trotzdem veröffentlichen möchten, dann könnte es eine sinnvolle Investition sein, jemanden einzustellen, der ihn nicht schrecklich machen kann. Eine Frage, wie viel es Ihnen wert ist, einen nicht schrecklichen Code im Vergleich zu einem Code zu haben, den Sie selbst geschrieben haben. Angesichts der Tatsache, dass die am besten bewertete Antwort tatsächlich besagt: "Ihr schrecklicher Code ist in Ordnung, es hat keinen großen Vorteil, dass er nicht schrecklich ist", sollte er vielleicht nicht viel wert sein :-)

Antworten (6)

Ich denke nicht, dass es von Natur aus unethisch ist, dies zu tun. Wenn alle relevanten Parteien davon wissen und Sie die Arbeit dieser anderen Person gewissenhaft anerkennen, dann sehe ich kein spezifisches Problem.

Ob es ratsam ist, ist eine andere Frage ... und die sollten Sie auf jeden Fall Ihrem Berater stellen. Ich muss sagen, dass es sich für mich nicht nach einer so guten Idee anhört. Ihre Abschlussarbeit ist für Sie zu tun ... fast per Definition. Es ist völlig in Ordnung, Hilfe von anderen für Ihre Abschlussarbeit zu bekommen, und einige Leute sind bessere Programmierer als andere (selbst in CS, nehme ich an), also ist es eigentlich eine gute Idee, ein paar Hinweise von einem Freund zu bekommen. Aber jemanden zu bezahlen , der einen Teil Ihrer Abschlussarbeit macht, klingt für mich einfach nicht gut. Entweder ist die Programmierung ein wichtiger Teil Ihrer Abschlussarbeit oder nicht. Wenn ja, sollten Sie es selbst tun. Wenn dies nicht der Fall ist, müssen Sie es vielleicht gar nicht oder nicht in dem Maße tun, wie es ein externer Fachmann tun würde.

Es stellt sich auch die Frage, welchen Eindruck diese Untervergabe auf andere machen würde. Vielleicht sind die kulturellen Normen in Ihrem Fach ganz anders als bei mir (wieder: fragen Sie Ihren Betreuer), aber ich hätte einen eher negativen Eindruck von einem Doktoranden, der dies getan hat: Sie scheinen nicht sehr engagiert für ihre eigene Arbeit zu sein.

Zusatz : Um es klarzustellen, ich interpretiere die Frage so, dass der Doktorand selbst die Einstellung vornimmt, dh dass dies seine Idee ist und er seine eigenen Mittel verwendet. (Wenn seine Universität ihm Geld gibt und ihn einfach bittet, jemanden für die Zusammenarbeit auszuwählen, dann wird sogar die Frage „Ist es ethisch vertretbar?“ weniger plausibel.)

In Bezug auf den Verdacht, dass dies keine gute Idee ist, hoffe ich, dass ich klargestellt habe, dass dies meine persönliche Meinung ist, mit Erfahrungen aus einem Bereich (Mathematik), der ziemlich eng mit Informatik verwandt ist, aber nicht unbedingt identisch ist. Wie gesagt, das OP sollte sich diesbezüglich an seinen Berater wenden. Aber für das, was es wert ist, fällt es mir schwer zu glauben, dass die Reaktion lauten wird: "Klar, gib dein Geld aus." Obwohl es seitens des OP nicht unethisch ist , scheint es, sagen wir, suboptimal, wenn sowohl der Berater als auch der Student der Meinung sind, dass dies der beste Weg ist, um fortzufahren.

Wissenschaftliche Hilfskräfte sind weit verbreitet. In manchen Dingen sind sie eine Notwendigkeit. Und nachdem ich schrecklichen Recherchecode erlitten hatte, wünschte ich mir, mehr Leute hätten professionelle Entwickler eingestellt, um zumindest einen Teil ihres Designs zu übernehmen.
Das größere Problem ist, dass die Wissenschaft nicht entschieden hat, dass Codierung 1) schwierig und 2) eng mit der Wissenschaft verbunden ist. Klingt so, als wäre das OP schlau genug, dies zu erkennen, und dies ist ihr Lösungsversuch.
@Davidmh: Wenn die Abteilung oder Universität Forschungsassistenten für ein Projekt einstellen möchte (vermutlich eines, das über die Abschlussarbeit des OP hinausgeht, aber vielleicht haben einige Doktoranden ihre eigenen bezahlten Assistenten), wäre das in Ordnung. Das OP, das sein eigenes Geld ausgibt, um einen Außenstehenden einzustellen, ist eine andere Sache. Mein wichtigster Rat war, ihren Berater zu fragen, aber ich finde es schwer zu glauben, dass die Antwort des Beraters sein wird: "Sicher, geben Sie Ihr eigenes Geld für dieses Projekt aus".
@PeteL.Clark Ich stimme zu, dass es eine sehr schlechte Idee ist, es aus dem eigenen Geld des OP zu machen. Ich wollte aber darauf hinweisen, dass es nicht immer möglich oder unbedingt ratsam ist, die ganze Arbeit selbst zu erledigen.
@Davidmh Ich denke, dass man nicht alles selbst machen sollte, ist ziemlich allgemein akzeptiert. Ich denke, die Hauptfrage hier ist, ob es eine gute Idee ist, einen Teil Ihrer (!) Promotionsarbeit an einen Auftragnehmer auszulagern.
@AAA, ich glaube nicht, dass die Wissenschaft im Dunkeln darüber ist, wie schwierig das Codieren ist. Die Sache ist, wenn etwas schwierig ist, kann ein Profi viel Geld dafür verlangen. Doktoranden hingegen sind billig.
@Shep ja zu denken, dass der Student einen guten Job macht, ist nur im Dunkeln darüber, wie schwierig das Codieren ist. Ein Profi kann es billiger machen als die Horde von Studenten, die Sie einstellen, um es schlecht zu machen, aber niemand merkt, dass es schlecht gemacht wird, weil das die Norm ist ...
Vielleicht sollte dies eine eigene Frage sein, aber: Pete, ich hatte darüber nachgedacht, dass einer meiner Doktoranden und ich eine REU/UROP beaufsichtigen könnten, um eine Reihe von Berechnungen mit algebraischer Geometrie zu automatisieren. Sie macht sie derzeit von Hand. Es ist nicht trivial, dass diese Berechnungen überhaupt endlich sind – das ist ihr erstes Ergebnis. Sie hat mir auch schon interessante Muster in den handberechneten Daten gezeigt, wo mehr Daten hilfreich wären. Ich dachte, dass es für sie auf dem Arbeitsmarkt nur gut aussehen würde, wenn sie eine REU betreut und nicht codiert hat. Glauben Sie, dass eine beträchtliche Anzahl von Schulen anderer Meinung wäre?
@David: Ich habe so oder so keine wirklich starken Gefühle dazu. Ich nehme an, dass ich ohne konkrete Beweise für das Gegenteil zu der Annahme neige, dass diejenigen, die REUs beaufsichtigen, „wirklich hinter“ dem stehen, was aus den REUs herauskommt. Wenn Ihre Studentin also eine REU betreut hat und Ihr Schreiben ihre Beiträge zum Projekt dokumentiert, dann klingt das für mich gut.

Sicher, aber ich bezweifle, dass Sie es sich leisten können.

Mal sehen, welche Optionen es gibt:

  • Sie können einen Teilzeitstudenten einstellen, um einen Teil Ihres Codes zu schreiben, aber die Chancen stehen gut, dass Sie mehr Zeit damit verbringen werden, ihre Fehler auszugraben und ihnen beizubringen, wie es dauern würde, den Code selbst zu schreiben. Wahrscheinlich nicht wert. 1

  • Oder Sie könnten einen echten Programmierer bekommen , aber ein guter professioneller Programmierer kostet viel mehr als ein Doktortitel. Studenten verdient, und wahrscheinlich sogar mehr als sie kosten (in den USA nimmt die Universität für jeden Doktoranden eine enorme Kürzung des Stipendiums, die ungefähr dem Stipendium des Studenten entspricht). Wahrscheinlich lohnt es sich nicht, es sei denn, Sie sind unabhängig reich.

    Erschwerend kommt hinzu, dass selbst ein professioneller Softwareentwickler nicht in der Lage ist, Ihre Gedanken zu lesen. Ihre Aufgabe ist es, extrem große Systeme mit vielen beweglichen Teilen handhabbar zu machen. Als Informatik Ph.D. Sie konzentrieren sich wahrscheinlich stärker auf eine bestimmte Komponente, die Sie gut genug verstehen müssen, um den Code selbst zu schreiben.

In beiden Fällen klingt es nicht nach einem sehr guten Geschäft für Sie.


1 Beachten Sie, dass dies nur zutrifft, wenn Ihr Endziel einfach darin besteht, das eigene Programmieren zu vermeiden. Andererseits sind Beraten und Betreuen äußerst wertvolle Fähigkeiten, und als Akademiker besteht Ihre Aufgabe nicht nur darin, Ihre Arbeit zu erledigen, sondern das Feld als Ganzes zu unterstützen. Indem Sie Studenten einstellen, tun Sie möglicherweise mehr für das Fachgebiet, als Sie jemals durch die Einstellung eines Fachmanns tun könnten, und zukünftige Arbeitgeber werden dies zur Kenntnis nehmen. Wenn Sie sie als eigenständige Forscher behandeln, haben sie möglicherweise einige wertvolle Erkenntnisse, aber Ihre Frage bezog sich speziell darauf, sie nur zum Schreiben von Code einzustellen.

+1 für die Erwähnung des Kostenproblems. Ein Programmierer auf Industrieebene (selbst im Anfängerstadium) verdient erheblich mehr Geld als ein Doktorand. Wenn der Programmierer jedoch von der Institution oder durch das Beraterstipendium bezahlt wird, ist dies möglicherweise kein solches Problem.
Als Entwickler kann ich bestätigen, dass wir mehr als Doktoranden machen.
@AbbasJavanJafari, es stimmt, dass ein Stipendium das Gehalt eines Programmierers beinhalten könnte. In der Praxis habe ich es nicht oft gesehen, wahrscheinlich weil (außerhalb des Falles einer riesigen Forschungsgruppe) sich die Förderagentur fragen wird, warum sie das doppelte Gehalt eines Doktoranden zahlen sollten, um die Effizienz eines Doktoranden um 50% zu verbessern. Sie würden mehr Ergebnisse sehen, wenn sie zwei weitere Doktoranden einstellen würden. Außerdem wird ein Großteil des Stipendiums angeblich für "Bildung" bezahlt, nicht für professionelle Software.
@Shep, ich stimme zu, es ist höchst unwahrscheinlich, es sei denn, es handelt sich um ein großes branchenbezogenes Projekt und die Programmierung spielt eine wichtige Rolle. Andernfalls ist es äußerst schwierig, andere davon zu überzeugen, Sie für die Einstellung zusätzlicher Hilfe zu bezahlen, wenn sie Sie für den Job bezahlen, und wenn Sie es nicht tun können, sollten sie vielleicht jemand anderen finden.
@itcouldevenbeaboat: Als ehemaliger Doktorand kann ich schmerzlich bestätigen, dass wir weniger verdienen als Softwareentwickler! Wehe uns etc...
Einige Studenten sind besser als viele echte Programmierer.
Ich muss sagen, es ist eine Ehre, von @PeterShor herabgestimmt zu werden. Ich würde zustimmen, dass ich Studenten gegenüber ein wenig abweisend war, aber ich habe noch nie viel Erfolg gesehen, wenn Forscher sie als Werkzeuge behandeln, um "einfach den Code zu schreiben". Als eigenständige Forscher würde ich Ihnen zustimmen.

Ich skizziere, warum ich es für ethisch vertretbar halte und stelle dies dem in der Frage beschriebenen Fall gegenüber . . Außerdem antworte ich mit einer Perspektive aus Deutschland.

tl;dr: Ja, es ist ethisch vertretbar und wird routinemäßig durchgeführt.

Die oben verlinkte Frage stellt explizit eine ähnliche Frage aus Sicht eines Studenten. In dieser Phase der Ausbildung gelten, wie auch in RoboKarens Antwort darauf hingewiesen wird , bestimmte Einschränkungen (möglicherweise normalerweise) (und in vielen Fällen gelten weiterhin bis zu einem Master-Abschluss):

  • Es wird erwartet, dass die Studierenden selbstständig arbeiten.
  • Die Aufgaben sind angemessen "low-level", so dass es realistisch ist und erwartet wird, dass alles von einer Person erledigt wird.
  • Die Aufgaben zielen wahrscheinlich darauf ab, Fähigkeiten zu demonstrieren, wobei der Schwerpunkt weniger auf der Herstellung eines realen Produkts liegt. (Das heißt nicht, dass z. B. Bachelorarbeiten keine beeindruckende kleine Software hervorbringen können. Aber im Allgemeinen entsteht eher ein Prototyp als ein marktfähiges, vollwertiges Produkt.)

Mit Eintritt in die Promotion ergeben sich jedoch einige Änderungen:

  • Dabei muss der Promovierende nicht unbedingt alles selbst machen. (Ob dies für Sie gilt, prüfen Sie bitte in den universitätsspezifischen Regelungen.) Der Doktorand soll die Richtung wählen und Entscheidungen auf höheren und niedrigeren Ebenen treffen, was aber nicht bedeutet, dass er jede Zeile Code schreiben muss sich nach der Dokumentation der konzeptionellen Idee selbstständig machen oder alle über 50 Teilnehmer einer Nutzerstudie persönlich begleiten müssen.
  • Damit verbunden sind die Aufgaben so groß, dass sie auf mehrere Personen verteilt werden können. Wenn die Forschung von einem Dritten finanziert wird, ist es oft der Fall, dass mehr als eine Person von diesem Projekt finanziert wird, sodass einiges an Arbeit in Zusammenarbeit geleistet wird.
  • Während die während der Promotion entstehende Software oft noch in einem sehr … sagen … unfertigen Zustand ist, wird durchaus erwartet, dass echte Forschungsergebnisse entstehen. Das bedeutet (bezogen auf das oben erwähnte Beispiel einer Nutzerstudie), dass es nicht ausreicht, dass der Doktorand einmalig durch Beobachtung von fünf Teilnehmern nachweist, dass er eine Nutzerstudie durchführen kann, sondern dass es sich um tatsächliche Nutzerstudien mit mehreren Dutzend Teilnehmern und mehr als einer solchen Studie handelt , muss getan werden. Es hat keinen Sinn, eine einzelne Person zu "quälen", indem sie 50 Mal die gleichen Fragen stellen muss, wenn das Gleiche durch die Verteilung der Arbeitslast auf mehrere Personen erreicht werden kann.

Solange der Doktorand für die konzeptionelle Entwicklung der Forschung und ihrer Ergebnisse „verantwortlich“ ist, ist es daher durchaus akzeptabel, einige Teilaufgaben auszulagern. Ein weiterer Punkt ist, dass der Doktorand erste praktische Erfahrungen in der Einstellung und Führung eines Teams sammeln soll.

Nachdem dies gesagt wurde, komme ich auf meine obige Aussage zurück, dass dies routinemäßig durchgeführt wird, um einige beispielhafte Szenarien aus der realen Welt bereitzustellen. Ich kann mir sowohl bezahlte als auch unbezahlte Varianten davon vorstellen:

  • Mancherorts können Promovierende oft eine oder mehrere studentische Hilfskräfte (in der Regel Bachelor-/Masterstudierende) einstellen, beispielsweise zur Unterstützung bei der Kodierung. Beachten Sie, dass diese Studierenden nicht von den Promovierenden persönlich bezahlt werden, sondern dass ihre Finanzierung aus denselben Quellen erfolgt wie die Finanzierung der Promovierenden selbst. Daher dürfen sie nicht nur, sondern sind ausdrücklich dazu bestimmt, an den gleichen Projekten wie die Promovierenden zu arbeiten.(Trotzdem werden diese studentischen Hilfskräfte vom Doktoranden „angestellt“. Der Doktorand wird die Idee haben, dass einige Aufgaben delegiert werden könnten, er erstellt und veröffentlicht das Stellenangebot, er prüft Bewerber in Interviews und wählt den am besten geeigneten aus, und sie entscheiden, was diese studentischen Hilfskräfte zu tun bekommen (die studentischen Hilfskräfte haben normalerweise nur Kontakt mit jemandem außer dem Doktoranden, der sie eingestellt hat, um ihren Vertrag zu unterzeichnen, was in irgendeiner Personalabteilung der Universität geschieht.)
  • Darüber hinaus legen Promovierende bei der Betreuung einer Bachelor- oder Masterarbeit oft das Thema und die Anforderungen so fest, dass die Ergebnisse dieser Arbeit einen gewissen Input für ihre eigene Doktorarbeit liefern. Auf diese Weise ist es auch eine Form der Auslagerung eines Teils der Arbeit, die schließlich zur Promotionsforschung beiträgt.

EDIT: Abschließend möchte ich ein konkreteres hypothetisches Beispiel hinzufügen, um zu veranschaulichen, welche Arten von Aufgaben von einem solchen "unterstützenden Programmierer" ausgeführt werden könnten:

Stellen Sie sich einen Doktoranden vor, der im Bereich HCI forscht, um einige neue GUI-Elemente zu entwickeln. Der kreative Forschungsteil der Arbeit besteht darin, etwas über verwandte Arbeiten zu lernen, ein neues Konzept für ein GUI-Steuerelement zu entwickeln und einige Skizzen davon auf ein Blatt Papier zu zeichnen sowie einige Testaufgaben zu entwerfen/auszuwählen, um die zugrunde liegenden Hypothesen zu validieren Design.

Bevor dies in eine Publikation umgewandelt werden kann, ist jedoch noch viel Arbeit zu leisten. Basierend auf dem skizzierten Design muss ein interaktiver Prototyp programmiert werden. Es muss etwas ausgefallen aussehen (3D-/Hochglanz-Optik, Animationen usw., was auch immer moderne Software-GUIs in der Regel ausgefallen sind), da die Studienteilnehmer sonst durch einen direkt sichtbaren Mangel an Ausgefallenheit extrem abgelenkt und nicht in der Lage sind die eigentlichen Neuheiten des getesteten GUI-Konzepts durchschauen und damit die Ergebnisse im qualitativen Teil jeder Studie völlig verzerren. Um sicherzustellen, dass Aufgaben nicht als unrealistisch kritisiert werden können, müssen einige echte oder zumindest echt aussehende Daten in den Prototyp integriert werden. Das bedeutet normalerweise das Hinzufügen von Code zum Laden (und möglicherweise Importieren/Konvertieren) eines oder mehrerer vorhandener Datensätze. Soll das Nutzerverhalten aufgezeichnet und/oder zeitlich erfasst werden,

Der gesamte letzte Absatz enthält kein einziges „wissenschaftlich kreatives“ Forschungsstück, dies ist nur einfache Arbeit, die getan werden muss, und es dauert normalerweise ein paar Wochen, bis sie richtig ist. Gegen Ende des Absatzes befinden wir uns sogar weit außerhalb des eigentlichen Forschungsbereichs von HCI und tief in Low-Level-Dingen wie I/O und Datenbankzugriff. Der gesamte letzte Absatz eignet sich hervorragend zum Outsourcing, und von einem Doktoranden wird nicht automatisch erwartet, dass er dies alles selbst erledigt hat.

EDIT2: Noch ein Hinweis, da sich verschiedene der anderen Antworten auf die Codequalität beziehen: Es stimmt, dass im Fall der Einstellung von Studenten wie oben beschrieben die Qualität des produzierten Codes möglicherweise geringer ist als die, die von einem professionellen Programmierer bereitgestellt würde (normalerweise nicht verfügbar in den Einstellungen, die ich in dieser Antwort beschrieben habe). Jedoch

  • Leistungsfähige Schüler lernen schnell (insbesondere wenn ihnen konkrete Aufgaben gestellt werden, keine Übungsaufgaben)
  • Auch wenn die produzierte Software einigermaßen stabil sein soll, ist sie in der Regel immer noch ein "Prototyp" für eine begrenzte Anzahl von Anwendungen und hat daher nicht die gleichen Erwartungen an Wartbarkeit oder Sicherheit wie Code auf Produktionsebene
  • Promovierende können geeignete und ungeeignete Bewerber für ihre Stelle als studentische Hilfskraft auswählen bzw. ablehnen (und es ist völlig in Ordnung, jemanden zuerst nur für einen Monat einzustellen, um seine Leistung zu überprüfen)
  • Als Universitätspersonal trägt der Doktorand auch eine Teilverantwortung dafür, weniger qualifizierten Studenten eine Chance zu geben, sich zu verbessern, und sollte daher erwarten, dass nicht jeder betreute oder eingestellte Student das größte Genie ist; dabei geht es um das Sammeln von Erfahrungen in der Führung eines Teams, da dies auch im späteren Berufsleben des Doktoranden oft eine Kombination unterschiedlicher Qualifikationsniveaus bedeutet.
„Beachten Sie, dass diese Studierenden nicht von den Promovierenden persönlich bezahlt werden, sondern aus denselben Quellen finanziert werden wie die Promovierenden selbst. Sie dürfen also nicht nur an denselben Projekten mitarbeiten, sondern sind ausdrücklich dazu bestimmt wie die Doktoranden.“ Dies ist ein wichtiger Punkt: Ich habe die Frage des OP so verstanden, dass der Kandidat die Programmierung aus eigener Tasche bezahlt. Das scheint mir keine gute Idee zu sein. Wenn die Einrichtung selbst eine Assistenz bezahlt, ist das etwas ganz anderes.
Die vom Studenten gestellte Frage bezieht sich auf die Einstellung eines Assistenten, um "externe" Forschungsinteressen zu verfolgen, nicht auf Abschlussarbeit oder Forschung, die "offiziell" Teil seiner / ihrer Ausbildung ist. In diesem Sinne ist es also sehr unterschiedlich.
Tatsächlich würde ich so weit gehen zu sagen, dass „Geben Sie nicht Ihr eigenes Geld für Ihre akademische Forschung aus“ eine gute allgemeine Faustregel ist.
@PeteL.Clark: Der Kauf von Büchern zur Bildung einer Präsenzbibliothek ist eine große Ausnahme davon.
@aeismail: Ich stimme zu (mehr als die meisten anderen: Ich habe viele Bücher).
@PeteL.Clark: Eigentlich sehe ich keinen Unterschied zwischen (1) der persönlichen Bezahlung dieses Programmierers oder (2) der Verwendung eines von der Universität angestellten Programmierers in Bezug auf die Ethik. Der Unterschied besteht für mich darin, dass (2) sehr häufig vorkommt, während (1) für den Doktoranden kaum jemals finanziell machbar ist. Bei (2) ist es immer noch ausschließlich der Doktorand, der das Stellenangebot ausschreibt, den Programmierer auswählt und dem Programmierer Aufgaben zuweist. Ihre Antwort klingt eher so, als ob Sie grundsätzlich gegen das Konzept der Auslagerung von Arbeiten im Zusammenhang mit der Doktorarbeit sind. Ich habe hinzugefügt ...
... ein konkretes Beispiel für ein hypothetisches Forschungsprojekt, bei dem ein solches Outsourcing meiner Meinung nach angemessen wäre (oder insbesondere eine CS-Forschung, die sich entscheidend auf eine Programmierung stützt, die daher durchgeführt werden muss, aber gleichzeitig offensichtlich nicht ist Teil des "kreativen wissenschaftlichen Beitrags", der vom Doktoranden selbst geleistet werden sollte).
@ff524: Du hast recht; Möglicherweise war ich durch den ersten Absatz in RoboKarens Antwort auf diese Frage abgelenkt, der eine Thesenforschung oder ähnliches impliziert.
@OR Mapper: Ich glaube nicht, dass es für das OP einen ethischen Unterschied macht: Wie gesagt, ich finde die Praxis nicht unethisch. Je mehr ich jedoch darüber nachdenke, desto mehr mache ich mir Sorgen, dass es, wenn nicht unethisch, dann sicherlich keine bewährte Praxis sein könnte, wenn die Universität Studenten fröhlich dabei zusieht, wie sie ihr eigenes Geld für ihre Abschlussarbeit ausgeben. Insbesondere in Ihrem konkreten Beispiel scheint die Universität den Kandidaten nicht sehr zu unterstützen, wenn sie erwartet, dass dies aus eigener Tasche bezahlt wird.
@PeteL.Clark: Das stimmt auf jeden Fall (und um das klarzustellen, ich bin noch nie auf einen Fall gestoßen, in dem ein Doktorand einen solchen Hilfsprogrammierer selbst bezahlt hätte; gleichzeitig habe ich hier drüben kaum einen Doktoranden getroffen, der hat nicht mal eine studentische Hilfskraft über die Universität eingestellt). Ich stimme zu, dass die Universität bezüglich der Bezahlung ethisch anders beurteilt werden könnte; die Situation für den Doktoranden und den Programmierer wäre bis auf geringfügige formale Unterschiede (wer unterschreibt den Vertrag, wer überweist das Geld) völlig gleich.
@ORMapper: Die ethischen Probleme treten auf, wenn der Forschungsassistent versucht, die Tatsache zu verbergen, dass er oder sie die Arbeit nicht macht, und die "untervergebene" Arbeit als seine oder ihre eigene ausgibt. Im Prinzip sollte die Bezahlung des Studenten mit Universitätsmitteln dies viel schwieriger machen.
+1. Ich mag diese Antwort für das Beispiel-GUI-Forschungsprojekt. Als Student, der unabhängige Softwareentwicklung betreibt, würde ich Dinge viel schneller erledigen , wenn ich nur eine weitere Person hätte, die an meinem aktuellen Projekt arbeitet. Aufgaben wie Datenbankaufbau/-verwaltung, REST-API-Aufbau, clientseitiges GUI-Design und Controller-Funktionen für Server und Client liegen alle in meiner Verantwortung. In der Realität könnten diese Aufgaben verteilt werden. Ich bin mir sicher, dass bei vielen Arten von Forschung spezifische Aspekte der Programmierung einem anderen Individuum zugewiesen werden können, ohne dass viel domänenspezifisches Wissen erforderlich ist.

Ich empfehle Ihnen, Ihre Karriereziele zu berücksichtigen. Wenn Sie beabsichtigen, eine Karriere als Softwareentwickler einzuschlagen, würde ich argumentieren, dass dies mit den gegebenen Credits ethisch vertretbar ist, aber keine gute Praxis ist.

Ich war in den letzten zwei Jahrzehnten Personalchef und Ausbilder in der Softwareentwicklung, und eine Konstante, der ich begegnet bin, ist, dass ihr Code umso schlechter ist, je gebildeter Softwareentwickler sind.

Sie können komplexe Probleme im Code lösen, aber ihr Code ist im Allgemeinen nicht wartbar. Dies ist etwas, bei dem ich keinen Erfolg hatte, es zu korrigieren. Dies ist zu einem solchen Problem geworden, dass Lebensläufe für Softwareentwickler mit einem Doktortitel oder Doppelmaster unter Kandidaten ohne Abschluss ganz unten im Stapel der Lebensläufe landen.

Der Arbeitsplatz hat dazu eine Frage, die das Thema näher erläutern kann.

Ich werde den anderen Antworten fast vollständig widersprechen. Wenn Sie in einer CS-Promotion sind (es sei denn, Sie studieren streng Theoretische Informatik) und Sie während der Promotion nicht einmal Ihre eigenen Algorithmen programmieren können, sind Sie im falschen Geschäft. Es ist völlig in Ordnung, mit anderen Leuten beim Schreiben / Teilen des Codes zusammenzuarbeiten (nicht zu bezahlen), aber jemand anderen für Sie zu programmieren (weil Sie es nicht tun können) ist dumm bis grenzwertig gefährlich. Sie können den Algorithmus nicht vom Code trennen (es sei denn, Sie befinden sich erneut in der rein theoretischen Informatik) und die Leistung des Algorithmus (bei einem tatsächlichen Experiment) steht in direktem Zusammenhang mit der Implementierung des Algorithmus.

Wie werden Sie überprüfen, ob Ihr angestellter Programmierer eine korrekte Implementierung durchgeführt hat? Sie können dies nicht tun, es sei denn, Sie gehen seinen Code erschöpfend durch, was tatsächlich länger dauern könnte, als Ihre Version des Algorithmus zu implementieren. Aber selbst dann wirst du nie ganz sicher sein. Was werden Sie tun, wenn Sie an eine neue kleinere Optimierung denken? Ihm eine E-Mail schreiben, auf die Umsetzung warten und 2 Tage später die Antwort bekommen? Viel Glück bei der Fertigstellung Ihrer Arbeit in den nächsten 3 Jahren für einen solchen Workflow. Aber selbst wenn Sie es schaffen, es zu beenden, besteht immer diese 1%ige Chance, dass bei seiner Implementierung etwas schief gelaufen ist und alle Ihre Hypothesen in Rauch aufgehen, wenn jemand anderes Ihren Algorithmus selbst implementiert und Ihnen das Gegenteil beweist. Was werden Sie dann tun? Ihm die Schuld geben? Wie werden Sie in der Lage sein, die Fragen zu Ihrer Arbeit zu beantworten, die jemand anderes für Sie erledigt hat? Und sagen Sie, Sie schaffen es, die erste Arbeit mit der angestellten Hilfe fertigzustellen, und dann geht er zu einem anderen Job. Was werden Sie in Ihrer nächsten Arbeit machen? Jemand anderen einstellen, um den Code des vorherigen Programmierers zu pflegen und zu erweitern?

Auch als PHD oder Postdoc können Sie (als technischer Manager) mit der Leitung eines Forschungsprogramms betraut werden, das Ihrem Fachwissen nahe kommt und möglicherweise einen erheblich größeren Umfang als eine Forschungsarbeit hat. Wie Sie Ihren Kollegen oder jüngeren Kollegen sagen, was sie tun sollen, wenn Sie sich immer darauf verlassen, dass jemand anderes für Sie programmiert. Wie können Sie trennen, was innerhalb des Zeitrahmens des Projekts machbar ist oder nicht, wenn Sie nicht einmal Ihre Algorithmen selbst implementiert haben?

Wenn Sie älter werden (Postdoc und darüber hinaus), schreiben andere möglicherweise mehr Code als Sie auf Ihren mitverfassten Artikeln. Aber selbst dann müssen Sie in der Lage sein, ihren Code auf Fehler und Inkonsistenzen zu überprüfen und vorherzusagen, wie sich der Code / Algorithmus bei ausgewählten Testfällen verhalten wird (es sei denn, Sie befinden sich erneut in streng theoretischer Informatik). Dies ist nicht etwas, das Sie durch Pseudocode, High-Level-Abstraktion oder Abkürzungen lernen, sondern etwas, das Sie lernen, indem Sie Ihre Gebühren durch stundenlanges Debuggen, Codieren und fehlgeschlagene Experimente bezahlen. Sie können keinen PhD in Mathematik bekommen, indem Sie jemand anderen die Beweise für Sie machen lassen. Warum gehen Sie davon aus, dass CS anders ist?

Diese Antwort vermischt die Fähigkeit des Doktoranden, etwas zu tun, mit der Frage, ob er selbst ethisch dazu etwas tun sollte / muss, was meiner Meinung nach sehr unterschiedliche Themen sind. OTOH stimmt, dass Outsourcing die Arbeit für den Doktoranden nicht auf null reduziert und zu einem negativen Nettogewinn führen kann. (±0)
Ich frage mich, woher Sie die Prämisse "kann nicht einmal Ihre eigenen Algorithmen codieren" nehmen. Aus der gleichen Logik müsste man schließen, dass jeder Softwareentwickler, der in seiner Karriere zum Teamleiter oder etwas Höherem aufgestiegen ist, nicht programmieren kann, weil er einen Teil seiner Programmieraufgaben an andere Entwickler auslagert.
@ORMapper. Warum stellt nicht jeder Doktorand seinen eigenen Programmierer ein, so die Idee von OP? In einem Labor mit 5 Doktoranden können wir also 5 zusätzliche "persönliche Programmierer" haben. Natürlich sollten diese Programmierer an den Treffen mit den Betreuern teilnehmen, da sie sowieso alles programmieren und gleichzeitig Co-Autoren an den zugehörigen Papieren sind. Damit die Doktoranden einen Monat lang über Algorithmen nachdenken und die nächsten sechs Monate, die für die Implementierung der Algorithmen benötigt werden, untätig herumsitzen. Klingt für Sie vernünftig?
@Alexandros: Wie ich schon in meiner Antwort darauf hingewiesen habe, ist es mancherorts völlig normal, dass mehr oder weniger alle Doktoranden einen oder mehrere Studenten zur Unterstützung einstellen, zB beim Programmieren. Sie nehmen nicht an Besprechungen mit Vorgesetzten teil, weil sich Vorgesetzte nicht um Programmierung kümmern oder darüber sprechen, daher haben diese Besprechungen nichts mit Programmierung zu tun. Es ist die Aufgabe der Promovierenden, die unterstützenden Studierenden entsprechend anzuweisen, wie diese Low-Level-Aufgaben zu erledigen sind, nachdem sie das „große Ganze“ auf höherer Ebene mit ihren Betreuern besprochen haben.
@Alexandros: "Damit die Doktoranden einen Monat lang über Algorithmen nachdenken und die nächsten sechs Monate untätig herumsitzen können" - so geht das einfach nicht. Die Einstellung und Auslagerung erfolgt gerade deshalb, weil Doktoranden in der Regel nicht einmal einen Monat „untätig herumsitzen“ und somit keine Zeit für zeitraubende, aber letztlich unkomplizierte Arbeiten wie das Programmieren nach einer klaren Vorgabe haben.
@Alexandros: Als Gedankenexperiment skalieren Sie die Dinge ein oder zwei weitere Ebenen. Sehen Sie irgendwelche Professoren, die Monate damit verbringen, Code zu schreiben, Speicherlecks aufzuspüren und Fehler zu beheben, weil sie sonst monatelang untätig herumsitzen würden, ohne etwas zu tun?

Wenn der Großteil der Programmierarbeit problemlos in eine allgemeine Bibliothek passen würde, können Sie jemanden dabei unterstützen, eine Open-Source-Bibliothek zu erstellen.

Es ist kein ethisches Problem, Open-Source-Software wiederzuverwenden.

Stellen Sie jedoch sicher, dass diese Software gut dokumentiert und verfügbar ist, um anderen Personen zu helfen, die in Ihrer Domäne arbeiten.