Bei zwei Gelegenheiten wurde ein Problem zwischen mir und einem anderen Entwickler zu hitzig und konfrontativ. Ich baue meine Standpunkte auf, indem ich online nach den besten Codierungsmethoden recherchiere und ihnen E-Mails schreibe und zur Diskussion einlade Alles, was mit "Traue dem Internet nicht" und "Erfahrung" konterkariert werden muss.
Eines der Dinge, die eine neue Person, die in eine Branche eintritt, lernen muss, ist Demut. Die Aussagen "Traue dem Internet nicht" und "Erfahrung" sind tatsächlich völlig gültig, ob du das noch weißt oder nicht. Genauer gesagt, Sie scheinen Köpfe gegen Menschen zu stoßen, die viel mehr Erfahrung haben als Sie ... Sie werden es einfach nicht mögen, wenn eine viel jüngere Person in ihr Gesicht kommt.
In ihren Augen, Sie Haben Sie nicht die "Kampfnarben", die entstehen, wenn Sie eine unheilige Anzahl von späten Nächten damit verbringen, Ihren Kopf gegen eine Wand zu schlagen und zu versuchen, etwas zu reparieren, das einfach hätte funktionieren sollen. Sie haben wahrscheinlich stundenlang nicht dort gesessen und sich einen Code wie var x = 1 + 1;
angesehen und waren verblüfft darüber, warum das Programm darauf besteht, dass x tatsächlich gleich 3 ist. Sobald Sie fertig sind Dies nicht nur einmal, sondern über einen Zeitraum von Jahren, dann stellen Sie fest, dass das Internet oft falsch ist. Dass die vorgestellten Ideen und Konzepte gute Lösungen sein könnten ... aber in sehr spezifischen Situationen.
Ich weiß, dass ich eine große Anzahl von Nachwuchskräften gesehen habe, die sich beeilen, um das Neueste umzusetzen, worüber sie gelesen haben. oft von einem anderen Junior geschrieben, ohne die Konsequenzen zu verstehen. Ich habe auch einige späte Nächte damit verbracht, ein Projekt zu retten, als ich gerufen wurde, um das Chaos zu beseitigen. Zu diesem Zweck habe ich eine Richtlinie entwickelt: "Wenn Sie es nicht im Klartext erklären und mich davon überzeugen können, dass dies das vor uns liegende Problem löst, verstehen Sie es nicht genug und gehören daher nicht dazu."
Das heißt, der Schlüssel hier liegt wirklich darin, wie Sie die Dinge angehen. Einem Entwickler, der mehrmals in der Nähe war, zu sagen, dass er falsch liegt, wird einfach nie funktionieren. Der Versuch, dies mit einem Link zu einem Artikel zu rechtfertigen oder sogar zu sagen "Martin Fowler sagte ...", funktioniert wieder nicht. Erfahrene Leute lernen, einen Code oder einen Ansatz nach seinem Verdienst zu beurteilen, nicht danach, wer der Bote ist.
Stattdessen müssen Sie dies aus einer völlig anderen Richtung angehen. Lassen Sie sie nämlich Ihnen beibringen, warum Ihre Idee falsch ist. Dies ist im Wesentlichen eine umgekehrte Psychologie, und wenn Sie sie bitten, auf Ihre Mängel hinzuweisen (was sie gerne tun werden), wird eines von zwei Dingen passieren. Entweder werden sie erkennen, dass ihr Ansatz schlecht ist, und werden Ihnen am Ende zustimmen, oder sie werden Sie darüber aufklären, warum Sie falsch liegen. Beides sollte eine willkommene Situation sein.
Sehen Sie sich die folgenden Gespräche an:
Schlechter Weg
Sie :: "Bob, du hättest das Inversion of Control-Muster verwenden sollen
hier, sagt Martin Fowler in seinem Artikel unter www.wherever.com. Was du getan hast, muss komplett neu geschrieben werden."
Bob :: "Es funktioniert einwandfrei. Haben Sie keine Klasse, um Refactor zu werden? Vielleicht CS 101?"
Sie :: "Aber er sagte. .. "
Bob ::" Sei weg, welp! " abgesehen von Jim: "Was bringen sie diesen Kindern bei?"
Nicht gerade ein guter Ansatz, da Bob sofort in die Defensive gerät. Außerdem zeigt es, dass Ihnen einfach die Erfahrung und damit die Glaubwürdigkeit fehlt, indem Sie nur einen Verweis auf die Meinung eines anderen verwenden, um Ihre Aussage zu rechtfertigen. Wenn Sie jedoch so etwas getan haben:
Besser
Sie :: "Bob, was wäre das? Sie denken darüber nach, hier ein IoC-Muster zu verwenden? Würde dies nicht das Testen erleichtern? Wir könnten einen Konfigurationsparameter festlegen, damit wir wissen, in welcher Umgebung es sich befindet, und all diesen anderen Code entfernen. "
Bob :: "Vielleicht ... Natürlich verstehen nicht viele Leute, wie man IoC richtig macht, und haben normalerweise wirklich schwer lesbaren Code. In diesem Fall hätte ich lieber etwas, das war leichter zu verstehen."
Viel besserer Ansatz. Sie haben einen Vorschlag gemacht und einen klaren Grund dafür angegeben, warum dies gilt, während Sie auf Bobs Erfahrung zurückgreifen. Anstatt in der Defensive zu sein, ist Bob jetzt verlobt und wird natürlich versuchen, Sie zu "erziehen". Noch wichtiger ist, dass Sie die Möglichkeit haben, detailliertere Angaben zu machen, um seine Besorgnis zu zerstreuen. Während der Diskussion könnte er seine Meinung ändern oder Sie werden einige der Fallstricke mit dem, was Sie lesen, lernen. In jedem Fall sollten Sie etwas Wichtiges lernen.
Um die Probleme an diesem Punkt zu beheben, müssen Sie drei Dinge tun. Hören Sie zunächst auf, das Internet zu zitieren. Zweitens Fragen stellen, keine Aussagen machen. Drittens wissen Sie, wovon Sie sprechen, bevor Sie es ansprechen. Dies bedeutet, dass Sie tatsächlich mit dieser "Codierungspraxis" spielen und sie in einem Testprojekt verwenden, damit Sie wissen, was daran falsch ist.