10 Tipps für die Effizienzsteigerung bei der Software-Entwicklung

10 Tipps für die Effizienzsteigerung bei der Software-Entwicklung

Um produktiv und mit neuem Elan in das neue Jahr zu starten, habe ich 10 Tipps für Euch zusammengestellt. Diese sind nicht nur für die Software-Entwicklung anwendbar, sondern auch für alltägliche Herausforderungen gültig. Am Schluss des Beitrages gibt es das Ganze noch als Zusammenfassung in Form eines Bildes, welches sich ideal als Hintergrundbild oder Merkzettel am Monitor eignet. Nun wünsche ich Euch viel Spass beim Lesen und ein erfolgreiches 2021.

Die 10 Tipps

In den nächsten Unterkapiteln werden die 10 Ratschläge aufgeführt. Die Liste ist natürlich noch beliebig erweiterbar.

Lösungsvorschläge aus dem Internet hinterfragen

Ansammlung von Antworten auf allerlei Fragen sind auf verschiedenen Plattformen wie Gutefrage oder stackoverflow (im IT-Bereich) zu finden. Die Weisheit der Vielen (Wisdom of the crowd) bringt jedoch auch Nachteile mit sich. Daher lohnt es sich, Lösungen zu hinterfragen. So kann zum Beispiel, eine für die Problemlösung vorgeschlagene Software-Bibliothek grosse Sicherheitslücken aufweisen oder die Weiterentwicklung eingestellt worden sein. Die Internetseite stackoverflow hat bereits einige Validierungsmechanismen eingebaut. So kann die Reihenfolge der Antworten durch die Community beeinflusst und die korrekte Antwort vom Fragesteller markiert werden.

Mehrere Quellen konsolidieren

In Zeiten von “Fake News” ist dieser Punkt präsenter denn je. Bereits in der Schule wird uns gelehrt, dass die Konsultation von mehreren Quellen essentiell ist. Im Bereich der Software-Entwicklung kann es helfen, die gefundene Lösung in der Dokumentation der jeweiligen Software-Bibliothek nachzuschlagen. Dort gibt es manchmal auch Verweise auf andere Funktionen, welche welche besser geeignet sein könnten.

Zeitlimiten bei Problemen setzen

Wie oft ist es mir schon passiert, dass ich mich stundenlang in einer Sackgasse befunden habe und mein Frustrationslevel nahezu die höchste Stufe erreicht hatte. Nachdem ich eine Nacht darüber geschlafen hatte, versuchte ich am nächsten Tag einen neuen Ansatz. Dieser führte direkt oder indirekt zum Ziel. Daher empfehle ich, das Problem zur Seite zu legen, wenn ein vordefiniertes Zeitlimit abgelaufen ist. Danach wird eine andere Tätigkeit (am Besten eine, welche mit einem positiven Gefühl abgeschlossen werden kann) ausgeführt. Meist ist es so (zumindest bei mir), dass neue Lösungsansätze bei monotonen, repetitiven Tätigkeiten (Laufen gehen, putzen oder duschen) entstehen.

Plan/Vorgehensweise für die Umsetzung vor dem Start überlegen

Wie oft ist es mir schon passiert, dass ich mit der Umsetzung einer Software-Lösung begonnen hatte, obwohl das Ziel noch nicht ausreichend definiert worden war. Fragen wie: “Welche Probleme will ich mit dem fertigen Produkt beheben?” oder “Ist die Umsetzung der Idee überhaupt möglich?” werden erst im Verlauf der Programmierarbeiten gestellt. Daher empfehle ich, die fundamentalsten Fragen bereits zu Beginn des Projektes zu beantworten. Natürlich muss die finale Version nicht bist ins letzte Detail spezifiziert werden, um einen gewissen Freiraum für Kreativität zu bewahren.

Teilprobleme/-aufgaben definieren

Die Durchführung einer Software-Entwicklungsaufgabe ist mit einer Gipfelbesteigung vergleichbar. Zu Beginn steht der Bergsteiger am Fusse des Berges, mit dem Ziel, den höchsten Punkt des vor ihm liegenden Massivs zu besteigen. Auf dem Weg wird es so einige schwierige Passagen geben. Es bringt ihm jedoch nichts, sich schon vor dem ersten Schritt sich den Kopf über diese Herausforderungen zu zerbrechen. Er sollte sich den langen Weg in mehrere Teilabschnitte unterteilen und den Aufstieg Schritt für Schritt in Angriff nehmen. Diese Strategie ist für alle Aufgaben im Leben anwendbar.

Einfach beginnen, regelmässig prüfen

Meist entsteht das finale Produkt nicht im ersten Entwicklungsschritt. Daher kann es sich lohnen, mehrere Iterationen zu durchlaufen. Dabei wird die bestehende Lösung fortlaufend erweitert, die Schwierigkeit erhöht und die Funktionalität überprüft. Mit Hilfe einer Versionsverwaltung (z.B. git) kann jederzeit wieder zum Ausgangspunkt zurückgekehrt werden.

80/20-Regel (Pareto-Prinzip)

Bei der Software-Entwicklung gibt es immer etwas, was verbessert oder aufgehübscht werden könnte. Diese Optimierungen (die fehlenden 20 Prozent) sind jedoch sehr zeitintensiv. Daher sollte dieser Aufwand nur geleistet werden, wenn dieser für den Anwender/Kunden einen Mehrwert bietet (zum Beispiel die Reduzierung der Komplexität eines Algorithmus bei Echtzeitanwendungen)1.

Regelmässige Pausen/Belohnungen (Pomodoro-Technik)

Bei dieser Technik2 werden die bevorstehenden Aufgaben notiert, priorisiert und in mehrere Schritte aufgeteilt. Die einzelnen Abschnitte sind zeitlich begrenzt (Time-boxed) und werden nacheinander, mit einer Pause dazwischen, abgearbeitet (meist 25 Minuten produktives Arbeiten mit anschliessendem 5 Minuten Unterbruch). Nach jedem Teilstück wird Bilanz gezogen und die abgeschlossenen Aufgaben durchgestrichen (Erfolgsgefühl). Nach jeweils 4 Iterationen soll eine länger Pause eingelegt werden.

Problemlösungen festhalten

Gewisse Probleme treten bei der Software-Entwicklung immer und immer wieder auf. Daher ist es wichtig, gewonnene Erkenntnisse und Lösungsmuster festzuhalten und strukturiert abzulegen. Wird in Teams gearbeitet, kann dies in Form eines Wiki’s (Hawaiisch für “schnell”) erfolgen. Ein Wiki ist eine Webanwendung, welche Informationen in übersichtlicher Form darstellt und Besuchern die Möglichkeit gibt, Inhalte zu ändern.

Spass

Der wichtigste aller Punkte kommt zum Schluss: Habt Spass an der Erschaffung von neuen Dingen und an der Investition in das Humankapital.

Anhang

Die 10 Tipps zur Effizienzsteigerung im kleinen Format

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×