Ich denke immer wieder über diese Frage nach. Ich möchte die Dinge richtig machen: sauberen, verständlichen und korrekten Code schreiben, der einfach zu pflegen ist. Am Ende schreibe ich jedoch Patch für Patch. Nur weil es keine Zeit gibt, Kunden warten, ein Fehler sollte über Nacht behoben werden, das Unternehmen verliert Geld für dieses Problem, ein Manager drängt hart usw. usw.
Ich weiß sehr gut, dass ich auf lange Sicht mehr Zeit mit diesen Patches verschwenden werde, aber da diese Zeit Monate der Arbeit umfasst, kümmert es niemanden. Wie einer meiner Manager sagte: "Wir wissen nicht, ob es langfristig dauern wird, wenn wir es jetzt nicht reparieren."
Ich bin sicher, dass ich nicht der einzige bin, der in diesen endlosen Real / Ideal Choice-Zyklen gefangen ist. Wie gehen Sie damit um, meine Programmierkollegen?
UPDATE: Vielen Dank für diese interessante Diskussion. Es ist traurig, dass so viele Menschen täglich zwischen einer Quantität und einer Qualität ihres Codes wählen müssen. Überraschenderweise denken viele, dass es möglich ist, diesen Kampf zu gewinnen. Vielen Dank für diese Ermutigung.
Antworten:
Tatsächlich ist dies eine sehr schwierige Frage, da es keine absolut richtige Antwort gibt. In unserer Organisation haben wir bessere Prozesse eingeführt, um besseren Code zu produzieren. Wir haben unsere Codierungsstandards aktualisiert, um zu reflektieren, wie wir als Gruppe Code schreiben, und wir haben eine sehr starke Test / Refactor / Design / Code-Schleife eingeführt. Wir liefern ständig oder versuchen es zumindest. Zumindest müssen wir den Stakeholdern alle zwei Wochen etwas zeigen. Wir fühlen uns als Software-Handwerker und die Moral ist hoch. Trotz all dieser Prüfungen leiden wir unter dem gleichen Problem wie Sie.
Letztendlich liefern wir ein Produkt an einen zahlenden Kunden. Dieser Kunde hat Bedürfnisse und Erwartungen, realistisch oder nicht. Oft bringt uns das Verkaufsteam in Schwierigkeiten, nur um eine Provision zu erhalten. Manchmal hat der Kunde Go-Live-Erwartungen, die unrealistisch sind oder Änderungen erfordern, obwohl wir einen Vertrag abgeschlossen haben. Timelines passieren. PTO und Ausfalltage während eines Sprints können vorkommen. Alle möglichen kleinen Dinge können in einer Situation gipfeln, in der wir gezwungen sind, das Rätsel „Mach es richtig“ oder „Mach es so schnell wie möglich“ zu lösen. Fast immer sind wir gezwungen, es so schnell wie möglich zu tun.
Als Software-Handwerker, Entwickler, Programmierer, Leute, die für einen Job programmieren - es ist unsere natürliche Neigung, "es richtig zu machen". "Mach es so schnell wie möglich" ist das, was passiert, wenn wir arbeiten, um zu überleben, wie es die meisten von uns tun. Das Gleichgewicht ist hart.
Ich beginne immer damit, mich an die Geschäftsleitung zu wenden (ich bin Director of Software Development und ein aktiver Entwickler in dieser Gruppe), um den Zeitplan, das Team und die geleistete Arbeit zu verteidigen. Normalerweise wird mir dann gesagt, dass der Kunde es jetzt haben muss und es funktionieren muss. Wenn ich weiß, dass es keinen Raum für Verhandlungen oder für Spenden gibt, gehe ich zurück und arbeite mit dem Team zusammen, um zu sehen, welche Ecken gekürzt werden können. Ich werde nicht auf die Qualität der Funktion verzichten, die den Kunden dazu zwingt, sie so schnell wie möglich zu bekommen, aber es wird etwas passieren und sie wird in einen anderen Sprint getrieben. Das ist fast immer in Ordnung.
Wenn Sie nicht liefern können, weil es so viele Fehler gibt, die Codequalität schlecht und schlechter wird und die Fristen kürzer werden, dann befinden Sie sich in einer anderen Situation als von mir beschrieben. In diesem Fall können aktuelle oder frühere Misswirtschaft, schlechte Entwicklungspraktiken, die zu einer schlechten Codequalität führten, oder andere Faktoren Sie auf den Todesmarsch führen.
Meiner Meinung nach tun Sie hier Ihr Bestes, um guten Code und bewährte Methoden zu verteidigen und Ihr Unternehmen aus den Gräben herauszuholen. Wenn es keinen einzelnen Kollegen gibt, der bereit ist, zuzuhören oder gegen das Management für die Gruppe zu kämpfen, ist es möglicherweise an der Zeit, sich nach einem neuen Job umzusehen.
Am Ende trumpft das wirkliche Leben alle. Wenn Sie für ein Unternehmen arbeiten, das verkaufen muss, was Sie entwickeln, werden Sie täglich auf diesen Kompromiss stoßen. Nur wenn ich mich bemühe, frühzeitig gute Entwicklungsprinzipien zu erreichen, habe ich es geschafft, der Codequalitätskurve einen Schritt voraus zu sein.
Das Hin und Her zwischen Entwicklern und Verkäufern erinnert mich an einen Witz. "Was ist der Unterschied zwischen einem Gebrauchtwagenhändler und einem Softwareverkäufer? Wenigstens der Gebrauchtwagenhändler weiß, dass er lügt." Halten Sie Ihr Kinn hoch und versuchen Sie dabei, "das Richtige zu tun".
quelle
Eine Sache, die ich in meiner Karriere erkannt habe, ist, dass es immer Zeit gibt, es richtig zu machen. Ja, Ihr Manager drängt vielleicht. Der Kunde könnte sauer sein. Aber sie wissen nicht, wie lange die Dinge dauern. Wenn Sie (Ihr Entwicklerteam) es nicht tun, wird es nicht erledigt. Sie halten alle Hebel.
Weil Sie wissen, warum Ihr Vorgesetzter Sie oder Ihren Kunden wirklich verärgert? Schlechte Qualität .
quelle
Das läuft auf das hinaus, was ich mir als "The Eternal Conflict" (zwischen Business und Engineering) vorgestellt habe. Ich habe keine Lösung, da es sich um ein Problem handelt, das nie verschwindet, aber Sie können Maßnahmen ergreifen, um Abhilfe zu schaffen.
Was die Leute oft nicht merken, ist, dass wir als Ingenieure einfach davon ausgehen, dass das Problem des "erfolgreichen Geschäfts" immer eine Selbstverständlichkeit ist. Wir möchten, dass unser Code schön und ordentlich ist und gewartet werden kann, damit wir neue Funktionen hinzufügen und bestehende schnell und mit einem Minimum an Kunden, die für uns die Qualitätssicherung übernehmen, optimieren können, indem wir bizarre Randfälle entdecken, die durch besseren Code vereitelt worden wären. Kunden zu halten und einen Wettbewerbsvorteil mit Funktionen und Finessen zu erzielen, die niemand sonst schnell genug erreichen kann, sind beides Geschäftserfolge, zu denen guter Code direkt beiträgt und die viel darüber informieren, warum wir überhaupt besseren Code wollen.
Also buchstabiere es. "Wir möchten X in unserer Codebasis implementieren, da sich dies, wenn wir dies nicht tun, negativ auf das Geschäft auswirkt" oder "... weil dies unsere Wettbewerbsfähigkeit verbessert, indem wir unsere Fähigkeit verbessern, neue Verbesserungen und Funktionen schneller umzusetzen . "
Geben Sie Ihr Bestes, um konkrete Beweise dafür zu erhalten, dass Verbesserungen funktionieren. Wenn das Verbessern einer Teilmenge einer App zu einer schnelleren Funktion / Verbesserung geführt hat, überprüfen Sie, welches Backlog-Tool Sie möglicherweise verwenden, um Beweise dafür zu erhalten, und weisen Sie bei entsprechenden Besprechungen darauf hin.
Egos sind oft ein Problem. Eine Sache, die Ingenieurteams dringend benötigen, ist es, den Wert eines einheitlichen Ansatzes zur Lösung bestimmter Arten von Problemen zu ermitteln, den jeder hat, der seine eigene Tasse Kool Aid d'jour trinkt, weil er es besser weiß. Es ist in Ordnung zu glauben, dass die Präferenz des anderen schlechter ist als Ihre, aber Wertekonsistenz über mehr Recht, wenn sein Ansatz funktioniert und es ein Argument ist, das Sie nicht gewinnen können. Kompromisse aus Gründen der Konsistenz sind der Schlüssel. Wenn die Dinge konsistent sind, ist es schwieriger, sie falsch zu machen, da der konsistent festgelegte Weg normalerweise auch der schnellste ist.
Es gibt zwei Schulen von Frameworks / Toolsets / Bibliotheken / was auch immer. "Setze 99% davon für mich ein, damit ich sehr wenig wissen / tun muss" oder "um mir aus dem Weg zu gehen, wenn ich dich dort nicht haben will, aber hilf mir sehr schnell und konsequent mit Sachen, die ich eigentlich will auf der Karotte anstatt Peitsche Prinzip zu verwenden. " Bevorzugen Sie den zweiten. Flexibilität und granulare Kontrolle sollten auf dem Altar des schnellen Turnaround niemals geopfert werden, da die Frage "Wir können das nicht, weil uns unsere eigenen Tools nicht lassen" niemals eine akzeptable Antwort ist und die Frage immer für Nicht-Experten auftaucht. Trivial / Einweg-Produktentwicklung. Nach meiner Erfahrung werden unflexible Werkzeuge fast immer weit aufgerissen oder unelegant bearbeitet und verursachen ein großes, nicht zu wartendes Durcheinander. Meistens nicht, Die flexiblen / einfacher zu modifizierenden Lösungen sind auf kurze Sicht genauso oder nahezu genauso schnell. Schnell, flexibel und wartbar sind mit den richtigen Werkzeugen möglich.
Ich habe das Gefühl, dass dies eine Frage aus Entwicklersicht ist, aber ich war in viel zu vielen Situationen, in denen Technologieentscheidungen ohne Ingenieursaufwand getroffen wurden. Was zum Teufel ist das? Ja, irgendjemand muss letztendlich den letzten Anruf tätigen, aber wenn Sie kein technischer Manager sind, sollten Sie sich eine qualifizierte Meinung einholen. Alles, was verspricht, Geld zu sparen, weil die Leute nicht so schlau sein müssen oder weil es die Entwickler vor sich selbst schützt, ist eine schmutzige, schmutzige Lüge. Stellen Sie Talente ein, denen Sie vertrauen können. Sagen Sie ihnen, was Sie von einem Stack oder einer anderen technischen Lösung erwarten, und nehmen Sie deren Input ernst, bevor Sie sich für einen technischen Zug entscheiden.
Die Tools sind für die Implementierung gedacht und können Ihnen als solche helfen. Oberste Priorität muss jedoch die Architektur haben, unabhängig davon, welches Spielzeug Sie für die Erstellung dieser Architektur haben. Am Ende des Tages sind KISS und DRY und alle hervorragenden Philosophien, die von dieser Angelegenheit ausgehen, wichtiger als die Frage, ob es sich um .NET oder Java handelt oder um etwas, das sowohl kostenlos als auch nicht scheiße ist.
Wenn die Geschäftsleitung darauf besteht, dass Sie es falsch machen, speichern Sie diese E-Mail, insbesondere den Teil, in dem Sie angegeben haben, warum es Sie kosten würde. Wenn alle Ihre Vorhersagen zutreffen und schwerwiegende geschäftsschädigende Probleme auftreten, haben Sie eine Menge Argumente, um die Bedenken der Ingenieure ernst zu nehmen. Aber pass mal gut auf. Inmitten des lodernden Infernos ist eine schlechte Zeit für ein "Ich-habe-dir-so" beim Befolgen des Feuerkodes. Löschen Sie das Feuer und bringen Sie Ihre Liste der zuvor ignorierten Bedenken zu einer nachträglichen Besprechung / Konversation. Versuchen Sie, sich weiterhin auf technische Bedenken zu konzentrieren, die geäußert und ignoriert wurden, und begründen Sie, warum sie ignoriert wurden, und nicht auf die Namen der tatsächlichen Personen die Entscheidung zu ignorieren. Du bist ein Ingenieur. Bleiben Sie bei den Problemen, nicht bei den Menschen. " Wir äußerten Besorgnis über X, weil wir befürchteten, dass dies zu Y-Problemen führen würde. Uns wurde gesagt, Z und damit fertig zu werden. "
quelle
Es gibt nur eine Lösung. Reservieren Sie ungefähr 10-20% der Projekt- / Arbeitszeit für das Refactoring. Wenn es schwierig ist, das Management davon zu überzeugen, dass es sich um eine vertretbare Aufgabe handelt, geben Sie ihnen das einzig wahre Argument: Ohne Refactoring werden die Kosten für die Codewartung mit der Zeit exponentiell ansteigen. Es ist gut, ein paar Metriken / Artikel / Forschungsergebnisse zu haben, um diese These während des Treffens mit dem Manager zu untermauern :)
Bearbeiten: In diesem Whitepaper werden einige gute Ressourcen zum Thema "Refactoring im Vergleich zu steigenden Wartungskosten" aufgeführt: http://www.omnext.net/downloads/Whitepaper_Omnext.pdf
quelle
Wann immer Sie Zeit haben, etwas richtig zu machen, verwenden Sie es - schreiben Sie den bestmöglichen Code und verbessern Sie ihn stetig. Machen Sie sich Ihren Job nicht schwer, indem Sie schlampig werden und technische Schulden machen, wenn es nicht nötig ist.
Notrufe zur Behebung eines schwerwiegenden Fehlers können Sie nicht selbst kontrollieren. Wenn sie auftreten, müssen Sie so schnell wie möglich reagieren, das ist das Leben. Natürlich, wenn Sie den Eindruck haben, dass Ihr ganzer Job aus Notrufen besteht und Sie nie genug Zeit haben, um die Dinge richtig zu machen, dann sind Sie auf dem Weg zum Burn-out und sollten mit Ihrem Chef sprechen.
Wenn das nicht hilft, gibt es immer noch "Scottys Strategie", genug Zeit zu haben, um die Dinge richtig zu machen: Multiplizieren Sie alle Ihre Schätzungen mit dem Faktor 4:
http://blogs.popart.com/2007/07/what-scotty-from-star-trek-can-teach-us-about-managing-expectations/
quelle
Ich sehe meine Aufgabe darin, die beste Software zu liefern, die innerhalb der für das Projekt zulässigen Zeit möglich ist. Wenn ich besorgt bin, dass das Qualitätsniveau niedrig sein wird, werde ich den Projektverantwortlichen engagieren. Ich beschreibe meine Bedenken und diskutiere die potenziellen Risiken der Bereitstellung der Software in diesem Zustand. Eines von drei Dingen wird zu diesem Zeitpunkt passieren:
Der Projektbesitzer wird die Risiken nicht akzeptieren wollen und den Zeitplan verschieben, damit wir mehr Zeit für die Softwarequalität verwenden können.
Der Projektverantwortliche möchte die Risiken nicht akzeptieren, kann den Zeitplan jedoch nicht zurückstellen. In diesem Fall müssen wir darüber verhandeln, welche Features / Funktionen aus dem Projektumfang entfernt werden sollen, um mehr Zeit für die Softwarequalität der Hauptteile der Anwendung zu verwenden.
Der Projektbesitzer wird die Risiken akzeptieren und die Software von geringer Qualität wird termingerecht ausfallen. Manchmal ist das Geschäftsrisiko, nichts bereitzustellen (oder zu spät bereitzustellen), viel größer als das Geschäftsrisiko, Software von geringer Qualität bereitzustellen, und nur der Projektbesitzer kann diese Entscheidung treffen.
Das Schreiben von Software ähnelt dem Malen eines Porträts. Es ist unmöglich zu sagen, dass ein Porträt "richtig" oder "perfekt" gemacht wird. Perfekt ist der Feind von getan. Man könnte buchstäblich einen Monat damit verbringen, an einer einzigen Methode zu arbeiten, und sie wird von manchen immer noch nicht als "perfekt" angesehen. Meine Aufgabe ist es, ein Porträt zu malen, mit dem der Kunde zufrieden ist.
quelle
Das wird nicht in jedem Fall funktionieren, aber ich hatte etwas Glück mit dieser Strategie, wenn das Problem ein Produktionsausfall ist, der dringend behoben werden muss. Schätzen Sie die Zeit für eine schnelle Reparatur, um die Produktion zum Laufen zu bringen, und die Zeit für die Qualitätskorrektur für die Zukunft. Präsentieren Sie die Schätzungen Ihrem Chef / Kunden und lassen Sie sich die Zeit für beide genehmigen. Dann erledigen Sie die Schnellreparatur, um die Produktion zum Laufen zu bringen, und sofort danach eine Langzeitreparatur, wenn der dringende Zeitdruck nachlässt. Ich finde , dass , wenn ich es präsentieren , wie ich diese Zeit brauchen , um den Job richtig gemacht zu bekommen, aber ich kann eine legen temporäre Fix in Kraft, bis ich das tun kann, dass meine Kunden scheinen diesen Ansatz zu mögen. Es wird wieder zum Laufen gebracht und es wird für den langfristigen Bedarf gesorgt.
quelle
Das optimale Gleichgewicht könnte darin bestehen, so viel zusätzliche Zeit damit zu verbringen, es richtig zu machen, wie Sie es verschwenden würden, die Fehler zu beheben, die Sie beseitigen, indem Sie es richtig machen. Vermeiden Sie eine Vergoldung der Lösung. In den meisten Fällen ist die richtig gemachte Volkswagen-Lösung so gut wie die Cadillac-Lösung. Normalerweise können Sie später ein Upgrade durchführen, wenn sich herausstellt, dass Sie den Cadillac benötigen.
Das Korrigieren von Code, der nicht den bewährten Methoden entspricht, dauert häufig viel länger. Der Versuch, herauszufinden, woher die Null kommt, wenn der Aufruf wie abcde () aussieht, kann lange dauern.
Das Anwenden von DRY und das Wiederverwenden von vorhandenem Code ist normalerweise viel schneller als das Codieren und Testen einer weiteren Lösung. Es erleichtert auch das Anwenden von Änderungen, wenn sie auftreten. Sie müssen nur einen Satz Code ändern und testen, nicht zwei, drei oder zwanzig.
Streben Sie einen soliden Basiscode an. Es kann viel Zeit verschwendet werden, um es zu perfektionieren. Es gibt bewährte Methoden, die zu schnellem Code führen, der jedoch nicht unbedingt der schnellste sein muss. Darüber hinaus kann es Zeit kosten, Engpässe zu antizipieren und den Code während der Erstellung zu optimieren. Schlimmer noch, die Optimierung kann den Code verlangsamen.
Stellen Sie, wann immer möglich, die minimale Arbeitslösung bereit. Ich habe Wochen vergeudete Vergoldungslösungen gesehen. Seien Sie äußerst vorsichtig mit dem Umfang.
Ich habe einige Zeit an einem Projekt gearbeitet, das sechs Monate hätte dauern sollen. Als ich dazukam, war es seit eineinhalb Jahren in Arbeit. Der Projektleiter hatte dem Projektmanager zu Beginn eine Frage gestellt: "Soll ich es richtig machen oder darauf reagieren?" In einer Woche wurde ein Feature für Montag, Mittwoch und Freitag implementiert. Dienstag und Donnerstag wurde das Feature entfernt.
BEARBEITEN: Wenn der Code zufriedenstellend ist, lassen Sie ihn. Gehen Sie nicht zurück, um das Problem zu beheben, wenn Sie einen besseren Weg finden, dies zu tun. Wenn Sie sich eine Notiz machen müssen. Wenn Änderungen erforderlich sind, überprüfen Sie Ihre Idee und setzen Sie sie um, falls dies noch sinnvoll ist.
Wenn es Stellen gibt, an denen Sie Erweiterungen für zukünftige Funktionen implementieren würden, implementieren Sie die Erweiterungen nicht. Sie können einen Markierungskommentar hinterlassen, um daran zu erinnern, wo Sie die Änderungen vornehmen müssen.
quelle
Lass es funktionieren, dann mach es perfekt
Ich mag ein wenig nachlassen - aber wenn Zeit von entscheidender Bedeutung ist, sollte es Ihre Hauptpriorität sein, es zum Laufen zu bringen, einfach so. Kommentieren Sie die Mängel in Ihrem Code ausführlich und notieren Sie sich, was Sie in der von Ihnen verwendeten Projekt- / Zeitverwaltungssoftware getan haben.
Hoffentlich haben Sie dadurch mehr Zeit, auf diese Probleme zurückzukommen und sie zu perfektionieren.
Natürlich gibt es keine absolut richtige Antwort darauf, aber ich versuche, mich daran zu halten. Sie finden es möglicherweise nicht passend zu Ihrem aktuellen Arbeitsstil. Was mich zu der Alternative führt ...
Finden Sie einfach eine Methode, die für Sie funktioniert . und dann bleiben Sie dabei. Jeder hat seine eigene Art, mit Projekten umzugehen, und es gibt keinen einheitlichen Ansatz. Finden Sie einen Ansatz und machen Sie ihn zu Ihrem.
quelle
"Richtig handeln" bedeutet, die richtigen Kompromisse für eine bestimmte Situation einzugehen. Einige von ihnen sind:
Wenn ein Teil des Codes einmal verwendet und weggeworfen wird, kann offensichtlich # 2 für jeden der anderen geopfert werden. (Aber Vorsicht: Sie denken vielleicht , Sie werden es wegwerfen, dann müssen Sie es weiter benutzen und warten. An diesem Punkt wird es schwieriger, die Leute davon zu überzeugen, Ihnen Zeit zu geben, etwas zu verbessern, das "funktioniert".)
Wenn Sie und / oder Ihr Team weiterhin Code verwenden und aktualisieren, bedeutet das Verwenden von Verknüpfungen nur, dass Sie sich später verlangsamen.
Wenn Sie derzeit fehlerhaften Code bereitstellen (schwach auf # 4) und lange dafür brauchen (schwach auf # 1), und weil Sie versuchen, Code zu aktualisieren, der auf # 2 schwach war, haben Sie Ich habe ein solides, pragmatisches Argument für die Änderung Ihrer Praktiken.
quelle
Wenn es ein Fehler ist, tun Sie es so schnell wie möglich. Wenn es sich um eine neue Funktion handelt, nehmen Sie sich Zeit.
Und wenn Sie für ein Unternehmen arbeiten, das die Entwicklerarbeit nicht respektiert, haben Sie möglicherweise keine andere Wahl, als dies schnell und unter Beibehaltung der Qualität zu tun.
Ich habe für eine Reihe von Unternehmen gearbeitet, die einfach von Projekt zu Projekt gingen und alles schnell erledigten. Letztendlich hatten sie in jedem Projekt wenig Erfolg, da die Implementierung (nicht nur die Programmierung) überstürzt war.
Die besten Unternehmen verstehen, dass gute Software Zeit und Handwerkskunst benötigt.
quelle
Erstellen Sie im Notfall die Patch-Lösung. Erstellen Sie einen neuen Fehler in der Fehlerverfolgung, indem Sie dies erwähnen. Machen Sie es richtig, wann immer Sie Zeit haben.
quelle
Ich glaube, ich mache das, was jeder, der in dieser Branche nicht weiterkommt, macht. Ich mache es so schnell ich kann und wenn ich einige der netten Dinge weglassen muss, die helfen könnten, Probleme in der Zukunft zu verhindern oder das Lösen von Problemen in der Zukunft zu erleichtern, dann mache ich das. Es ist keine optimale Situation, aber wenn Sie an Terminen festhalten, die auf Schätzungen basieren, die auf Schätzungen basieren und auf vielen unbekannten Variablen basieren, ist dies so ziemlich das Beste, was Sie tun können.
quelle
Hier ist ein guter Plan:
quelle
Ich mache die meisten Dinge routinemäßig, so wie es mir zuerst einfällt. Das geht schnell und ich denke gerne, dass ich ein anständiger Programmierer bin und die meisten Dinge beim ersten Versuch einigermaßen in Ordnung mache.
Von Zeit zu Zeit (ich würde es gerne zweimal am Tag sagen, aber zweimal pro Woche ist realistischer), denke ich, "was wäre eine FANTASTISCHE Möglichkeit, dies zu tun , wenn ich etwas extrem Langweiliges in der Routine finde. " ? " und ich verbringe die zusätzliche Zeit damit, einen besseren Weg zu finden oder zu finden.
Wenn ich das oft genug mache, wird sich meine Routinecodierung weiter verbessern, denke ich.
quelle
Software ist seltsames Zeug und der Softwareentwicklungsprozess ist seltsamer.
Im Gegensatz zu den meisten Dingen im wirklichen Leben, aber wie die meisten Dinge, die mit Computern zu tun haben
Schneller ist zuverlässiger
Dies widerspricht jeder Intuition, die Sie bisher in Ihrem Leben kennengelernt haben. Hochabgestimmte Autos brechen häufiger zusammen als Standardautos. Schnell gebaute Häuser brechen schneller auseinander.
Langsame methodische Abläufe führen jedoch nicht zu besserer Software. Leute, die Wochen damit verbringen, Anforderungsdokumente und Tage damit zu verbringen, Klassendiagramme zu erstellen, bevor sie Code schreiben, produzieren keine bessere Software. Der Typ, der die Grundvoraussetzung erhält, einige Probleme klärt, ein Klassendiagramm auf das Whiteboard kritzelt und von seinem Team codiert wird, produziert fast immer zuverlässigere und bessere Software, und das in Tagen anstatt Monaten.
quelle
Der Job ist nicht richtig für Sie.
Code mit geringer Qualität geschrieben "weil es keine Zeit gibt, Kunden warten, ein Fehler sollte über Nacht behoben werden, das Unternehmen verliert Geld für dieses Problem, ein Manager drängt hart" ist ein Symptom für ein schlecht geführtes Unternehmen.
Wenn Sie bereit sind, stolz auf Ihre Arbeit zu sein und qualitativ hochwertigen Code zu schreiben, ist es am besten, einen Arbeitgeber zu finden, der das versteht und Sie dafür bezahlt.
quelle