Ich arbeite mit mehreren Entwicklern in Indien zusammen und eine unserer größten Schwierigkeiten ist die Benennung von Variablen. Zuerst war ich sehr frustriert und konnte nicht verstehen, warum sie Dinge nicht einfach richtig benennen würden (war es Faulheit?). Ich erkannte jedoch, dass sie wahrscheinlich nicht gewohnt sind, Variablen zu benennen, weil der ganze Code, den sie lesen, darin ist Englisch und die englischen Wörter, die sie lesen, haben wenig oder keine Bedeutung für sie. Es scheint jetzt offensichtlich, aber es ist unmöglich, Variablen gut zu benennen, wenn Sie Englisch nicht ausreichend verstehen.
Wie würden Sie mit einem fremdsprachigen Teammitglied zu besseren Benennungsverfahren beitragen?
Tut mir leid, wenn das ein bisschen subjektiv ist, ich habe es Community Wiki markiert.
Danke!
Ändern Sie die Anforderungen für die Mitglieder Ihres Teams - sie müssen ein angemessenes Verständnis von geschriebenem Englisch haben.
Bearbeiten: Als Antwort auf Bill Ks Kommentar scheint es mir, dass die Kosten für den Umgang mit schlechten Kommunikationsproblemen in den Einsparungen nicht berücksichtigt werden. Nein, ich habe noch nie mit ausländischen Entwicklern gearbeitet, aber ich arbeite mit 2 nicht-englischen Muttersprachlern und die Kommunikation geht manchmal etwas langsamer mit ihnen, obwohl sie beide 20 Jahre in den USA gelebt haben.
Ich habe auch nicht erwartet, dass meine Antwort die nützlichste ist. Ich versuche nur einen Punkt zu machen. Wenn Sie nicht jemanden einstellen würden, der in Ihrem Büro arbeitet, warum würden Sie ihn dann beauftragen, für Sie von der anderen Seite der Welt zu arbeiten? Selbst wenn Sie eine Agentur durchlaufen, beauftragen Sie indirekt jeden Entwickler, der an Ihrem Code arbeitet.
Meine Erfahrung ist, dass, wenn es um Entwicklungstalent geht, das billige Unternehmen ziemlich teuer sein kann.
Wenn alle die gleiche Sprache sprechen und Sie den Code nicht an eine andere Firma verkaufen, ist es in Ordnung, den Code in ihrer Muttersprache zu schreiben.
Wenn jedes Mitglied eine andere Sprache spricht, sollte der Code in Englisch sein. Versuchen Sie, ein Wörterbuch der gebräuchlichsten Wörter in der Anwendung zu erstellen, die jeder überprüfen kann. Wählen Sie jemanden mit mehr Englischkenntnissen, um zu übersetzen, wenn es nötig ist.
Und Sie können immer umgestalten, wenn ein Wort falsch aussieht.
Die meisten Entwickler sollten ein vernünftiges Verständnis für technisches Englisch haben (APIs sind in den meisten Sprachen in Englisch geschrieben). Daher scheint Englisch eine gute Wahl zu sein. Variablen haben typischerweise keine sehr schwierigen Namen, z. xCounter, isXYZ, etc. Und wenn sie schwer zu benennen sind, dann würde ich das als sicheres Zeichen nehmen, dass die Ebene der Abstraktion, auf der diese Variable deklariert wird, nicht die richtige ist.
Man könnte vorschlagen, Variablennamen zu lokalisieren. Ich fand das wirklich schwierig, mehr heutzutage, wenn es typisch für den Code ist, der von Leuten genommen wird, die sich auf anderen Kontinenten befinden, Firmen, die im Ausland erworben wurden, usw.
Etwas muss geben
Ich beabsichtige nicht, kritisch zu sein, aber ich habe eine echte Frage ... Wenn sie nicht fließend genug Englisch sprechen, um Variablen zu benennen, wie fließend sind sie dann, um ein englischsprachiges Geschäftsmodell zu verstehen, viel weniger entwerfen und konstruieren Sie ein Softwareprodukt, das ein reales Problem in dieser Domäne löst?
Finden Sie den einen Entwickler, mit dem Sie dort arbeiten, der etwas Englisch kann, und lassen Sie alle Variablennamen von ihm ausführen?
Ich bin nicht sicher über das spezifische Problem, dh Variablennamen sind nicht beschreibend, oder sie verwenden Variablennamen sind nicht in Englisch, variable Benennung Stil ist inkonsistent usw. In beiden Fällen können Sie versuchen, detaillierte Kodierungsstandards und vielleicht zu etablieren Verwenden Sie Code-Audits oder Reviews, um sie durchzusetzen. Zum Beispiel:
Der Schlüssel wäre, diese Regeln zu veröffentlichen und sie für die gesamte Organisation durchzusetzen.
Tags und Links naming convention