
Eines Tages wird alles Alte wieder neu. Es kommt eine Zeit, in der selbst erfahrene Programmierer auf denselben Rechen treten. Es ist nicht möglich, alle „ungeschriebenen Regeln“ einer Disziplin aufzulisten, auch weil viele von ihnen nicht einmal
Regeln sind . Dies ist oft eine Möglichkeit, abstrakte und ewige Wahrheiten neu zu formulieren.
Marie Kondo machte Karriere, indem sie die universellen Prinzipien von Effizienz, Sauberkeit und Schönheit auf die Haushaltsaufgabe der Haushaltsführung anwendete. Es stellt sich heraus, dass viele Menschen nur einen Übersetzer zwischen ewiger Weisheit und ihrem täglichen Leben brauchen, um die Bedeutung des Geschehens wirklich zu „verstehen“ (siehe auch
„Zen und die Kunst der Motorradwartung“ ). Wir hoffen aufrichtig, dass Sie unseren Versuch, dasselbe für die Programmierung zu tun, genießen.
1. Keine Freitag Einzahlungen
Auch wenn Sie ein kontinuierliches Bereitstellungssystem haben. Freitag ist aus dem offensichtlichen Grund der unangemessenste Tag, um den Meister zu starten: Es bleibt nur noch ein halber Tag, um mögliche Pfosten zu reparieren. In der Regel wird nach Aktualisierungen ein Anstieg der Tickets für den technischen Support beobachtet, insbesondere nach der Freigabe neuer Funktionen und unweigerlich nach neuen Fehlern. Die Leute am Freitag sind schläfrig, unaufmerksam, neigen dazu, alles bis später aufzuschieben ... Sie wissen, wie es passiert.
Niemand ist immun gegen jenseitige Kräfte, die immer Freitag für Käfer wählen! Beachten Sie daher die Best Practices und achten Sie auf Branchenführer, wenn Sie sich nicht sicher sind. Zum Beispiel veröffentlicht Apple
angeblich dienstags Veröffentlichungen , so dass auf beiden Seiten eines so kritischen Ereignisses wie Deploy: Monday genügend Zeit bleibt, um die neuesten Fehler zu testen und zu erkennen, und von Mittwoch bis Freitag, um dringende Änderungen vorzunehmen. Und mit den Einnahmen von Apple erkennen Sie, dass das Bereitstellungsmodell in Blut und Schweiß gespült wird.
2. Regelmäßige Backups
Es ist schwierig, die Bedeutung regelmäßiger Backups zu überschätzen. Unsere gesamte Branche basiert auf einem abstrakten progressiven Backup-System. Natürlich spreche ich über Git, aber das ist nicht genug. Ihre Datenbank, kryptografische Schlüssel, Konfigurationsdateien, VM-Images, Images / Videos ... selbst importierte Pakete sollten sicher aufbewahrt werden, wo sie im Notfall immer verfügbar sind. Wenn Sie kein automatisiertes System haben, lassen Sie mindestens einige Mitarbeiter den Arbeitsordner regelmäßig archivieren und auf ein externes Laufwerk kopieren. Ja, nur ein paar - Redundanz ist nicht überflüssig.
Wahrscheinlich werden Sie nie 9 von 10 Backups benötigen. Aber eines Tages, so wie ich es heute bin, werden Sie in die Vergangenheit zurückkehren und genau herausfinden wollen, wann wir diesen unauffälligen, aber völlig tödlichen Fehler gemacht haben, den niemand jemals bemerkt hat ?! Dann werden Sie froh sein, dass Sie sich die Zeit für das Backup genommen haben. Oder wenn ein neuer Mitarbeiter versehentlich 100.000 Codezeilen löscht. Es passiert. Wir haben keinen Groll gegen Menschen, sondern lernen aus Fehlern. Erstellen Sie Backups, auch wenn es schwierig ist!
3. Holen Sie sich die vollständige Spezifikation, bevor Sie mit der Entwicklung beginnen
Ich leide oft an dem "zu früh begonnenen" Syndrom. Mehr als einmal musste ich große Codefragmente neu schreiben, weil ich bei den ersten Besprechungen mit dem Kunden nicht genügend Fragen gestellt hatte, in denen er die Konturen der Aufgabe umriss. Unser Gehirn ist wirklich winzig und hasst Genauigkeit, besonders wenn Genauigkeit komplex und teuer ist (lesen Sie: notwendig für den Kunden). Er findet Ähnlichkeiten, wo er nicht einmal nah ist. Dies gilt insbesondere für das Programmdesign - in einer ziemlich komplexen Anwendung führen zehn ähnliche Schaltflächen ein Dutzend völlig unterschiedlicher Aufgaben aus. Bevor Sie mit dem Codieren beginnen, sollten Sie diese Feinheiten erfassen, wenn Sie Ihre Zeit und die Zeit Ihrer Kunden optimal nutzen möchten. Sei nicht wie ich oder mein Gehirn. Zeichnen Sie alles auf Papier, stellen Sie sicher, dass alles klar ist, und wenn nötig, können Sie das System von Grund auf neu zeichnen (unter Berücksichtigung einer ausreichenden Vorbereitungszeit - wir sind alle Menschen).
Niemand wird in diesem Prozess jemals Perfektion erreichen. Ich verlasse mich immer noch zu sehr auf Vermutungen. Aber seit ich das Problem erkannt habe, sind unbegründete Annahmen geringer geworden. Es sollte wie ein Computer gedacht werden: eindeutig und gedankenlos in seiner Logik. Studieren Sie im Konzept des Systemdesigns Grenzsituationen, seien Sie ein „Anwalt des Testers“ - und Sie werden wahrscheinlich ein Design finden, das ganze Fehlerklassen, die in einem weniger durchdachten Design zulässig sind, sofort beseitigt.
4. Wenn Sie unwichtigen Unsinn sehen, sagen Sie es
Versuchen Sie,
unproduktive Diskussionen vorsichtig zu stoppen oder zu verhindern
, bevor sie außer
Kontrolle geraten. Unsere Bürozeit ist fast so wertvoll wie die 3-8 Stunden, die wir jede Nacht bewusstlos verbringen - das heißt, es ist sehr wichtig! Aus geschäftlicher Sicht sollte das Meeting umso effektiver sein, je mehr Leute da sind, denn der Stundenlohn wird mit 20-500 Entwicklern in einem Raum / Konferenzraum / usw. multipliziert. Das ist verrücktes Geld, besonders im sonnigen Kalifornien mit ihren Gehältern. Zeit ist Geld! Und wir arbeiten dieses Geld aus, indem wir intellektuelle Tricks um Monster mit Tentakeln erfinden, die hinter jeder Codebasis versteckt sind, und warten nur darauf, unschuldige Erwartungen mit grausamen Fehlern und Abstürzen zu brechen.
Aber wir wandern nicht immer mit einer zitternden Fackel und einer verschwitzten Stirn durch vergessene Codekatakomben. Manchmal sitzen wir bei Besprechungen oder diskutieren etwas angespanntes außerhalb formeller Besprechungen. Slack ist berühmt für die Steigerung des Teamzusammenhalts, aber zu welchem Preis (außer einer monatlichen Gebühr)? Nach meiner Erfahrung erhöht Slack die „bedeutungslose Zeit“ Ihres Gehirns dramatisch - die Zeit, die benötigt wird, um einen weiteren konstanten Strom von (oft unangemessenen) akustischen Warnungen herauszufiltern, wenn Sie versuchen, das zu tun, wofür das Unternehmen Sie bezahlt. Entwickeln und reparieren Sie nützlichen Code. Und Menschen geraten leicht in unnötige Streitigkeiten.
Es ist in Ordnung zu fragen, ob die Diskussion beendet werden soll, wenn es zu lange dauert. Heutzutage sagen Kinder gerne, dass „das Reale die Gegenwart sieht“: Menschen, die wirklich echte Arbeit leisten, Kunden, Anwendern und der Welt helfen - sie werden Ihnen dankbar sein, wenn Sie die Diskussion darüber beenden, ob der neue Kühlschrank schwarz sein soll oder verchromt. "Ja, du wirfst eine Münze, was ist der Unterschied ... wir haben ernstere Probleme." Und viele der Leute, die auf Sie achten, werden aus der Führung kommen.
Vielen Dank, dass Sie sich mir auf dieser Reise angeschlossen haben. Mögen Sie die gleiche Weisheit sehen wie diejenigen, die diese Tipps zuerst vor uns geschrieben haben. Und bitte, wenn Sie Ihrer Erfahrung nach einige andere unausgesprochene Regeln gelernt haben, schreiben Sie diese und lassen Sie es uns wissen!