Designfehler und Umgang mit Demütigung daraus [geschlossen]


84

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.


17
vielleicht war das design korrekt, nur für ein anderes system ;-) investiere dein ego nicht in deinen code / designs, es gibt zu viele faktoren, um perfektion zu erwarten; Investieren Sie stattdessen in Ihre Lernbereitschaft, Ehrlichkeit (insbesondere Selbstaufrichtigkeit) und Teamfähigkeit. Das Design hätte am ersten Tag perfekt sein können, und die Anforderungen ändern sich am zweiten Tag! Lernen Sie daraus und fahren Sie fort
Steven A. Lowe

Warum die Anhaftung an Ihr Design? Das Ziel sollte sein, das Beste für das Produkt / Unternehmen zu tun. Schlage etwas vor. Fragen Sie die Leute nach ihren Gedanken. Bitten Sie sie, Fehler zu finden. Fehler gefunden? Spülen und wiederholen. Keine Fehler? Tue es. Benötigen Sie eine Debatte oder Diskussion über Vor- und Nachteile? Dann tu es. Verteidigen Sie Ihr Design dort, wo es verteidigt werden muss. Lass es los, wenn es einfach nicht funktioniert. Warum sollte das alles peinlich sein? Es ist Brainstorming. Die Leute sollten immer die Flexibilität haben, die wildesten, dümmsten Dinge
Swati

Ich glaube, Sie erzählen nicht die ganze Geschichte. Während nicht jeder immer gute Designs produziert, neigen sie nicht dazu, andere für inkompetent zu halten, es sei denn, es ist wirklich offensichtlich, dass der Designer keine Ahnung hat. Ich vermute, dass entweder Sie es einfach nicht "verstehen" oder sie versuchten, auf einige Verbesserungen hinzuweisen, und Sie waren anderer Meinung und lehnten höchstwahrscheinlich einige grundlegende Prinzipien in diesem Prozess ab. Beides würde mich veranlassen, mehr Kontrolle über die Arbeit eines Entwicklers zu haben.
Dunk

1
Ich war nicht anderer Meinung. Die Lösung, die ich herausbrachte, wurde von meinem Team nicht bestritten, da sie alle Junioren sind. Als ich dies unserem Kunden vorschlug, der mehr Erfahrung als ich hatte und auch von besserer Qualität war, wurde mir klar, als er das abschoss Irgendwo habe ich eine grundlegend falsche Entscheidung getroffen. Ich fühlte mich nicht nur wie ein Idiot, sondern auch wie ich meine Teammitglieder im Stich ließ, weil sie mir ihr Vertrauen geschenkt hatten und jetzt bezweifle ich, dass sie das tun werden. Ich beschuldige sie nicht. Ich würde mich verdächtig ansehen, wenn ich an ihrer Stelle wäre.
user20358

4
Ein guter Entwickler ist kein Entwickler, der immer die richtige Entscheidung trifft, sondern ein Entwickler, der eine schlechte Entscheidung trifft, sie zugibt und sich schnell davon erholt.
Rudy

Antworten:


177

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.


3
Ich mag diesen Kommentar wirklich. Ich habe in der Vergangenheit ein paar Fehler an meinem Arbeitsplatz gemacht, und obwohl ich nicht perfekt bin, habe ich versucht, daraus zu lernen. Ich ging zu meiner Kollegin (viel älter auf diesem Gebiet als ich) und fragte, was ich besser machen könnte und sie gab mir ein paar gute Hinweise. Ich denke gerne, dass es mir jetzt besser geht. Es tat zwar weh zu wissen, dass ich es versaut hatte und mich gedemütigt fühlte, aber irgendwann ist es vorbei. Das ist ermutigend für mich, weil es mir sagt, dass ich das Richtige getan habe und dass dies etwas ist, das passieren wird. Zumal dies eigentlich mein erster Job ist. :)
Ben Richards

1
Dein Recht, dass die Leute es vergessen. Ich half einmal einen halben Tag lang dabei, die Firma bei einem verpfuschten DB-Upgrade auszuschalten. Das war ein schrecklicher Tag, aber ich bin drüber hinweg und ich denke, alle anderen sind es auch.
Kratz

5
Schöne Anekdote und ein guter Punkt. Natürlich denke ich: Einfach für den CEO zu sagen. Hat sein / ihr eigenes Geld nicht angelegt. Jemand mit Haut im Spiel wird nicht so seltsam auf einen kolossalen Fehler reagieren. Wenn sie jedoch ehrlich sind, werden sie erkennen, dass sie auf dem Weg viele kleinere Fehler gemacht und von jedem gelernt haben. Der Schlüssel ist, schnell zu scheitern, ehrlich zu sein und für Ihren nächsten Fehler etwas Neues zu wählen . :) Diese Einstellung wird von Unternehmen anerkannt und belohnt, bei denen es sich lohnt, Karriere zu machen.
Greg Hendershott

1
@BiAiB Vizepräsident - bedeutet normalerweise "Stellvertreter".
Jonathan Henson

2
@ Greg H: "Bizzarely Detached?" Nein, nur rational. Jemand, der versucht, einen guten Job zu machen, der einen Fehler macht, lernt aus diesem Fehler. Es ist eine schlechte Entscheidung , diese Person, nachdem sie besser gelernt hat, durch eine andere Person zu ersetzen, die keine Erfahrung hat. Der neue Mann hat vielleicht eine saubere Bilanz, aber nur, weil er noch nie etwas Interessantes ausprobiert hat.
Zan Lynx

33

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:

  1. versuchen Sie, das Team zu reparieren
  2. Finden Sie ein neues Team (entweder intern oder bei einem neuen Arbeitgeber).

20

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."


Je mehr ich weiß, desto mehr weiß ich, dass ich es nicht weiß. Meine Wissensbreite wächst langsamer als mein Bewusstsein für Dinge, die ich wissen muss. Ich bemühe mich einfach, jeden Tag besser zu werden. Ich verwende die mir bekannten Best Practices. Ich habe gelernt, dass einige davon nicht so gut sein werden, wie ich denke. Leider stimme ich zu, dass es mit zunehmender Erfahrung einfacher wird, Fehler zuzugeben. Wenn Sie jedoch nicht die Erfahrung haben, sollten Sie mit Fehlern rechnen.
BillThor

Gute Antwort! Ich habe sicherlich meine Designfehler gemacht, aber ich glaube nicht, dass ich jemals von ihnen gedemütigt worden bin oder den Respekt meiner Teamkollegen verloren habe. Meine Entscheidungen wurden immer aus einem Grund getroffen, und wenn sich herausstellte, dass meine Überlegungen auf fehlerhaftem oder unvollständigem Wissen beruhten, habe ich den Fehler immer anerkannt und daran gearbeitet, ihn zu korrigieren.
Carson63000

8

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.


Ich werde zweitens "Kultur des Respekts". Ich bin leider einer von nur zwei Programmierern in unserem Unternehmen. Warum unglücklich? Denn jedes Mal, wenn ich (oder irgendjemand) einen Fehler mache, lacht der andere Programmierer in Ihrem Gesicht, als wären Sie ein Idiot. Schlimmer noch, wenn er einen Fehler macht, schafft er es immer, die Schuld an eine andere Stelle zu legen (ein anderer Mitarbeiter, Windows, Planetenausrichtung). So sollte es überhaupt nicht sein und deswegen bitte ich ihn auf keinen Fall um Hilfe, weil ich befürchte, dass es zu einem Pissing Contest wird.
Hermiod

6

Waren Sie bei den von Ihnen vorgeschlagenen Softwaredesigns immer von Grund auf korrekt?

Ja, ich bin ein Übermensch! Na klar nicht.

Wenn Sie ein Design herausgeben, das von Grund auf falsch war, neigen Sie dazu, den Respekt Ihrer Teamkollegen zu verlieren.

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.


4

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:

  1. Gib zu, du hast einen Fehler gemacht
  2. Machen Sie einen Plan, um das Problem zu beheben
  3. Stellen Sie sicher, dass Ihr Plan tatsächlich funktioniert
  4. Stellen Sie es erneut sicher.
  5. Repariere es!

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


3

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.


3

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).


Die Lösung, die ich herausbrachte, wurde von meinem Team nicht bestritten, da sie alle Junioren sind. Ich wurde in das Team geholt, um ein Problem zu lösen, bei dem das Team versagte. Außerdem gab es bereits ein Problem mit schlechtem Design, Code - Gerüchen usw. Ich wurde als Allheilmittel eingesetzt, um alles zu reparieren und den Kunden glücklich zu machen. Als ich unserem Kunden dieses neue Design vorschlug, der über mehr Erfahrung als ich und auch über eine bessere Qualität verfügte, wurde mir gerade als er es niederschrieb klar, dass ich irgendwo eine grundlegend falsche Entscheidung getroffen hatte. Es war inkrementell besser als das, was das Team getan hatte, aber immer noch viel im
Minus

Als leitende Ressource hätte ich diese Dinge kennen müssen. Ich bin sicher, mein Team denkt das auch.
User20358

@ user20358 Ich würde sagen, es sollte noch Zeit sein, deinen Ruf beim Team zu retten. Wichtige Probleme können nicht sofort behoben werden. Wurden Sie als One-Shot-Zauberkugel ausgewählt oder wurden Sie ausgewählt, um das Team kontinuierlich mit Erfahrung zu versorgen? Hoffentlich letzteres. Angenommen, Sie müssen sich in das Team integrieren, damit es Ihnen beibringt, was es auf diesem Weg gelernt hat, und Sie können Ihre Erfahrung nutzen, um es in eine bessere Richtung zu leiten. Würdigen Sie ihre Erfolge und leiten Sie sie an, damit sie Möglichkeiten zur Verbesserung des Produkts erkennen und entdecken.
5.

3

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.


3

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.


2

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.


1

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.


1

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.


Nein, ich schiebe nicht das schlechte Design. Ich wurde in das Team geholt, um Probleme zu lösen, an denen das Team ständig scheiterte. Außerdem gab es bereits ein Problem mit schlechtem Design, Code - Gerüchen usw. Ich wurde als Allheilmittel eingesetzt, um alles zu reparieren und den Kunden glücklich zu machen. Sagen wir einfach, als ich unserem Kunden dieses neue Design vorschlug, der mehr Erfahrung als ich und auch von besserer Qualität hat, wurde mir klar, dass ich irgendwo eine grundlegend falsche Entscheidung getroffen habe, als er es niederschrieb. Es war inkrementell besser als das, was das Team getan hatte, aber immer noch viel im
Minus

Ich habe zugegeben, dass ich mich geirrt habe, aber das hilft nicht viel, weil ich sowohl meinem Vorgesetzten als auch dem Kunden nach meiner Erfahrung besser hätte Bescheid wissen sollen.
user20358

1
Dann müssen Sie nur noch arbeiten, um sich kurzfristig zu beweisen. Menschen machen Fehler, es ist wichtig, wie sie sich von Amking erholen. Es hört sich so an, als hätten Sie nicht alle Informationen, die Sie für das Design benötigen. Vielleicht müssen Sie vor dem nächsten Designvorschlag gründlichere Nachforschungen anstellen. Wenn sich jemand bereits in einem schlechten Zustand befindet, ist es schwierig, alle Probleme zu beheben. Sie konzentrieren sich auf einige, aber die kritischeren sind möglicherweise nicht so offensichtlich.
HLGEM

0

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.


0

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.


0

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.


0

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 .


0

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 staticin 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,


Ich bin kein Jon Skeet :)
User20358

Ich habe auch einen ähnlichen Fehler gemacht. Entscheidung, eine statische Klasse als Controller in einer MVC-App beizubehalten. Ausgehend von einem prozeduralen Hintergrund entwickelt sich mein OOP-Denken jeden Tag weiter. Ich denke immer noch, dass ich eine Menge lernen muss, um zu entscheiden, wann ich abstrahieren soll und wann nicht. Wann erben, wann komponieren? Das Schlimmste ist, dass ich nach dem Abschuss Zeit mit Lernen verbringe und nach einiger Zeit das Gefühl habe, es endlich zu haben ... bis ich wieder abgeschossen werde ... und dann wieder Zeit mit Lernen verbringe.
user20358

Das Lernen macht mir nichts aus. Es ist nur der Ruf, den Sie verlieren, wenn Sie immer wieder Fehler machen, auch wenn sie jedes Mal anders sind. Für alle sieht es immer noch so aus, als hättest du viele Fehler gemacht. Nicht jedes Mal ein neues, von dem du gelernt hast und das du besser geworden bist.
user20358
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.