Waren Sie bei den von Ihnen vorgeschlagenen Softwaredesigns immer von Grund auf korrekt? Wenn Sie ein Design herausgeben, das von Grund auf falsch war, neigen Sie dazu, den Respekt Ihrer Teamkollegen zu verlieren. Egal, was Sie danach tun, Sie werden für alles, was Sie nach diesem Vorfall vorschlagen, einer Gegenprüfung unterzogen. Dies ist besonders schlimmer, wenn Sie neu in einem Team sind und es nicht weiß, in welcher Vergangenheit Sie gute Erfolgsgeschichten hatten.
Vielleicht war der Grund, warum Sie ein schlechtes Design angegeben haben, ein Mangel an Erfahrung oder Wissen oder beidem in diesem Bereich. Wie haben Sie mit einer solchen Situation umgegangen? Ist das wie eine einmalige Sache in Ihrer Karriere oder passiert es immer wieder? Stellt man dies in den Hintergrund oder muss man in einer solchen Situation nach einer neuen Arbeitsrichtung suchen? Ein ehrliches Feedback bitte ...
Danke.
Antworten:
Einst kostete der VP eines Fortune 500 das Unternehmen 1 Million Dollar mit einer schlechten Geschäftsentscheidung. Als er seinen Rücktritt beim CEO einreichte, wurde ihm die Antwort gegeben: "Ich habe gerade eine Million Dollar in Ihre Ausbildung investiert und jetzt versuchen Sie zu gehen? Ich akzeptiere nicht."
Ich werde müde von Managern und anderen Arbeitern, die schnell einen Fehler dafür machen, dass jemand ein Anfänger ist oder davon ausgeht, dass er inkompetent ist. Es gibt nur einen Weg, um ein guter Designer zu werden, und zwar, um ein paar Dollar aufzubessern. Es ist mir egal, ob meine Mitarbeiter einen Fehler machen, es ist mir egal, ob sie denselben Fehler mehrmals machen. Die Frage ist, wie bescheiden und wie lehrreich sind Sie? Wenn dir jemand deinen Fehler vorlegt, verteidigst du dich zuerst oder hörst du ihn an? Wenn Sie einer der seltenen Typen sind, der seinen Stolz schlucken und daraus lernen kann, dann lohnt es sich, daran festzuhalten. Wer einmal den Respekt für einen Fehler verliert, verdient keinen Respekt.
Ich persönlich musste die ersten beiden Projekte, die ich entworfen hatte, mindestens zweimal umschreiben, aber weißt du was? Ich habe eine Menge gelernt, und obwohl meine Arbeitgeber zu der Zeit verstört waren, wurde dies schnell durch die Effizienz ausgeglichen, die ich im Laufe der Zeit gewann, indem ich bereit war, aus meinen Fehlern zu lernen.
In Bezug auf den Aspekt der Demütigung und wie man sich erholt, habe ich zwei Ratschläge. Erstens vergessen die Menschen im Laufe der Zeit. Wenn jemand anderes im Rampenlicht steht, wird er es auch vermasseln. Dann sind wieder alle gleich. Zweitens, sei kein Arschloch für andere, wenn sie ehrlich sind, lernen, Fehler machen. In der Tat sollten Sie sie ermutigen, es sei denn, sie brauchen wirklich einen festen Tritt in den Arsch. Sie können mit der Zeit dazu beitragen, die Kultur Ihres Teams zu verändern, indem Sie sich daran erinnern, wie Sie sich gefühlt haben, als Sie einen ehrlichen Fehler gemacht haben. Sie werden die Menschen schließlich dazu inspirieren, bessere Programmierer, Designer und Menschen zu sein.
quelle
Ich mache das schon lange (15+ Jahre) und ich verstehe es immer noch nicht beim ersten Mal richtig. Die besten Entwürfe entstehen in einem iterativen, kollaborativen Prozess. Wenn Sie eine Weile an einem Entwurf gearbeitet haben, ist es leicht zu glauben, dass dies die einzige Möglichkeit ist, dies zu tun. Eine neue Perspektive ist hilfreich, um die Dinge zu sehen, die Sie verpassen.
Damit dies funktioniert, muss das Team sich gegenseitig vertrauen. Sie haben keine Angst davor, Menschen ein Design zu zeigen, das möglicherweise fehlerhaft ist, und müssen in der Lage sein, Kritik am Design zu akzeptieren. Im Gegenzug muss der Rest des Teams verstehen, dass Fehler in einem Design keine Reflexion über den Designer sind. Es ist ein zu erwartender Bestandteil des Designs. Auf diese Weise lernen die Teammitglieder und werden besser: aus ihren eigenen Fehlern und den Fehlern anderer.
Wenn Sie in einem fehlerhaften Team arbeiten, das nicht so funktioniert, haben Sie zwei Möglichkeiten:
quelle
Soweit ich weiß, war ich immer grundsätzlich verteidigungsfähig . Das ist nicht ganz das Gleiche wie grundsätzlich richtig . Oft ändern sich die Umstände zwischen dem Zeitpunkt, an dem Sie die Entscheidung 'x' treffen müssen, und dem Zeitpunkt, an dem klar wird, dass 'x' im Nachhinein die falsche Entscheidung war .
Es ist so, als würden Sie Ihre US-Einkommenssteuern vorbereiten. Viele Leute denken, es sollte eine Antwort geben. Gibt es nicht Sie haben Ihre Meinung; Ihre Steuerberaterin hat ihre Meinung; Die IRS hat ihre Meinung.
Wenn ich Fehler mache, verliere ich niemanden den Respekt. (Soweit ich weiß.) Ich denke, das liegt zum Teil daran, dass ich immer meine eigenen Fehler zugebe. (Tatsächlich finde ich oft meine eigenen Fehler.) Außerdem haben fast alle wichtigen Entwurfsentscheidungen mehr als eine Person, die sie abzeichnet. Jegliche Fehler in diesen Entscheidungen gehören der Gruppe und nicht nur einer einzelnen Person.
Ich denke, was das Eingestehen von Fehlern betrifft, wird es einfacher, wenn Sie Kompetenz und Erfahrung sammeln. Nach meiner Erfahrung ist es weniger wahrscheinlich, dass Sie einen Fehler eingestehen, je neuer Sie bei Design und Entwicklung sind.
Es passiert ab und zu und sollte Ihre Karriere nicht enttäuschen. Niemand, der in einer verantwortungsvollen Position ist, trifft ausnahmslos die richtigen Entscheidungen. Tatsächlich trifft niemand in einer Position mit erheblicher Verantwortung ausnahmslos vertretbare Entscheidungen.
Meistens sollten Sie jedoch in der Lage sein, aufgrund unvollständiger Informationen vertretbare Entscheidungen zu treffen. Wie meine Tochter sagen würde: "Das sind nur Menschen."
quelle
Jeder versteht manchmal etwas falsch. Fehler sind unvermeidlich. Geben Sie frei zu, wenn Sie sich irren, lernen Sie aus Ihren Fehlern und zeigen Sie Demut, besonders wenn Sie anfangs nicht überzeugt waren, dass Sie sich tatsächlich geirrt haben.
"Demütigung" sollte niemals passieren. Es ist unwahrscheinlich, dass die Leistung einer Person überhaupt verbessert wird.
Hier in meinem Unternehmen haben wir eine Kultur des Respekts für diejenigen Menschen entwickelt, die immer noch bereit sind, sich vor schwierigen Entscheidungen zu schützen, aber zugeben können, dass sie sich irren und ihr Verhalten anpassen, wenn dies erforderlich ist.
quelle
Ja, ich bin ein Übermensch! Na klar nicht.
Nein! Wenn das passiert, stimmt etwas nicht mit dem Teamgeist.
Jeder macht Fehler. Manche Lösungen erweisen sich als gut, manche als schlecht, die meisten als etwas dazwischen. Sowohl Erfolge als auch Misserfolge sollten von Ihnen und dem Rest des Teams als Lektion verstanden werden.
Die ersten Fehler mögen sich schlimm anfühlen, aber nachdem Sie Hunderte davon gemacht haben, ist das einfach Teil des Jobs.
quelle
Es passiert jedem. Die Hauptsache ist , aus Ihren Fehlern zu lernen und zu versuchen, es nicht noch einmal passieren zu lassen. Geben Sie auch zu, dass es ein Fehler von Ihrer Seite war. Ich habe zum Beispiel einmal den Fehler gemacht, eine minderwertige Datenzugriffsschicht (SubSonic3) zu verwenden. Zu der Zeit, als ich die Entscheidung traf, wollte ich mich nur von handgefertigten SQL-Abfragen lösen. Also wählte ich das, was zu dieser Zeit am einfachsten zu beginnen schien. Ich war auch nicht so erfahren mit DALs. Nachdem ich ein paar Probleme gelöst hatte, fragte ich mich, warum einige Abfragen etwas zu lange dauerten und ich fand, dass SubSonic ohne guten Grund ganze Tabellen herunterfuhr.
Also erklärte ich meinem Chef, dass ich einen Fehler gemacht habe und gab ihm meinen Plan, ihn zu beheben. Mein Chef war natürlich nicht begeistert davon, dass ich einen ziemlich großen Fehler gemacht habe, der ein paar Tage reine Migration erforderte. Aber er hat auch dafür gesorgt, dass ich nicht wieder den gleichen Fehler gemacht habe. Er veranlasste mich, ein Proof-of-Concept-Projekt für die nächste Datenzugriffsebene zu erstellen, auf die ich migrieren wollte, und wir stellten sicher, dass es unseren Anforderungen entspricht und nicht ganze Tabellen herunterfährt. Alles in allem war es eine gute Lernerfahrung für mich und jetzt werde ich sicherstellen, dass ein wesentlicher Teil des Projekts den Anforderungen entspricht und keine großen Probleme hat.
Im Grunde ist das, was Sie tun:
Wenn Sie sich nicht sicher sind, wie Sie das Problem beheben können, haben Sie keine Angst, andere Teammitglieder hinzuzuziehen.
Eine letzte Sache, entspannen Sie sich! Jeder macht Fehler. Sehr wenige Leute bekommen es beim ersten Mal perfekt
quelle
Das ist ein abgefahrenes Contest-Zeug und keine gute Situation. Niemand hat immer Recht, und es gibt nichts, wofür man sich schämen muss, wenn sich jemand eine bessere Möglichkeit einfallen lässt oder wenn er ein Problem mit dem findet wie du es getan hast.
Sie müssen sich emotional von Ihrer Lösung lösen und Ihre Zeit damit verbringen, die beste Lösung zu finden . Dann können Sie sich freuen, wenn das Problem gelöst ist, auch wenn es von jemand anderem gelöst wird.
quelle
Es gibt eine Menge, die Sie in Ihrer Frage nicht sagen. Ich kann nicht sagen, in welcher Einstellung Sie "ein Design herausgeben". Ist es ein erstes Gespräch mit einem Kollegen über Ihren geplanten Ansatz oder ist es die Übermittlung des von Ihnen erhofften endgültigen Codes?
Wenn erstere, dann gibt es keinen Grund, sich schlecht zu fühlen, und keinen Grund für Ihre Kollegen, Sie in Zukunft zu verdächtigen.
Wenn Sie bis zur endgültigen Auslieferung warten, um Ihr Design mit jemand anderem zu besprechen, kann ich Ihnen nicht vorwerfen, dass Sie Ihrer anderen Arbeit misstrauisch gegenüber stehen.
Jeder muss sein Design mit jemand anderem besprechen. Abhängig von der Komplexität oder Kritikalität müssen Sie dies möglicherweise mehrmals mit mehreren Personen besprechen. Jeder kann einen Fehler machen, eine Anforderung falsch verstehen oder einen Sonderfall verpassen.
Frühzeitig erkannte Fehler sind einfacher und kostengünstiger zu beheben. Sie sollten sehr verzeihlich sein, es sei denn, Sie wiederholen die gleichen Fehler immer und immer wieder. Peer Reviews erleichtern es, Fehler frühzeitig zu erkennen.
Wenn Sie versuchen, ein Einzelkodierer in einer Teamumgebung zu sein, begehen Sie die (fast unverzeihliche) Sünde, zu denken, dass Sie perfekt genug sind, um die Hilfe eines anderen nicht zu benötigen. Die Tatsache, dass es sich um eine Teamumgebung handelt, beweist, dass das Problem groß genug ist, dass niemand alles verstehen wird. Die Leute müssen miteinander reden, sonst recken sich ihre hässlichen Köpfe viel zu kurz vor der Veröffentlichung (oder nach der Veröffentlichung).
quelle
Ich habe immer zwischen guten und schlechten Entscheidungen unterschieden; und auf der anderen Seite richtige und falsche Entscheidungen. Eine gute Entscheidung ist eine, die Sie unter den gleichen Umständen und mit den gleichen Informationen auf die gleiche Weise treffen würden. Eine schlechte Entscheidung ist eine, die Sie anders treffen würden. Eine richtige Entscheidung ist eine, die sich im Nachhinein und mit zusätzlichen Informationen als richtig herausstellt. und umgekehrt mit falschen Entscheidungen.
Es wurde oft gesagt, dass die Person, die keine falschen Entscheidungen trifft, niemals etwas unternimmt. Falsche Entscheidungen sind die Art und Weise, wie man lernt. Fehlentscheidungen werden häufig verschärft, weil der Entscheidungsträger in die Entscheidung investiert und versucht, die Entscheidung nachträglich zu rechtfertigen oder zu beweisen, dass es sich um eine gute Entscheidung handelt (die Vertuschung ist immer schädlicher als die ursprüngliche Entscheidung).
Die meisten Designentscheidungen, die ich getroffen habe, haben sich als richtig erwiesen, aber ich habe am meisten gelernt und bin mit den Entscheidungen, die falsch waren, weitergekommen. Ich hoffe, dass nur sehr wenige meiner Entscheidungen schlechte Entscheidungen waren, aber ein Teil des Problems bei den eigenen schlechten Entscheidungen besteht darin, zu erkennen, dass eine Entscheidung schlecht war, und die daraus oft unangenehmen Lehren zu akzeptieren.
quelle
Solange sie nicht der " Monday Morning Quarterback " sind. Ich habe keinen Sinn für jemanden, der all die Designdiskussionen durchlebt, ohne etwas zu sagen, nur um zu behaupten, dass er wusste, dass es nach der Tat nicht funktionieren würde. Kritik muss man nehmen können, auch wenn sie nicht in einen konstruktiven Kontext gestellt wird.
Wahrscheinlich ist es eines der besten Merkmale der SO-Site, ein Risiko einzugehen und eine ungewisse Lösung vorzuschlagen. So lernst du. Mit ein paar Dreck im Kopf durchs Leben zu gehen, das ist falsch, aber man hat dir nie gesagt, dass es sich um einen Betrüger handelt, ist wahre Ignoranz.
Sie wissen vielleicht etwas, was Sie nicht wissen, aber sie werden nicht alles wissen. Geh drüber hinweg, mach dich an die Arbeit und erledige etwas. Lassen Sie sie Zeit damit verschwenden zu denken, dass sie so verdammt schlau sind.
quelle
Habe ich immer gutes Design geliefert? Nein! Ich bemühe mich, es zu tun, ich bemühe mich, besser zu werden, aber bei jedem nachfolgenden Projekt kann ich anscheinend immer auf das zurückblicken, was ich zuvor getan habe, und mich zurückschrecken, wie ich die Marke irgendwie verfehlt habe.
Was jemanden betrifft, der ein weniger als herausragendes Design vorgeschlagen hat, würde ich es dieser Person nicht vorenthalten, wenn diese Person nachweisen würde, dass sie bereit ist, aus dem Fehler zu lernen und offen für Kritik ist. Wenn ich Beweise dafür sehe, dass die Person in ähnlicher Weise danach strebt, besser zu werden und dazu in der Lage ist, dann ist ein schlechter Entwurfsvorschlag nur eine Lernmöglichkeit.
quelle
Es passiert jedem von Zeit zu Zeit. Deshalb ist es das Beste, herauszufinden, warum das Design falsch war, und daraus zu lernen. Wenn es ein Mangel an Wissen ist, wird der Entwurfsfehler Ihnen hoffentlich etwas neues Wissen geben, das Sie das nächste Mal verwenden können. Lassen Sie sich nicht entmutigen, jeder wird das irgendwann durchmachen. Es ist der beste Weg, Erfahrung zu sammeln und mit einem neuen Team / Umfeld in Kontakt zu treten.
quelle
Dies wird häufig vorkommen. Unsere Branche verändert sich so schnell, dass die Wahrscheinlichkeit, niemals falsch zu liegen, praktisch null ist.
Aber haben Sie das schlechte Design über ihre Einwände hinweggeschubst? Das könnte der Grund sein, warum sie überreagieren.
Wenn der Fehler gewaltig war, wird es natürlich Zeit brauchen, um wieder Respekt zu erlangen. Wenn einer Ihrer Mitarbeiter Sie in eine schlechte Richtung geführt und Probleme für das gesamte Team verursacht hätte, müsste er sich dann nicht kurzfristig mehr beweisen?
Alles, was Sie tun können, ist, zuzugeben, dass Sie sich geirrt haben, wer auch immer Recht hatte, und danach zu streben, in Zukunft besser zuzuhören und nach Optionen zu suchen.
Was haben Sie nicht für einen Fehler beim Design gehalten? (Kein zufälliges Beispiel - Entwerfen Sie einen Importprozess, um einen vorhandenen Webdienst zu verwenden, der zeilenweise ausgeführt wird (Wiederverwendung von Code und nur das Ändern von Geschäftsregeln an einem Ort), ohne zu wissen, dass einige Importe Millionen von Datensätzen enthalten und dies Tage dauern würde beenden.) Lernen Sie daraus und denken Sie über diese Dinge in der Zukunft nach.
quelle
Es wird immer Fehler geben. Irren heißt, Programmierer zu sein. Lernen Sie weiterhin von anderen im Internet und insbesondere von Ihren Mitarbeitern. Die einzige Schande hier wäre, aufzugeben oder den Kopf in den Sand zu stecken, wenn es von jetzt an um solche Probleme geht.
Legen Sie es hinter sich, senken Sie den Kopf und geben Sie Ihr Bestes. Wenn Sie ein guter Programmierer sind, werden Sie durch Ihre Fehler glänzen.
quelle
Wenn Sie nicht sicher sind, ob Ihre Idee auf einem soliden Fundament steht, sollten Sie sie mit einigen vertrauenswürdigen Kollegen besprechen, bevor Sie sie dem gesamten Unternehmen oder der gesamten Abteilung vorschlagen. Selbst wenn Sie sich sicher sind, sollten Sie dies dennoch mit den Personen besprechen, mit denen Sie zusammenarbeiten und die Sie am wahrscheinlichsten am besten kennen. Sie helfen Ihnen, Probleme frühzeitig zu erkennen.
quelle
Es passiert uns allen manchmal. Verwenden Sie das erste Design als Prototyp. Finden Sie heraus, was genau funktioniert hat und was nicht und warum. Dann können Sie ein viel besseres Endprodukt schreiben.
Versuchen Sie nicht, sich zu rechtfertigen oder sich zu verteidigen. Gib den Fehler zu und mach weiter.
quelle
Das Grundproblem scheint nicht erklärt zu sein: Dies ist ein soziales Problem. Sie können ein solches Verhalten in fast allen Berufen beobachten: Wenn Sie einen Fehler machen und sie mögen, Sie in bestimmte Dinge zu "kategorisieren", ist es für immer. Es ist ein soziales Verhalten. Sogar kluge und kluge Leute werden dazu neigen, jedem zu folgen.
Lassen Sie mich Ihnen ein Beispiel geben, das nichts mit Programmieren zu tun hat: In meinem vorherigen Job hatte ich vergessen, mein Geschirr ein- oder zweimal abzuwaschen. Seitdem dachten alle Arbeiter, ich sei ein Mann, der mein Geschirr nie wäscht. Und sobald sich etwas Dreckiges in der Spüle befindet, bin ich es (wer könnte es sonst sein).
Es ist überall dasselbe: Dies ist ein soziales Verhalten, egal welche Art von Problem es sein könnte.
Du sagst mir, du willst ehrliches Feedback? Die einzige Lösung besteht darin, für einen anderen Job zu kündigen. Wenn alle Mitarbeiter des Teams der Meinung sind, dass Sie mit Ihrer Arbeit nicht gut umgehen können, wird sich das in Kürze nicht ändern. Tut mir leid, dass Sie das so sagen. Suchen Sie sich also einen anderen Job, denn Sie werden niemals ein solches (dummes, wie ich zugeben muss) soziales Verhalten ändern .
quelle
Der Schlüssel ist, wie Sie Ihren Fall darlegen und welche Art von Änderungen Sie vornehmen. Wenn Sie behaupten, ein Programmier-Guru zu sein, der nichts falsch macht und großartiger ist als Jon Skeet, dann ist es sehr wahrscheinlich, dass Sie dafür irgendwann aus dem Ruder laufen. Der Schlüssel ist, wie Sie Ihre Lösungen präsentieren, damit Sie zeigen können, dass dies eine vernünftige Lösung für das Problem ist und nicht die perfekte Lösung, die nicht einmal überprüft werden sollte.
Mein bestes Beispiel wäre, die Nebenwirkungen einer Klasse
static
in einer Webanwendung zu entdecken, in der ich einmal gearbeitet habe. Ich wusste nicht, wie schlimm es wäre, wenn diese eine Instanz bestehen und von allen Benutzern der Anwendung gemeinsam genutzt würde, aber ich habe daraus gelernt und mich rechtzeitig erholt. Manchmal kann es sein, dass etwas gefunden wird und größere Korrekturen vorgenommen werden müssen. Ich war auch in diesem Lager, in dem ich eine Menge VBScript durchforsten musste, um die String-Verkettungen zu reduzieren, die Speicherprobleme verursachten, bei denen ich einmal gearbeitet habe. Ich kann mich sogar an das Schreiben von Code erinnern, der für SQL-Injektionen anfällig war, als ich 1998 einen Kundencode fand, der SQL dynamisch generieren musste, da ich in diesem Teil der Anwendung ~ 20 optionale Felder hatte.Perfektionismus kann hier ein zweischneidiges Schwert sein, so wie ich diesen dritten Kommentar sehe und manchmal auch so bin. Das Schlimme ist zu sehen, dass es all diese Fehler gibt und nichts immer genau richtig ist. Das Gute ist, dass Sie sich treffen können, wenn Sie das Beste geben, was Sie können, wenn Sie nicht die Erwartungen anderer von Ihnen übertreffen. Eine kontinuierliche Verbesserung könnte durchaus die Möglichkeit sein, Perfektionismus auf dem PC zu sehen, und wenn dies in Maßen erfolgt, sehe ich dies als eine gute Sache an. Geht Ihr Code trotz aller Fehler in die Produktion? Erledigt es die Arbeit? Das sind Punkte, über die man nachdenken muss, oder ist es gut, dass man so schlecht sein möchte, dass man lieber nichts anderes machen möchte, bis das perfekt ist? Übung kann hilfreich sein, um die Muster zu finden, mit denen die Arbeit besser erledigt werden kann. Jedoch,
quelle