Es scheint, dass mit zunehmender Erfahrung mit den Tools, mit denen Sie arbeiten müssen, der Anreiz, neue Dinge auszuprobieren, abnimmt.
Als ich an diesem Job als Programmierer neu war, versuchen , neue Dinge aus, online forschen, hat mich mehr produktiv, weil ich fand oft einen Weg (oder Bibliothek), die die Aufgabe erleichtert , dass der Code Framework bereits vorhanden. Die Verwendung von etwas Neuem - sowohl für mich als auch im Kontext der gegebenen Codebasis - hat mich produktiver gemacht.
Jetzt bemerkte ich, dass es mehr und mehr Fälle , in denen für ein bestimmtes Problem, ich weiß , dass es wahrscheinlich ist eine bessere Lösung „da draußen“, und die Suche nach wäre es - vermutlich - der Code zu verbessern. Angesichts meiner nun vertrauten Kenntnisse der Codebasis ist es jedoch weitaus einfacher, die uns zur Verfügung stehenden suboptimalen Tools zu verwenden und eine Lösung (einschließlich Tests) zum Laufen zu bringen, als etwas Neues und "Besseres" zu finden und die Codebasis "zu verbessern".
Es gibt also diese Spannung: "Mach es richtig" vs. "Erledige die Arbeit anständig ".
Passiert das vielen Entwicklern? Ist das ein bekanntes spezifisches Problem? (Ist es doch ein echtes Problem?) Hat es tatsächlich mit zunehmender Erfahrung zu tun?
Oh, und Anmerkung: Ich mag meinen Job immer noch und mag es, ihn zu behalten. Es scheint nur so - immer interessant! - Der Forschungsteil wird kleiner, wenn ich die Codebasis und die Problemstellungen erfahre, denen wir mit unserer App gegenüberstehen.
quelle
Antworten:
Es ist oft riskant, neue Dinge auszuprobieren. Manchmal geraten wir in Schwierigkeiten, weil wir dazu neigen, zwei Dinge zu tun:
Überschätze, wie nützlich das coole / neue / pfiffige Ding ist. Wir sehen ein cooles Beispiel, einen Code, der online geworfen wird. Sehr cool finden wir. Sehr cool! In XI kann Aufgabe Y zehnmal schneller erledigt werden. Es ist eindeutig überlegen. Wir sehen noch nicht alle "unbekannten Unbekannten". Wir sind nicht über die Probleme gestolpert, die die Verkäufer der neuen Sache auslassen. Wir haben nicht genug Erfahrung mit der neuen Sache, um die Landminen auf der Straße warten zu sehen.
Unterschätzen Sie, wie nützlich die vorhandenen Tools / Frameworks / Software / Dinge sind. Wir waren oft nicht da, als das aktuelle System ursprünglich gebaut wurde. Wir schätzen die heiklen Kompromisse nicht, die gemacht wurden. Es ist einfach, Quarterback am Montagmorgen auf einem vorhandenen System zu spielen, aber es funktioniert . Wahrscheinlich ist es sehr seltsam, weil es einen sehr spezifischen Kompromiss zwischen Wartungsfreundlichkeit, Funktionsfähigkeit und guter Leistung gibt. Ja sicher, es ist komisch. Am wichtigsten ist vielleicht, dass das Team ein Experte für die aktuelle Verrücktheit ist und weiß, wie man diese Verrücktheit umgeht. Sie kennen die Landminen und die Fallen und die Fallstricke, die es zu vermeiden gilt. Genau deshalb, weil wir alle Warzen in der aktuellen Art und Weise sehen, wie wir Dinge tun, sind wir sogar daran interessiert, mit neuen Dingen zu spielen.
Aber neue Dinge nicht auszuprobieren und zu konservativ zu handeln, ist wahrscheinlich noch gefährlicher. Klar, wir müssen vorsichtig sein, aber wenn wir nicht herausfinden, wie die beste Mausefalle gebaut werden kann, werden unsere Konkurrenten eher bereit sein, etwas Neues auszuprobieren und Ärsche rausschmeißen! Konservativ zu handeln und sich nicht weiterzuentwickeln, kann vor allem in einem wettbewerbsintensiven Markt zu einem unvermeidlichen Untergang führen.
Ja, wir müssen das Gleichgewicht zwischen Aufrechterhaltung und Versand der aktuellen Dinge mit einem gewissen Maß an spielerischen / lehrreichen Experimenten und neuen Wegen zur Lösung von Problemen herstellen, wobei zu berücksichtigen ist, dass viele dieser neuen Wege Sackgassen sind, während sich andere auszahlen können. IMO Dies ist ein guter Grund, warum viele Unternehmen 20% Zeit haben, mit neuen Dingen zu spielen. Sie wissen oft, dass sie nicht arbeiten, aber viele der Ideen, die aus 20% der Zeit kommen, werden zu Gangbustern. Ohne Zeit zum Spielen und Experimentieren kann man leicht als Firma stagnieren und sich so richtig durchdrehen.
quelle
Es passiert die ganze Zeit . Ich habe dies in anderen Posts gesagt, aber mehr als oft nicht, Sie sind nicht im Geschäft, eleganten Code zu entwickeln, Sie sind im Geschäft, ein Produkt zu versenden. Aus diesem Grund wird es Ihnen schwer fallen, einen Manager zu finden, der bereit ist,
n
Stunden für die Behebung von Problemen zuzuweisen , die (am Ende des Tages) die Endbenutzererfahrung nicht wesentlich verbessern. Es wird Ihnen genauso schwer fallen, einen Manager zu finden, der bereit ist,n
Stunden für die Forschung aufzuwenden (ohne klares Endziel), mit der Ausnahme, dass es wahrscheinlich etwas gibt, das besser ist als das, was getan wird.Wenn Ihre Anwendung jedoch Engpässe aufweist, die Sie mithilfe von Profilerstellungstools und dergleichen festgestellt haben, und Sie die erwartete Verbesserung der Benutzererfahrung, die durch die Behebung dieser Engpässe entstehen würde, eindeutig quantifizieren können, sollten Sie (relativ leicht) Zeit für F & E haben arbeiten Sie daran, sie mithilfe von Techniken zu optimieren, die Sie aus verschiedenen Quellen finden können.
quelle
Ich denke, ein Teil davon hängt von der Erfahrung und dem tieferen Wissen ab, wie man einige Probleme erfolgreich löst.
Wenn Sie neu sind, sind auch alle Probleme neu und Sie müssen nachforschen, wie Sie sie lösen können. Da Sie jedoch die gleiche Art von Problem wiederholt gelöst haben, sinkt der Forschungsbedarf, da Sie eine erfolgreiche Lösung für dieses Problem kennen.
Dann neigen Sie nur dazu, die neuen Probleme zu untersuchen, oder die Probleme, bei denen das alte und erprobte entweder nicht mehr funktioniert (veraltet) oder ein Leistungs- oder Ausfallproblem verursacht. Wenn Sie anfangen, ein komplexes System eingehender zu verstehen, wissen Sie, dass Sie nicht die Zeit haben, neue Techniken bei jedem Auftreten realistisch anzuwenden, und Sie haben durch Erfahrung herausgefunden, dass die neue Technik häufig nicht funktioniert bis zu seinem Hype und schafft mehr Probleme als es gelöst hat. So werden Sie weniger geneigt, neue Werkzeuge und Techniken zu verwenden, wenn Sie sie nicht wirklich benötigen, um das Problem zu lösen.
Eine geringere Neigung sollte jedoch nicht bedeuten, dass Sie aufhören zu lernen oder niemals eine neue Technik anwenden, sondern dass Sie vorsichtiger sind, wann sie angemessen ist.
quelle
Hier sind einige Details:
quelle
Ja, das ist mir schon passiert. Normalerweise müssen Sie eine Risikoanalyse durchführen, um festzustellen, wie viel Zeit das Erlernen der neuen Technik kostet. Können Sie eine ältere Technik wiederherstellen und anwenden, wenn die neue Technik die Erwartungen nicht erfüllt? Ich bevorzuge es, neue Techniken zu lernen, wenn ich kann, aber wenn der Druck nachlässt und ich es mir nicht leisten kann, neue Dinge auszuprobieren, die fehlschlagen könnten, halte ich mich an bewährte Methoden.
Im Allgemeinen finde ich, dass die beste Zeit zum Erlernen neuer Techniken der Beginn eines neuen Projekts ist. Normalerweise ist der Druck nicht zu groß, und wenn Sie etwas Neues finden, das gut funktioniert, können Sie es problemlos in den Rest des Projekts integrieren. Die schlechteste Zeit, um zu versuchen, neue Dinge zu lernen, sind die letzten paar hektischen Wochen vor einem großen Einsatz.
quelle
Ja, neue Dinge beeinträchtigen die Produktivität
Ja natürlich. Selbst im besten Fall erfordern neue Dinge zusätzliche Zeit, weil sie nicht vertraut sind. Es kann oft viel mehr Zeit kosten.
Nein, neue Techniken können die Produktivität verbessern
Jede neue Technik, mit der Sie die Lösung einfacher ausdrücken können, verbessert Ihre Produktivität. Dies kann so einfach sein wie der Übergang von großen
if-elseif
Bedingungen zu einer Versandtabelle.quelle
Ja, es kann die Produktivität beeinträchtigen. Mein Ex wurde gebeten, einmal langweilige Datenverarbeitungsaufgaben zu erledigen, und sie entschied, dass es besser wäre, ein langes Programm zu schreiben, um mit den Daten umzugehen, und es dann auszuführen - was das Problem in Sekundenschnelle beheben würde.
Sie brauchte eine Woche, um es zu schreiben, aber das Problem wurde in Sekundenschnelle gelöst.
Ich denke, dasselbe gilt für Ihre Frage: Ja, Sie können Ihre Produktivität steigern, indem Sie neue Dinge lernen, aber es ist immer noch besser, Ihr vorhandenes Wissen auf die Aufgabe anzuwenden und sie insgesamt schneller zu erledigen. Wen interessiert es, eine neue Bibliothek zu finden und zu lernen, wenn Sie Ihre eigene in kürzerer Zeit schreiben können?
Vergessen Sie auch nicht, dass es oftmals besser ist, es mit vorhandenen Werkzeugen anständig zu machen, als neue Werkzeuge einzusetzen. Jedes Mal, wenn Sie neue Werkzeuge hinzufügen, erhöhen Sie die erforderliche Wartungsfläche, was wiederum alle anderen Benutzer verlangsamt (und verlangsamt) Machen Sie Ihren Code ziemlich chaotisch - ich denke an die Schichten der 'neuen' Technologie, die im Laufe der Zeit in Legacy übergegangen sind, aber in unserem Code immer noch Dinge schrecklich machen. Rückblickend wäre es besser gewesen, nur die alten C-Methoden zu verwenden, anstatt sie hinzuzufügen all das COM und all das VB und all das .NET und jetzt auch HTML hineinschaufeln)
quelle