Schreiben Sie schlechten Code, wenn Sie unter Druck stehen? [geschlossen]


14

Wenn Sie unter Druck stehen, nähert sich die Frist und ein Manager atmet Ihnen den Hals hinunter. Fangen Sie an, schlechten Code zu schreiben? Bleiben TDD und Best Practices auf der Strecke, um die Dinge zu erledigen? Was machst du in solchen Situationen? Welche Erfahrungen haben Sie gemacht?


Lassen Sie mich Sie auf eine große Weise herausfordern: Einige der größten und besten Innovationen, die ich mir ausgedacht habe, waren das Ergebnis eines unmittelbaren, dringenden Bedarfs. Manchmal bringt die Hitze des Kampfes einen messerscharfen Fokus, den Tage und Tage des Pontifizierens und der Handwerkskunst nicht inspirieren.
user1172763

Antworten:


31

Mit einem Wort, ja. Jeder, der Ihnen etwas anderes sagt, irrt sich wahrscheinlich im besten Fall.

Der Schlüssel ist jedoch, auf Ihrer Erfahrung aufzubauen, um weniger schlechten Code zu schreiben . Widerstehen Sie der Versuchung, etwas einzubauen, damit es "einfach funktioniert", wenn es überhaupt möglich ist, weil es nicht funktioniert. Sie müssen noch einen Prozess verfolgen (entweder Ihren eigenen oder den Ihres Unternehmens oder eine Mischung daraus).

Die Erfahrung sagt mir , dass sein viel besser ( Keuchen ) rutscht den Zeitplan für ein paar Tage einer Woche im Wert von Korrekturen zu verhindern, vor allem , wenn „unter Druck“ bedeutet eine beschleunigte Freigabe zur Produktion. Wenn Sie sich beeilen, den Code freizugeben, werden die Tester es wahrscheinlich eilig haben, ihn ebenfalls mit einem Stempel zu versehen.


Ich würde plus 10 für die Post geben, sehr gut gesagt
Maz3tt

16

Wenn das Team in einer Krise steckt, wurde etwas falsch gemacht.

Fehlende Termine sind ein Zeichen für eine schlechte Planung und Schätzung. Bestätigen Sie, dass die Frist nicht eingehalten wird, und beheben Sie das Problem. Manchmal haben Sie keine Kontrolle über die Planung oder Schätzung. Identifizieren Sie, wer dies tut, und stellen Sie sicher, dass er weiß, dass dies versehentlich getan wurde.

In einer Situation, in der die Frist nicht verschoben werden kann, brechen Sie die stark koffeinhaltigen Getränke aus und legen einen Ansturm darauf. Identifizieren Sie alles, was Sie opfern können, und schneiden Sie es aus. Nehmen Sie, was noch übrig ist, und setzen Sie es so schnell wie möglich um. Dies führt zu Problemen wie Instabilität, ungewöhnlichen Fehlern, ineffizienten Codierungsmethoden, Band-Aid-Korrekturen und allen möglichen anderen Horroren. Es ist nicht unbedingt schlechter Code, aber nicht ideal .

Eine 50% -gute Lösung, die die Leute tatsächlich haben, löst mehr Probleme und überlebt länger als eine 99% -ige Lösung, die niemand hat, weil Sie das verdammte Ding in Ihrem Labor endlos polieren. Der Versand ist ein Feature .

Von Joel über Software The Duct Tape Programmer .

Nicht idealer Code kann behandelt werden, wenn er behandelt wird . Code, der nicht behandelt wurde, wird sich häufen und zusätzliche Änderungen erschweren, wenn nicht sogar unmöglich machen. Es kann zu einem Punkt kommen, an dem die Anwendung so voneinander abhängig ist, dass Ergänzungen nur von den vorsichtigsten Programmierern zu einem exorbitanten Zeitaufwand durchgeführt werden können. Während der Versand ein Feature ist, so ist es Wartbarkeit.


1
Das einzige, was ich ändern würde, ist das Wort "Sie" in Ihrem Hauptpunkt. Ich würde argumentieren, dass es für jedes Mitglied Ihres Teams einen multiplikativen Faktor von Dingen gibt, die schief gehen könnten, und für jede Abhängigkeit von außen gibt es einen exponentiellen Faktor von Dingen, die schief gehen könnten. Oder umgekehrt. ;)
Wonko the Sane

2
@ysolik: Siehe die Umformulierung. Es ist möglicherweise nicht Ihre Schuld, dass die Planung oder Schätzung FUBAR'ed war.
Josh K

2
@ysolik: Sie schreiben weniger als den idealen Code, um eine Frist einzuhalten, und beten, dass Sie die Chance haben, ihn später zu reparieren. Bei richtiger Planung passiert dies nie.
Josh K

2
Sag niemals nie ... :)
Wonko the Sane

3
@Wonko: Richtig, bei richtiger Planung passiert das selten .
Josh K

7

Ich bin ein großer Fan von Software-Handwerkskunst - ich schreibe sauberen Code, so gut ich kann usw., aber manchmal musste ich mich in Momenten beeilen, in denen die Zeit knapp ist und sich eine Frist nähert. Ich versuche das wirklich nicht so gut wie möglich zu machen, aber manchmal kommt man nicht davon weg.

Einige Leute werden sagen "Nun, das ist das Leben, du musst Schiff", aber ich stimme dieser Einstellung wirklich nicht zu.

Wenn Sie schnell Code schreiben, kann es sein, dass Sie die Software pünktlich aus dem Haus bekommen, aber was passiert, wenn Sie in den nächsten Tagen Supportanrufe erhalten, die sich auf Fehler in der Software beziehen (diese Fehler leben im selben Teil) von Code, den Sie beeilten, fertig zu werden). Oder Sie werden von einem verärgerten Kunden gefragt, warum das Berichtsmodul nicht mehr funktioniert, obwohl Sie versprochen haben, dass es am Tag der Veröffentlichung in Ordnung sein würde?

Es ist alles sehr gut , wenn man sagt "Du musst Schiff" , aber es gibt einen Unterschied zwischen effizient aussehen und aussehen wie ein schlampiger Arbeiter.


5

Ja. Aber es kommt immer wieder, um mich später zu verfolgen.


2

Wenn ich in einer Stresssituation bin, soll mein Code die Arbeit erledigen. Das ist es. Ich konzentriere mich in meiner Meinung nicht auf Effizienz und andere Probleme, was schlecht ist.

Ich werde aber daran arbeiten.



1

Ich glaube nicht, dass ich persönlich wesentlich schlechteren Code schreibe, aber ich liefere ein schlechteres Produkt.

Bei einer willkürlichen und unmöglichen Frist wird der Entwicklungsprozess verkürzt. Wir machen mehr oberflächliche Codeüberprüfungen (oder überspringen sie insgesamt). Wir testen weniger, umgehen detaillierte Komponententests für Stichprobenintegrationstests und versuchen dann, den Integrationstest als formale Qualifikation zu zählen. Wir neigen dazu, Anomalien während des Testens zu übersehen, wenn sie nicht direkt mit Bestehen-Nichtbestehen-Kriterien verknüpft sind. Wir überspringen Dokumentationsaktualisierungen, überprüfen die Versionshinweise nicht noch einmal und vergessen, die Liste der zu liefernden Dateien nach nicht mehr benötigten Dateien zu durchsuchen.

Der Quellcode, den Sie während eines Crunchs schreiben, ist zwar von hoher Qualität, wird aber mit ziemlicher Sicherheit als Teil eines minderwertigen Produkts geliefert.


0

Hängt davon ab.

Liegt der Druck darin, dass auf keinen Fall alles möglich ist und einige Stunden vor der Veröffentlichung wichtige neue Funktionen hinzugefügt werden?

Es kommt ein schlechter Code!

Aber wenn es daran liegt, dass der Zeitplan einfach wirklich sehr eng ist, aber der Gesamtplan solide ist und ich einfach viel härter als sonst arbeiten und mich ständig konzentrieren muss, während ich ein paar Features bearbeite und höre ... Dann produziere ich viel besseren Code als wenn der Zeitplan tonnenweise Zeit lässt. Auch wenn dies bedeutet, dass nicht alle Komponententests geschrieben werden, sondern nur die Hauptteile des Codes.


Oooh - guter Kommentar, bis auf den letzten Satz, der mich ein bisschen erschreckt.
Wonko the Sane 19.10.10

Gut. Das heißt nicht, dass sie niemals geschrieben werden. Es ist beängstigend, aber ich denke, das hilft mir, konzentriert zu bleiben. Und es gibt Unit-Test, nur keine 100% ige Abdeckung. Mehr wie 66%.
ElGringoGrande

Das einzige Problem ist, dass die 34%, die nicht abgedeckt werden, der neue Code sind, den Sie in Eile eingegeben haben, und nicht der bereits festgelegte Code, der nicht so wahrscheinlich (alle) mit Ihren Änderungen bricht. Um nicht zu sagen, dass wir es nicht alle getan haben, nur, dass es eine beängstigende Aussage ist.
Wonko the Sane

0

Ich kenne jemanden, der niemals schlechten Code unter Druck schreibt. Er hat auch einige magische Bohnen, die Sie interessieren könnten.

Jeder schreibt manchmal schlechten Code und drohende Fristen sind der übliche Grund. Der Trick besteht darin, zu vermeiden, dass man überhaupt in diese Situation gerät (und das ist auch nicht einfach).

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.