Heute ist ein sonniger Tag. Sie fahren die StraĂe entlang zu Ihrem Dorf, in dem all Ihre Freunde, Ihre Familie und Ihr geliebter Hund leben. Ein wunderschöner Tag! Plötzlich hört man einen schrecklichen Alptraumschrei, der die Umgebung zerreiĂt. Die riesige ekelhafte Hydra nĂ€hert sich dem Dorf, um es zu zerstören! Du nimmst ein Schwert (natĂŒrlich hast du ein Schwert!) Und versuchst, jeden zu beschĂŒtzen, den du liebst. Aber es gibt ein kleines Problem: Das Monster hat viele Köpfe, und wenn Sie einen davon abhacken, wĂ€chst schnell ein neuer!
Es scheint, dass Sie diesen Kampf nicht gewinnen können. Vielleicht kannst du lange genug mit Hydra spielen, damit das ganze Dorf Zeit hat, vor einer schrecklichen Bedrohung davonzufliegen? Endlich wirst du ein echter Held der ganzen Welt! Wer will das nicht?
Die Rolle von Hydra ist Entropie in Software: Es ist Ihr Feind, er erschöpft Sie, aber Sie können es nie ganz loswerden. Sie mĂŒssen jedoch noch mit ihm kĂ€mpfen, damit Ihre Bewerbungen (und Kollegen) gesund und vernĂŒnftig bleiben.
Wir werden herausfinden:
- Was ist Entropie in Software und wie merkt man das in Ihrem Code?
- Was sind die möglichen Ursachen und wie kann man die Entropie niedrig halten?
Genug geredet, auf den Punkt!
Kenne deinen Feind

Was ist Entropie und wie kam es zu meiner Bewerbung?
Manchmal ist es nĂŒtzlich, die Etymologie der verwendeten Wörter herauszufinden, insbesondere solche wie Entropie. Aus dem Griechischen ĂŒbersetzt bedeutet es "Transformation". Ăndern Sie. Daran sollten Sie sich als Softwareentwickler gewöhnen.
Die Entropie bezieht sich auf den zweiten Hauptsatz der Thermodynamik. Es heiĂt, dass in einem geschlossenen, isolierten System das Chaos mit der Zeit nicht abnimmt. Es bleibt stabil oder wĂ€chst.
Die Idee der Entropie in Software entstand durch das Buch
Object-Oriented Software Engineering . Je mehr sich das Programm Ă€ndert, desto mehr Chaos herrscht, desto gröĂer wird die Entropie.
Das Erste, was arme Entwickler uns klar machen mĂŒssen, ist die tragische Wahrheit: Wir können die Menge an Entropie in unseren Programmen bekĂ€mpfen, aber wir können sie niemals loswerden.
Bilden Sie das beste Team (natĂŒrlich mit Ihrer Teilnahme!), Das beste Umfeld, das beste Management, die beste Unternehmenskultur, das beste Projekt. Was wird im Laufe der Zeit passieren?
- Sie werden jeden Morgen summen: "Dies ist das beste Projekt!" Ein grĂŒnes Projekt, das aussieht wie ein wunderschönes Feld, beleuchtet von einem wunderschönen Sonnenaufgang.
- Sie und das Team werden immer mehr Funktionen hinzufĂŒgen. Da Sie die Besten der Besten sind, sieht fĂŒr eine Weile alles gut aus.
- Monate oder Jahre vergehen. Niemand will mehr an einem Projekt arbeiten. Auch wenn es gut entworfen wurde, die Technologie veraltet ist, das Projekt zu viel Aufwand und Zeit erfordert, um es zu verstehen, ist es teuer zu skalieren. Es ist zu schwierig, sein gutes mentales Modell aufzubauen.
Wie haben Sie diese KomplexitĂ€t geschaffen? Sie mĂŒssen nur das Projekt skalieren. Mehr Elemente bedeuten oft mehr AbhĂ€ngigkeiten und höhere KomplexitĂ€t. Ich habe bereits einen
ausfĂŒhrlichen Artikel darĂŒber geschrieben.
Wenn Sie dies Lyokha, Ihrem Mitentwickler, erklÀren, wird er antworten:
"Nifiga! Du bist dumm? Chaos und Unordnung haben in meiner schönen App keinen Platz! Mein Ruf wird nicht durch irgendeinen Unsinn getrĂŒbt! Ich bin der Meister meines Schicksals! Wenn ich mein Programm nicht Ă€ndere, wird die KomplexitĂ€t nicht gröĂer, und im Zusammenhang mit diesem Widerspruchsbeweis erklĂ€re ich, dass Sie sich geirrt haben, und ich bin der Beste! â
Sie können Lyokha ruhig, ĂŒberzeugend und entschlossen erklĂ€ren, dass sich alles Ă€ndern wird, auch wenn Sie das Programm nicht Ă€ndern. Wenn Bibliotheken von Drittanbietern nicht aktualisiert werden, treten Sicherheitsprobleme auf. Und wenn Sie sie aktualisieren, öffnet sich die TĂŒr fĂŒr VerĂ€nderung und Entropie.
Wenn Sie eines Tages nach langer Zeit etwas an Ihrer Software Ă€ndern mĂŒssen, werden Sie sich nicht mehr an alle Details erinnern. Und selbst die beste Dokumentation wird Ihnen nicht helfen. Die Welt hat sich verĂ€ndert, und was gestern wahr war, kann niemals wahr sein, sowohl auf technologischer als auch auf geschĂ€ftlicher Ebene.
Solche VerĂ€nderungen bringen sofort eine groĂe Menge an Entropie mit sich.
Die Frage ist also nicht, es loszuwerden, sondern in MaĂen. Dies ist eine echte Schlacht, in die wir Entwickler geraten.
Definition von Entropie in Software
Software-QualitÀt
Wie stellen Sie fest, dass Ihre Anwendung ein hohes Maà an Entropie aufweist? Ein guter Indikator ist die QualitÀt des Codes.
Was ist das und wie kann man es messen? Laut
Accelerate: Die Wissenschaft hinter den Entwicklern :
- Wenn das VerhĂ€ltnis von Ănderungen / Fehlern zunimmt, nimmt die QualitĂ€t ab. Verfolgen Sie Ănderungen, Fehler und AbstĂŒrze und vergleichen Sie sie miteinander. Wenn jede Ănderung zu neuen Fehlern oder AbstĂŒrzen fĂŒhrt, erhöht sich die Entropie in Ihrem Programm.
- Eine wichtige Rolle spielt dabei die subjektive Wahrnehmung des Projekts durch die Entwickler. Wenn jeder das GefĂŒhl hat, dass es immer schwieriger wird, die Anwendung zu skalieren, ohne sie zu brechen, ist die Entropie wahrscheinlich hoch. Diese Empfindung sollte jedoch weit verbreitet sein.
- Wenn das Team viel Zeit damit verbringt, Fehler zu beheben oder Fehler zu beheben, muss Entropie ein Nest in Ihrer Anwendung erstellt haben.
Wenn Sie Informationen ĂŒber das VerhĂ€ltnis von Ănderungen und Fehlern erhalten und Zeit damit verbringen, Fehler zu beheben, können Sie einen guten Zeitplan erstellen, um das Management von der Notwendigkeit einer Umgestaltung zu ĂŒberzeugen.
DĂ€mon der Schwierigkeit
Selbst wenn Sie Code von höchster QualitÀt haben, kann sich die KomplexitÀt leicht erhöhen, wenn es um die eigentlichen Funktionen des Programms geht. Das GeschÀft selbst ist eine Quelle der
notwendigen KomplexitÀt , die Sie nicht loswerden können.
Angesichts der ĂŒbermĂ€Ăigen KomplexitĂ€t des GeschĂ€fts mĂŒssen Entwickler viel MĂŒhe aufwenden, um ein gutes
mentales Modell des GeschĂ€fts des Unternehmens zu erstellen. Daher werden sie Fehler machen, wenn sie versuchen, GeschĂ€ftsanforderungen in Code zu ĂŒbersetzen.
Sprechen wir genauer ĂŒber die KomplexitĂ€t des GeschĂ€fts: Brauchen wir wirklich all diese komplexen Funktionen, die uns im Stich lassen?
Der Grund fĂŒr die Entropie und wie man damit umgeht
Entropie-Wasserfall
Das problem
Mehr oder weniger offensichtlich sind die Entwickler selbst die Hauptursache fĂŒr Entropie in Software. Sie sind faul, sie sind nicht qualifiziert, besonders Sanka, mit der Sie arbeiten. Er stellt so viele Fragen!
Ich stimme dieser Meinung ĂŒberhaupt nicht zu. Meiner Erfahrung nach ist der Hauptgrund fĂŒr die Entropie die FĂŒhrung, insbesondere in Unternehmen mit einem Wasserfallmanagementstil.
Wie
Gerald Weinberg in
The Secret of Consulting feststellte:
Auch wenn es sich um ein rein technisches Problem handelt, kann sein Ursprung immer auf die Handlung oder UntĂ€tigkeit des Managements zurĂŒckgefĂŒhrt werden.
Ich weiĂ, was Sie dachten: âSie irren sich! Das Management ist nicht immer fĂŒr alles verantwortlich! Es ist nur praktisch fĂŒr Entwickler, die Chefs fĂŒr alles verantwortlich zu machen! â
Ich sage nicht, dass die FĂŒhrung fĂŒr alles verantwortlich ist, aber er hat immer ein
gewisses MaĂ an Verantwortung . Hat der Entwickler etwas Schlimmes getan? Sie mĂŒssen den Einstellungsprozess ĂŒberprĂŒfen. Die Spezifikationen wurden schlecht umgesetzt? Vielleicht wissen einige der FĂŒhrer nicht, was sie wirklich wollen, und deshalb sind ihm die Spezifikationen egal.
Deshalb ist es so schwierig, ein FĂŒhrer zu sein! Je gröĂer Sie in der Hierarchie sind, desto schwieriger ist es.
Wie stark beeinflussen Sie als Entwickler die Entscheidungsfindung? Wenn 100%, dann GlĂŒckwunsch, sind Sie fĂŒr alles schuld. Wenn bei 0%, dann ist Ihre Schuld nicht. Zwischen diesen Polen liegt das gesamte Einflussspektrum. Und der Wasserfall impliziert nicht viel davon.
Verwenden Sie Scrum, Kanban und Poker Planning? NatĂŒrlich benutzt du den Wasserfall nicht! Sie verwenden Agile wie ein Kind, das mit einem Schraubenzieher ein Haus baut.
NatĂŒrlich sind Tools wichtig, aber ihre Bedeutung ist
viel geringer als die Bedeutung Ihrer Denkweise , die fĂŒr die korrekte Softwareentwicklung erforderlich ist. So zitieren Sie das Agile-Manifest:
Persönlichkeiten und Interaktionen sind wichtiger als Prozesse und Werkzeuge.
Das Verwenden von Scrum bedeutet nicht, dass Sie Agile verwenden, insbesondere wenn Sie nicht der Meinung sind, dass diese Methode zu lehren versucht.
Mit dem Management von WasserfĂ€llen trifft jemand, der ĂŒber Ihnen liegt, eine Entscheidung, andere treffen neue Entscheidungen und so weiter.
Auf den unteren Ebenen der Hierarchie befinden sich Mitarbeiter, deren Fluch darin besteht, alle getroffenen Entscheidungen zu verfolgen. Was ist ihre Aufgabe? Zu machen, als ob Arbeiter am FlieĂband einer Autofabrik arbeiten. Sie mĂŒssen nicht denken,
sie mĂŒssen Autos bauen .
Schlechte Nachrichten: Als Entwickler stehen Sie ganz unten in der Hierarchie.
Wenn jemand an der Spitze Entscheidungen ĂŒber die Funktionen der Anwendung trifft und Sie praktisch keine Gelegenheit haben, den Entscheidungsprozess zu beeinflussen, dann heiĂen wir Sie am Wasserfall willkommen! Leider sieht die GeschĂ€ftsleitung
in den meisten FĂ€llen nicht, dass es
in der Welt der Softwareentwicklung keine Produktionsphase gibt . Entwickler sind mit der
Konstruktion des Systems beschÀftigt , und diese Aufgabe ist weit entfernt von der Förderanordnung der Kabine.
Warum? Denn im Gegensatz zum Auto Ă€ndern sich die Anwendungen stĂ€ndig! Sie mĂŒssen sie korrekt
entwerfen , damit sie funktionieren, den Anforderungen der Benutzer entsprechen, dass Anwendungen eine akzeptable Leistung aufweisen, skalierbar und verĂ€nderungsresistent sind und gleichzeitig die Entropie auf einem niedrigen Niveau bleibt. Zu diesem Zweck mĂŒssen Sie viele
Entscheidungen darĂŒber
treffen, wie Sie
die GeschÀftskenntnisse in Ihrem Code
widerspiegeln .
Wenn Sie die KomplexitĂ€t, die die FĂŒhrung fĂŒr Sie darstellt, nicht beeintrĂ€chtigen, mĂŒssen Sie sich viel MĂŒhe geben, um sie im Code zu verwalten. Dies wird als eine ânotwendigeâ KomplexitĂ€t angesehen, die nicht vermieden werden kann.
Mögliches Ergebnis? Entropieniveaus können sehr, sehr schnell wachsen.
Mögliche Lösung
Das Unternehmen muss die gemeinsame Entscheidungsfindung und Verantwortung so aktiv wie möglich ĂŒben.
Wenn Sie Ihre Firma in dem von mir beschriebenen Wasserfallmodell wiedererkennen, mĂŒssen Sie mit denen sprechen, die die Entscheidungen treffen:
- Geben Sie Daten und ĂŒberzeugende Argumente an, warum und wie Sie Feature X oder Y vereinfachen können. ErlĂ€utern Sie den möglichen Preis fĂŒr die Entwicklung eines komplexen Features jetzt und in Zukunft .
- ErklĂ€ren Sie, warum die agile Softwareentwicklung bedeutet, dass Menschen zusammenarbeiten mĂŒssen. Manager, Designer, Entwickler und alle anderen sollten in AbhĂ€ngigkeit von den geschĂ€ftlichen Anforderungen Teil des Entscheidungsprozesses sein.
- Wenn Ihre FĂŒhrung das Angebot automatisch ablehnt, mĂŒssen Sie verstehen, warum es geschah. Fragen stellen.
- Sprechen Sie darĂŒber, was EntscheidungstrĂ€ger fĂŒr das Wichtigste halten: Geld und Zeit. Zeigen Sie ihnen, dass agiles Denken (und nicht nur Tools) Sie beide retten kann.
Es ist jedoch schwierig, das Problem zu lösen, wenn Sie nicht danach gefragt wurden. Viele Manager sind sehr zufrieden mit dem Wasserfallmodell und wissen oft nicht einmal, dass sie es befolgen. Sie brauchen viel Diplomatie und FingerspitzengefĂŒhl.
In Anbetracht dessen rate ich Ihnen, einen anderen Job zu suchen, wenn Sie der Meinung sind, dass GeschĂ€ftslösungen Ihrer Anwendung zu viel KomplexitĂ€t verleihen und Sie selbst dann nichts dagegen unternehmen können, wenn Sie es versuchen. Es ist anstrengend - jeden Tag mit hoher Entropie zu arbeiten und aus VergnĂŒgen ein aufgeblĂ€htes Produkt zu machen, ist nicht genug ... oder es zu benutzen. Dies kann Ihnen einen Hinweis auf den Erfolg geben, den Ihr Produkt erwartet.
Und das Letzte: Was auf Unternehmensebene kompliziert aussehen kann, lĂ€sst sich vereinfachen, wenn Sie die GeschĂ€ftsprozesse gut kennen. Das ist extrem wichtig. Erfahren Sie daher mehr ĂŒber die AktivitĂ€ten Ihres Unternehmens, was sie tun und was nicht. Dies vereinfacht die Funktionen und die Codebasis.
WĂ€hrend wir unsere Architektur ausdrĂŒcken, erklĂ€ren wir dem Computer etwas. Und dafĂŒr mĂŒssen wir gut verstehen, was wir erklĂ€ren.
Donald WhipCodequalitÀt und technische Pflicht
Das problem

ZusĂ€tzlich zu der ânotwendigenâ KomplexitĂ€t, die das GeschĂ€ft mit sich bringt, hĂ€ngt die Entropie in Software eng mit der CodequalitĂ€t und der technischen Verschuldung zusammen.
Was sind technische Schulden? Einfach ausgedrĂŒckt, dies sind Vereinfachungen (Hacks), die Sie verwenden, um Zeit zu sparen, da Sie wissen, dass dies spĂ€ter auf Sie zurĂŒckkommen kann. Besonders in FĂ€llen, in denen andere Funktionen von diesen Hacks abhĂ€ngen: Sie mĂŒssen sie mit Zinsen wie mit echten Schulden in Form von Schwierigkeiten und Kopfschmerzen beheben.
AbhĂ€ngig von der Aufgabe Ihrer Anwendung kann die technische Verschuldung mehr oder weniger akzeptabel sein. Wenn das Programm ein paar Monate durchhĂ€lt, kann man ĂŒberhaupt nicht an technische Schulden, Entropie oder QualitĂ€t denken. FĂŒgen Sie einfach die Code-Teile zusammen und Sie sind fertig!
Dies kann beispielsweise eine vorĂŒbergehende Lösung sein, bevor eine komplexere Anwendung von Grund auf erstellt wird. Oder Sie können schnell einen Prototyp schreiben, um die Idee zu veranschaulichen, und dann alles neu schreiben oder das Konzept aufgeben.
Andererseits möchten Unternehmen in der Regel Anwendungen entwickeln, die eine lÀngere Lebensdauer haben. Dies ist sinnvoll: Das Neuschreiben einer Anwendung kann sehr teuer sein (insbesondere, wenn sie groà ist), und niemand kann garantieren, dass ihr Entropie-Level niedriger ist. Kopieren ist ein sehr riskantes GeschÀft.
In solchen FĂ€llen mĂŒssen Sie mit der technischen Leistung und der CodequalitĂ€t sehr vorsichtig sein. Dies ist ein wichtiger Teil Ihrer Arbeit als Entwickler.
In dem berĂŒhmten Buch
The Pragmatic Programmer (in dem unter anderem das
DRY-Prinzip vorgestellt wird) wird eine interessante Analogie der technischen Verschuldung angegeben. Hier wird eine Studie beschrieben, die die Zerstörung stÀdtischer GebÀude mit ... Fenstern vergleicht, die aus ihnen herausgeschlagen wurden. Das zerbrochene Fenster vermittelt den Eindruck von Verlassenheit und inspiriert jeden Mobber in der Gegend. Infolgedessen werden GebÀude mit zerbrochenen Fenstern schneller zerstört als GebÀude mit ganzen Fenstern.
Technische Schulden sind eine Vereinfachung oder ein Hack in Ihrem Code, ein zerbrochenes Fenster. Wenn ein anderer Entwickler, oder sogar Sie selbst, dies bemerken, besteht die Versuchung, noch mehr technische Schulden zu machen, weil "es hier immer noch einen schlechten Code gibt, warum also ein Dampfbad nehmen?"
Beispiel: Sie haben eine Problemumgehung fĂŒr einen komplexen Fehler geschrieben, da keine Zeit war, danach zu suchen. Ein anderer Entwickler (oder Sie selbst spĂ€ter) kann zusĂ€tzlich zu dieser Problemumgehung einen anderen Code schreiben, um ein anderes Problem zu lösen. Es werden mehrere Problemumgehungen entstehen, die niemand so schnell herausfinden wird.
Lösung
Erstens, woher wissen Sie, ob ein Code technische Schulden hat?
Fragen Sie sich:
- Kann ich einfach und logisch erklÀren, was der Code bewirkt?
- Werden hier die richtigen Namen verwendet? Helfen sie dabei zu erklÀren, was der Code bewirkt?
- Treffen lange Namen mit "und" zu, wie "deleteUserAndShutDown"? Dies ist ein gutes Zeichen dafĂŒr, dass Sie eine Funktion, eine Methode oder eine andere Konstruktion trennen mĂŒssen.
- FĂŒhlt es sich an, als ob ein Code aus Faulheit hinzugefĂŒgt wurde? VerstöĂt es gegen Logik und beeintrĂ€chtigt das VerstĂ€ndnis?
Je mehr Ihr Wissen und Ihre Erfahrung zunehmen, je neugieriger Sie sind und je hĂ€ufiger Sie mit anderen Entwicklern gute GesprĂ€che fĂŒhren, desto hĂ€ufiger werden Sie Muster technischer Verschuldung bemerken. Dies ist ein
Code mit einer Drossel .
Wenn Sie auf solche Muster stoĂen, betrachten Sie sie bitte nicht als Erlaubnis, noch mehr technische Schulden hinzuzufĂŒgen:
- Eine Erhöhung der technischen Dauer wird zu neuen Problemen fĂŒhren. Sie werden zurĂŒckkehren und Sie (und Ihr Team) noch mehr verfolgen.
- Eine technische Schuld beglichen, umgestalten. Dies ist die beste Option. Wenn Sie keine Zeit oder Energie haben, fĂŒgen Sie einfach einen Kommentar hinzu // TODO: refactor aus diesem und diesem Grund. Melden Sie ein Problem, lassen Sie es nicht in der Codebasis verborgen.
Vergessen Sie nicht, dass Sie parallel zur Entwicklung anderer Features eine Umgestaltung vornehmen mĂŒssen, damit sie mit der aktuellen Architektur ĂŒbereinstimmen. Vereinfacht gesagt sollte die Reparatur von technischen Schulden keine eigenstĂ€ndige Aufgabe sein, sondern ein fortlaufender Prozess, der möglicherweise nicht mit der aktuellen Aufgabe zusammenhĂ€ngt. GewĂ€hren Sie sich bei der Entwicklung eines Features das Recht, die aufgetretenen technischen Probleme zu beheben.
Ăberarbeiten Sie jeweils kleine CodestĂŒcke und fĂŒhren Sie hĂ€ufig Tests durch, um sicherzustellen, dass sich das System wie erwartet verhĂ€lt.
SchlieĂlich benötigen Sie beim Refactoring möglicherweise einige gute Argumente:
- Erstens fĂŒr dich. Es ist leicht zu glauben, dass Ihr Kollege nicht programmieren kann und dass Sie es besser wissen als andere. Wenn Sie jedoch die spezifischen Vorteile des Refactorings nicht erkennen, tun Sie dies nicht. Vielleicht liegt das Ganze nur in deinem Ego und du kannst etwas ruinieren.
- Wenn sich das Refactoring auf den Codestil bezieht, hat Ihr Team ihn nicht klar definiert. Treffen Sie sich und entscheiden Sie gemeinsam, welchen Codestil Sie ĂŒbernehmen möchten. Dies muss irgendwo aufgeschrieben werden, damit jeder nach Bedarf damit umgehen kann. Bearbeiten Sie die Vereinbarung gemÀà den Anforderungen des Teams. Andernfalls wird Ihr Code mit Kommentaren wie âWir verwenden Tabulatoren !!! NICHT SPACES !!!!! 11! 1 !!! â. Dies ist ein unnĂŒtzes GerĂ€usch.
- Wenn Sie jemand fragt, warum Sie seinen schönen Code geĂ€ndert haben, haben Sie schlieĂlich echte Argumente, um Ihre Entscheidung zu erklĂ€ren.
Gute Argumente spielen in Zukunft immer eine positive Rolle. Beispiel: Binden Sie eine Bibliothek eines Drittanbieters so ein, dass die Codebasis nicht beschÀdigt wird. Wenn Sie nicht verstehen, warum ich von einem Leck spreche, lesen Sie, was
ich ĂŒber Abstraktionen geschrieben habe .
FĂŒr uns Menschen ist es schwierig, mittel- und langfristig Vorhersagen zu treffen. Daher ist es nicht immer einfach, etwas mit Blick auf eine unbekannte Zukunft umzugestalten oder zu âverkaufenâ.
Technische Pflicht spiegelt den Dualismus zwischen
einfachem und
richtigem Weg wider. Der erste ist schnell und attraktiv, der zweite macht Ihr Projekt skalierbar und einfach zu warten. Sie benötigen
Selbstdisziplin , um den zweiten Weg so oft wie möglich zu wĂ€hlen. Andernfalls wird die Zukunft mit Leiden gefĂŒllt sein.
Wenn Sie zu mĂŒde, verĂ€rgert oder voller anderer Gedanken oder Emotionen sind, die Ihre Motivation verringern, den richtigen Weg einzuschlagen, und nicht den einfachen, ist es besser, noch nicht zu programmieren. Machen Sie einen Spaziergang, sprechen Sie mit Kollegen, machen Sie eine Pause. Kehren Sie mit frischen Köpfen zum Code zurĂŒck.
In den meisten FĂ€llen wird die technische Verschuldung beim Debuggen hinzugefĂŒgt. Wenn Sie einen Fehler beheben,
indem Sie eine Problemumgehung
hinzufĂŒgen , haben Sie nichts behoben. Der Fehler bleibt bestehen, es ist nur schwieriger, ihn auszufĂŒhren und aus Versehen zu finden. Sie mĂŒssen Fehler beheben, indem Sie
den Code
umgestalten ,
Àndern oder vollstÀndig
löschen . Testen Sie dann den Code, um sicherzustellen, dass der Fehler nicht erneut auftritt.
Zuletzt: Kollegen fĂŒr Fehler zu beschuldigen, ist unproduktiv. Wenn Sie schlecht oder sarkastisch ĂŒber Ihre Codebasis sprechen, werden die Probleme auch dadurch nicht gelöst, sondern nur die Situation verschlechtert. Zerstöre nicht den Teamgeist. Sie mĂŒssen die Entropie im Projekt reduzieren und dĂŒrfen sie nicht verbal zerstören.
Automatisierte Tests
Das problem

In der magischen Welt der Softwareentwicklung fasziniert mich etwas, insbesondere bei Startups: Viele Programmierer wollen noch immer keine automatisierten Tests schreiben.
Warum fasziniert es mich? In allen anderen Bereichen des Ingenieurwesens testen sie, was sie tun, indem sie einem strengen Prozess folgen. Wenn Sie eine Rakete bauen, mĂŒssen Sie viele Systeme testen, sonst fĂ€llt die Rakete. Gleiches gilt fĂŒr Autos, BrĂŒcken, Flugzeuge - alles.
Geld sparen .
Ein einfaches Beispiel: Die
NASA testet ihren Code grĂŒndlich (siehe Regel 5) .
, , ,
.
, , .
. .
, , â , . ? , . , , ( ), , - .
, : ,
. ,
.
, .
Lösung
, , , .
.
- 1,3 . , . «» .
:
- « ».
- « , ».
- « . , , ».
, , - ( ), :
- . , , .
- . , , - .
- . â , .
- , - . , - . !
- , . !
,
.
, . , . , .
, , .
.
, , . , , - .
, , . , , :
, . , . . , , , - , .
â , .
, .
,

:
. , , .
?
â . - , . , .
Das ist alles! , .
, , .
, , : « , , ? , . !».
: , . , . , .
, , , . , , . !
. :
, . , . , , .
, , . ?
, . , , .
:
- , . «, ?» â , « ! ! !».
- , . , , , , . «, , ?» « , 289 ».
, . ,
!
( !) .
. , , .
, â , , . !
!

, , , ,
. ? ? - ? ?
. , . -, . , , , .
, , . . â .
Also ?
- â . . , .
- â .
- . / .
- , , .
- , . , .
- , , (, ).
. . , . , â !
NĂŒtzliche Links: