Einfache Tricks zur Verbesserung der Codierungseffizienz

Unter Softwareherstellern ist ein merkwürdiges Phänomen aufgetreten. Es scheint eine Tendenz für die Menschen zu bestehen, ihr Verständnis davon, was ein Qualitätsprodukt besser macht, umzukehren, oder zumindest trifft dies zu, wenn es um diejenigen geht, die das Marketing betreiben. Es geht in die Richtung: "Ihr Produkt hat eine Million Zeilen Code, aber unser hat zwei Millionen, daher muss unser Produkt besser sein."

Niemand weiß, woher dieses „mehr ist mehr“ Denken gekommen war, als damals alle so hart daran gearbeitet haben, eine „weniger ist mehr“ -Philosophie zu schaffen. Wahrscheinlich hat es mit dem Journalismus für Konsumenten angefangen, weil viele Autoren versuchen, das Publikum mit großen Zahlen zu beeindrucken. Für die meisten Dinge funktioniert dies - dieses kleine Flash-Laufwerk enthält 200-Terabytes an Daten, die CPU kann 48-Milliarden-Befehle pro Sekunde verarbeiten - und Schreibmaschinen sind nicht immer technologisch geschickt genug, um zu verstehen, dass dies nicht für Quellcode gilt.

Bei der Codierung geht es jedoch nicht nur darum, enge Algorithmen zu erstellen. Es geht auch darum, Abfall zu reduzieren. Dies bedeutet Verschwendung in Bezug auf die Zeit, die Sie für die Behebung von Problemen aufwenden, die Verschwendung von zu vielen Computerressourcen und sogar die Verschwendung der Anzahl der Pizzakartons, die Ihr Team bis Ende der Woche im Büro gestapelt hat. Idealerweise möchten Sie all diese Dinge einschränken.

Was wir also in diesem Artikel betrachten werden, werden die Dinge sein, die Sie zur Verbesserung der Effizienz und Steigerung der Produktivität tun könnten.

1. Bauen Sie eine förderliche Arbeitsumgebung auf

Jeder Kodierer arbeitet unter einzigartigen Umständen, und unsere Leser sind sehr unterschiedlich. Daher ist es für einige von Ihnen einfacher, diese Vorschläge umzusetzen als für andere.

Wenn Sie freiberuflich tätig sind, herzlichen Glückwunsch, denn Sie beherrschen bereits Ihre eigene Arbeitsumgebung. Natürlich wird sich dies ändern, wenn Sie einen Kunden besuchen und vor Ort arbeiten müssen, aber es ist immer noch eine gute Position, wenn Sie Erfolg haben.

Wenn Sie Manager eines Entwicklungsteams sind, können diese Vorschläge auch dazu beitragen, dass Ihr Team maximale Effizienz erreicht. Wenn Sie in einem Entwicklungsteam arbeiten, können Sie Ihrem Vorgesetzten einige dieser Ideen vorschlagen oder ihm zumindest einen Link zu dieser Seite senden und auf das Beste hoffen.

Erlauben Sie den Teammitgliedern die Telearbeit

Das Programmieren ist zum Teil eine logische Übung, aber noch mehr eine kreative Herausforderung. Die besten Programmierer können beide Gehirnhälften gleichermaßen für jede Aufgabe einsetzen. Die Wissenschaft hat längst erkannt, dass kreative Menschen nachts ihre beste Arbeit verrichten, und das haben wir alle erlebt. Warum bestehen die meisten Manager auf einer traditionellen 9-zu-5-Routine?

Eigentlich wissen wir bereits die Antwort darauf. Teilweise geht es um Kontrolle, und teilweise geht es darum, Dinge aus betriebswirtschaftlicher Sicht (oder zumindest aus Managementsicht) bequemer zu gestalten. Dieses Beharren auf Routine und Standort beeinträchtigt jedoch die Effizienz und Produktivität des Teams.

Was Sie wissen müssen, ist, dass Ihre Programmierer wahrscheinlich die ganze Nacht damit verbracht hatten, das neueste Spiel auszuprobieren, oder vielleicht waren sie gefeiert oder mussten sich einfach mit der Familie unterhalten. Das bedeutet, dass wenn Sie am Montagmorgen zur Arbeit erscheinen, erreichen Sie sie nicht nur nicht auf dem höchsten Produktivitätsniveau, sondern sie sind bereits entlastet und hundemüde.

Wenn den Arbeitnehmern die Wahl bleibt, wann sie arbeiten - und im Idealfall auch wo -, ist dies ein hervorragender Weg, um Produktivität und Moral zu verbessern. Solange sie die Arbeit erledigen und hervorragende Qualitätsergebnisse erzielen, sollten Sie sich nicht darum kümmern, wann, wo oder wie sie dies erreichen.

Die Ausnahme ist, wenn Sie eine enge Zusammenarbeit benötigen, aber in Wahrheit tun die meisten Programmierer besser, wenn Sie die Dinge auf ihre eigene Weise erledigen müssen, und die Notwendigkeit einer engen Zusammenarbeit ist selten. Die Option, ins Büro zu kommen, sollte immer noch vorhanden sein. Es gibt jedoch keinen realistischen Grund, warum dies erforderlich sein sollte, es sei denn, Sie arbeiten an streng geheimen militärischen Projekten.

Als Freiberufler können Sie auch feststellen, dass hier der Schlüsselpunkt ist, dass Sie, wenn Sie den größten Teil Ihrer eigentlichen Codierungsarbeit nachts erledigen, wahrscheinlich mehr erledigen werden. Es gibt weniger Ablenkungen am späten Abend, es ist ruhiger und Sie fühlen sich kreativer.

Vermeide Musik

Wir haben alle diese verrückten Filmstereotypen gesehen, bei denen ein übergräberischer Überhacker Kopfhörer und Death Metal zum Death-Metal steckt, während er mühelos Bildschirm-Code ausspuckt, ohne dabei zu atmen. Und wir alle, die wirklich in der realen Welt programmieren, wissen, wie lächerlich dieses Bild ist.

Wenn Sie jedoch während der Arbeit Musik hören, seien Sie vorsichtig. Es ist ziemlich einfach, sich selbst über die Musik als über Ihre Arbeit Gedanken zu machen, und einige Arten von Musik können einen einschläfernden Effekt haben. Wenn Sie im Fitnessstudio trainieren, kann Sie die richtige Musik dazu anregen, diese wenigen Wiederholungen herauszuschieben. Es ist jedoch noch nie jemandem gelungen, Musik zu kreieren, die Sie dazu inspirieren wird, die Zeile mit dem fehlenden Semikolon zu finden oder die richtige Wahl zwischen einer for-Schleife oder einer while-Schleife zu treffen. Das, was wir je am ehesten erreicht haben, ist Electric Dreams.

Versuchen Sie, aufgeräumt zu bleiben

Unordnung kann merkwürdig tröstlich sein, aber es kann Sie auch verlangsamen. Sie können leicht 20-Minuten verlieren, wenn Sie nach etwas suchen, das im Chaos verloren gegangen ist, und dann vergessen, warum Sie es überhaupt wollten.

Warum sind wir - zumindest einige von uns - so süchtig nach Unordnung? Der Organisationsexperte und Autor Julie Morgenstern behauptet, dies sei so, weil dieses Zeug uns mit unserer Vergangenheit verbindet und eine Rolle bei der Definition unserer Identität spielt. Marcus Geduld, ein Lehrer und Regisseur aus New York City, meint, Clutter sei einer „sterilen“ Umgebung vorzuziehen und vergleicht das Chaos von Clutter mit einer Behauptung von Freiheit und Kreativität.

Es besteht jedoch kein Zweifel, dass die Verringerung der Unordnung dazu beiträgt, Ablenkung und Desorganisation zu vermeiden. Als solches ist es ein würdiges Ziel zu erreichen. Behalten Sie auf jeden Fall ein paar heilige Gegenstände bei sich, durch die Sie sich besser und weniger gestresst fühlen, aber übertreiben Sie es nicht. Decluttering ist für die meisten Leute eine der schwierigsten Aufgaben. Nicht nur unsere physischen Desktops müssen deklottiert werden, sondern oft auch unsere Computerdesktops. Wenn Sie wirklich Probleme damit haben, könnten Sie versuchen, ein minimalistisches DTE wie Fluxbox zu verwenden, wodurch Sie keine Unordnung haben.

Aber gehen Sie bei all dem Aufräumen nicht über Bord. Es gibt eine Menge guter Wissenschaft, die nahe legt, dass ein bisschen Chaos in der Umgebung der Kreativität förderlich sein kann. Eine der am häufigsten zitierten Forschungsarbeiten dazu ist ein Journaleintrag von Vohs, Redden & Rahinel für die University of Minnesota in Psychological Science mit dem Titel Körperliche Ordnung erzeugt gesunde Entscheidungen, Großzügigkeit und Konventionalität, während Unordnung Kreativität erzeugt. Wahrscheinlich liegt der Grund, warum sich die Journalisten daran festhalten, darin, dass sie eindeutig zu dem Schluss kommt: „… Teilnehmer in einem ungeordneten Raum waren kreativer als Teilnehmer in einem ordentlichen Raum.“

Viel weniger populär sind abweichende Meinungen wie Umweltstörung führt zu Selbstregulierungsversagen (Chaye & Zhu, 2014), veröffentlicht im Journal of Consumer Research. Diese Studie ergab, dass Menschen, die in ungeordneten Umgebungen arbeiten, in ihrer Fähigkeit, Aufgaben auszuführen, beeinträchtigt sind.

Wo bleibt dich das? Sollten Sie im Chaos oder in der Sterilität arbeiten? Die Antwort scheint zu sein, ein Gleichgewicht zu finden, in dem es einfach chaotisch genug ist, um Sie zu inspirieren, aber nicht so sehr, dass Sie abgelenkt werden oder Schwierigkeiten haben, Dinge zu finden.

Lassen Sie etwas Raum für Sie, um Ihre Gedanken zu vertreiben

Es ist eine gute Idee, viel Raum zum Wandern zu haben, wenn Sie überlegen. Viele der besten Admirale und Generäle der Geschichte waren für ihre lange Zeit bekannt, die sie während der Planung von Kampfstrategien auf dem Deck verbrachten.

Nicht nur kämpfende Männer folgen dieser Praxis. Viele buddhistische Mönche plädieren auch für „Walking-Meditation“ und glauben, dass dadurch die Klarheit des Geistes gefördert wird. Wenn Sie ein besonders knotiges Programmierproblem zu lösen haben, kann es hilfreich sein, Ihre Beine bei einem meditativen Spaziergang über das Deck etwas zu strecken. Offensichtlich hilft auch hier ein Mangel an Unordnung, dies zu tun, ohne im Krankenhaus landen zu müssen.

Seien Sie als Chef vorsichtig bei der Kritik kreativer Bemühungen

An konstruktiver Kritik ist nichts auszusetzen, aber Sie müssen den richtigen Moment wählen und auf die richtige Art und Weise darauf eingehen, oder er kann nach hinten losgehen, indem Sie Ihre Mitarbeiter in Zukunft weniger produktiv machen. Anstatt sie zu inspirieren und Einblicke zu geben, können Sie sie tatsächlich fürchten, Risiken einzugehen. Dies ist ein guter Weg, um die Kreativität auszuschalten. Marieke Roskes, in Einschränkungen, die die kreative Leistung beeinträchtigen oder behindern: Ein motivationaler Ansatz, bietet einen Rahmen für den Umgang mit der Motivation von Kreativen und insbesondere auch, um zu vermeiden, dass sie unbeabsichtigt demotiviert werden (Creativity & Innovation Management, Band 24, Iss 2, 2015).

2. Etabliere eine gute SOP

Es gibt viele eingängige Trends im Business Management und in der Programmierprozedur, die theoretisch viel sinnvoller klingen, als sich in der Praxis herausstellen. Ob ein bestimmter Ansatz für Sie funktioniert oder nicht, hängt von Ihrem Ziel ab und davon, was Sie persönlich für ein erfolgreiches Ergebnis halten.

Ein Beispiel für eine Methodik, für die ein Unternehmen, für das ich gearbeitet habe, ausprobiert hat - und ebenso schnell abgeworfen wurde - ist die Paarprogrammierung (nicht zu verwechseln mit der PEAR-Programmierung). Während einige Leute diese Arbeitsmethodik wirklich bewundern und ihren Platz im agilen Entwicklungsparadigma preisen, stellten wir fest, dass sie äußerst ineffizient war. Zunächst einmal waren für jeden Arbeitsplatz zwei Programmierer erforderlich, so dass Sie für weniger Entwicklungsaufwand doppelt so viel zahlten. Wir fanden auch, dass es aufgrund des häufigen Stop / Start-Flusses und der Tendenz zu unnötigem Dialog viel langsamer war.

Die Vorteile der Paarprogrammierung waren, dass sie zu einer natürlicheren Dokumentation und einer strengeren Dokumentation führten. Außerdem konnten Fehler leichter entdeckt und Vorschläge zur Verschärfung eines Algorithmus gemacht werden. Gleichzeitig haben die gleichen Vorteile jedoch auch zu Problemen geführt, da die Anpassungen und Anpassungen manchmal nicht wirklich notwendig waren.

Ein weiteres Risiko bei diesem Ansatz besteht darin, dass Sie den von Roskes ermittelten Effekt erzielen können, bei dem Programmierer zögern könnten, Dinge auszuprobieren, weil sie nicht korrigiert werden möchten. Es kann zu Auseinandersetzungen mit der Persönlichkeit kommen, wenn ein Entwickler sehr pedantisch und traditionell ist, der andere jedoch kreativer und spontaner ist.

Programmierer geben oft an, dass sie die Paarprogrammierung bevorzugen. Möglicherweise liegt dies daran, dass sie die soziale Interaktion genießen, die sie bietet, aber dies trägt nicht zur Effizienz der Produktion bei, außer vielleicht als Moralschub.

Was Sie also feststellen müssen, ist, was für Ihre Entwickler tatsächlich funktioniert und was nicht. Für die Dinge, die nicht funktionieren, ist es besser, sie wegzuwerfen, selbst wenn sie eine Trendwende sind. Was dem Team dabei hilft, schnell Fortschritte zu erzielen, ist eine gute Sache. Wenn sie jedoch mit einer Methodik beschwert werden, die nicht zu ihrem Stil passt, führt dies letztendlich zu Problemen.

3. Ermutigen Sie die ausführliche Dokumentation

Es mag den Anschein haben, dass die Ausführlichkeit die Ineffizienz erhöhen würde, aber die kurze Zeit, die benötigt wird, um mehr Details und Präzision in den Kommentaren zu geben, kann eine Menge Ärger ersparen, wenn das Projekt durchläuft oder Revisionen durchläuft.

4. Vermeiden Sie unnötige Unterlagen

Gut geschriebener Code ist oft selbstdokumentierend. Wenn es vollkommen offensichtlich ist, was eine Funktion aus dem Namen tut, den Sie ihm geben (was fast immer der Fall sein sollte), dann ist das Hinzufügen weiterer Beschreibungen überflüssig. Dasselbe gilt für die Benennung und Rückgabewerte von Variablen. Aus dem Namen sollte klar hervorgehen, was sie tun, und in Fällen, in denen dies nicht möglich ist, sollten Sie eine Beschreibung in die Kommentare einfügen.

5. Leerraum ist dein Freund

Die richtige Verwendung von Leerzeichen in Ihrem Code trägt dazu bei, Code leichter lesbar, übersichtlich und verständlich zu machen. Es geht Hand in Hand mit gutem dokumentierendem und selbstdokumentierendem Code. Jeder erfahrene Programmierer - oder vielleicht sogar ein Nichtprogrammierer - sollte in der Lage sein, eine Kopie Ihres Quellcodes zu erhalten und sofort zu verstehen, was der Zweck jeder Funktion ist und wie sie funktioniert. Im Idealfall sollte jemand in der Lage sein, aus nichts anderem zu lernen, als Ihren gut geschriebenen Code zu studieren.

6. Ziehen Sie die Einfachheit der Komplexität vor

Je komplexer Sie Ihren Code erstellen, desto schwieriger kann es sein, ihn zu entwirren. Ironischerweise gilt dies für das Programmieren von Kurzbefehlen, z. B. die Verwendung von Abkürzungskonditionen, anstatt sie vollständig auszuschreiben. Sie sparen Zeit beim Schreiben, aber ein weniger erfahrener Programmierer, der später Ihren Code überprüft, kann Ihre Absicht möglicherweise nicht verstehen.

7. Testen Sie ausführlich

Code sollte inkrementell und häufig getestet werden. Bevor Sie irgendetwas bereitstellen, sollten Sie so viele interne Tests wie möglich durchführen, auch wenn Ihre erste Version als Alpha gekennzeichnet ist.

8. Verwenden Sie die Versionskontrolle

Sie müssen verrückt sein, wenn Sie die Versionskontrolle nicht für ein großes Projekt verwenden möchten. Ohne sie sind Sie nicht vor Ihren eigenen kleinen Fehlern geschützt, und es ist auch wirklich leicht für ein anderes Teammitglied, versehentlich (oder absichtlich) Ihren Code zu sabotieren, indem Sie ihn mit etwas überschreiben, das Ihnen nicht gefällt.

Wenn Sie diese acht Schlüsselempfehlungen berücksichtigen, können Sie Ihre eigene Strategie entwickeln, um die größtmögliche Effizienz für Sie und alle Teammitglieder zu erzielen, mit denen Sie arbeiten. Sie müssen nicht unbedingt alle anwenden, und sicherlich sind einige nicht einmal praktisch für Sie, aber jede Kombination davon kann dazu führen, dass Sie Ihre Arbeit mit weniger Aufwand erledigen. Ein produktiverer Workflow macht sich im Laufe der Zeit bezahlt, auch wenn es nur um Stressabbau geht und Sie mehr Zeit für sich selbst haben. Das ist ein Ziel, an dem es sich zu arbeiten lohnt.

Bogdan Rancea

Bogdan ist Gründungsmitglied von Inspired Mag und hat in diesem Zeitraum fast 6-Jahre Erfahrung gesammelt. In seiner Freizeit studiert er gern klassische Musik und erforscht die bildende Kunst. Er ist auch ziemlich besessen von Fixies. Er besitzt bereits 5.