Als Entwickler fragt man sich oft, wie man die täglichen Anforderungen bewältigen soll. Vor allem im technischen Umfeld sind wir ständig mit neuen Technologien und sich ändernden Gegebenheiten konfrontiert. Wir müssen uns agil darauf einstellen und dennoch performant Ergebnisse liefern. Beim Versuch, alles zu aller Zufriedenheit umzusetzen, kann die Balance zwischen Arbeits- und Privatleben leicht ins Ungleichgewicht geraten. Es ist kein Geheimnis, dass man dieses Gleichgewicht durch diverse Freizeitaktivitäten wiederherstellen kann. Sie helfen uns, die täglichen Denkstrukturen zu durchbrechen und neue Herangehensweisen und Lösungswege auch auf die Arbeit anzuwenden, denn außerhalb der Arbeit wird ebenfalls etwas geschaffen. Der Unterschied liegt aber in der Ungezwungenheit, welche wieder mehr Geduld, Intuition und Bauchgefühl bei der Lösungsfindung zulässt. Oft bemerkt man dann, dass die Erfolge deswegen nicht weniger gut sind. Häufig sind die Ergebnisse sogar viel besser als unter gewohntem Druck. Wenn diese Erkenntnisse dann auf den Arbeitsalltag angewendet werden, kann dies wieder für ein Gleichgewicht sorgen, unter dem die Leistung und das Wohlbefinden nicht etwa sinken sondern ggf. sogar erhöht werden.
In diesem Blog Post stelle ich 7 wichtige Erkenntnisse vor, die ich während des Boulderns gewonnen habe. Hierdurch ist es mir gelungen, meinen Arbeitsalltag als PHP Entwickler deutlich ausbalancierter zu gestalten und mich persönlich als Director of Engineering bei PAYMILL weiterzuentwickeln.
Richtige Ausrüstung
Vorneweg ist natürlich die richtige Ausrüstung entscheidend für die optimale Leistung und Konkurrenzfähigkeit. Beim Bouldern ist dies vor allem das richtige Schuhwerk. Dieses muss eng sitzen und die nötige Sicherheit bei kleinsten Tritten bieten; leider oft unbequem, aber dafür äußerst effektiv. Ansonsten muss das Defizit mit Kraft und Technik ausgeglichen werden, was aber nur begrenzt möglich ist. Fortgeschrittene wählen darüber hinaus z.B. extrem versteifte Sohlen, um selbst an bloßer Struktur noch Halt zu finden. Auch ein verstärkter Fersen- und Zehenbereich für die bequemere Anwendung spezieller Techniken, sog. (Toe-)Hooks kann helfen.
Übertragen auf den Programmierer bedeutet dies ebenfalls, dass die Wahl der richtigen Werkzeuge durchdacht sein sollte, um nicht ausgebremst zu werden. Z.B. ist es sinnvoller, die für die Programmiersprache bewährte IDE zu verwenden als den neu gehypten Editor, nur weil dieser schicker aussieht. Die Nutzung von Frameworks und Libraries sowie Debugging Tools etc. sind ebenfalls hilfreich.
Aufwärmen
Um Verletzungen vorzubeugen, sollte man sich aufwärmen, bevor man die Wand in Angriff nimmt. Die Zeit während des Aufwärmens kann dazu genutzt werden, den Kopf frei zu machen und sich nun mental auf das bevorstehende Klettern und das Ziel einzustimmen.
Übertragen kommt dies etwa einer morgendlichen Planung des Arbeitstages gleich: Welche Aufgaben liegen vor mir? Wie sind die Prioritäten? Welche Ziele will ich erreichen? Mit wem muss ich mich noch abstimmen etc.? Mit einem frischen, neutralen Blick sehen die Ergebnisse des Vortages gleich ganz anders aus. Diese Herangehensweise ist allemal besser, als unvorbereitet einfach an dem Punkt weiterzumachen, an dem man gestern aufgehört hat. Im Programmier-Eifer vergisst man sonst schnell gewisse Abhängigkeiten und erzeugt man Ende des Tages Chaos und Zeitdruck.
Prüfen des Entwicklungsstandes
Oft werden schwierige Routen, wenn man sie einmal erfolgreich bezwungen hat, nicht erneut geklettert. Oft wurden viele Versuche und eine Menge Energie hineingesteckt um das Ziel zu erreichen. Letztendlich hat man es doch geschafft. Nicht, weil man plötzlich mehr Kraft oder Ausdauer an den Tag gelegt hätte, sondern aufgrund von Konzentration, der richtigen Technik und eines optimalen Bewegungsablaufes. Um sicherzugehen, dass man sich alle drei Faktoren eingeprägt hat, klettern Profis dieselbe Route noch weitere zwei, drei Male, um das Gelernte zu festigen oder um ihre Technik noch weiter zu verbessern.
Der Programmierer kann dies vergleichen mit Projekt-Retrospektiven, Dokumentation von sinnvollen Techniken und Lösungswegen; aber auch, sich die Zeit zu nehmen, um evtl. Schwachstellen auch nach Projektabschluss noch auszumerzen. Dies erhöht die Stabilität des abgeschlossenen Projekts und wird die Umsetzung neuer Projekte erheblich erleichtern.
Bildquelle: Daniel Hoffmann
Ausloten und Überwinden der Grenzen
Irgendwann ist klar, in welchem Schwierigkeitsgrad man zu Hause ist. Dennoch entwerfen Routen-Entwickler hin und wieder eine Strecke, die irgendwie weit über dem genannten Schwierigkeitsgrad zu liegen scheint. Das Kletter-Ego will sie aber dennoch meistern. Oder man will sich bewusst an einer Route versuchen, die jenseits der Komfortzone liegt. Anfänger geben jedoch schnell nach ein, zwei Versuchen wieder auf, mit Begründungen wie: “Da schaffe ich nicht mal den Start-Zug”, “Die Griffe sind viel zu klein, scharfkantig und zu weit auseinander”, “Unmöglich, da sind ja gar keine Tritte” etc.
Fortgeschrittene bleiben hartnäckig. Sie befassen sich intensiv mit der neuen Herausforderung. Die Route wird erstmal nur visuell und in Gedanken analysiert, gerne auch in Diskussion mit Gleichgesinnten. Wo sind die schwierigen Stellen? Welche Techniken muss ich anwenden? Wie genau muss gegriffen werden? Wie ist dabei die Fußstellung? Dann wird die Route ggf. nochmals abgebürstet und die Griffe genaustens abgetastet, bevor der erste Versuch gewagt wird. Bei dem ersten Versuch bleibt es selten. Selbst wenn nicht einmal der erste Zug auf Anhieb gelingt, versucht man es hartnäckig so lange weiter, bis man Stück für Stück weiterkommt. Körper und Geist scheinen sich der Situation anzupassen, wenn man nur genug Geduld aufbringt.
Es können dabei schon mal zig Versuche, auch über Tage und Wochen hinweg aufgewendet werden bis die Route dann endlich geschafft ist. Aber das kaum für möglich gehaltene Ziel am Ende dort erreicht zu haben, ist für die meisten Kletterer immer eine unbezahlbare Erfahrung.
Diese Erfahrung kann den Programmierer lehren, dass jede Herausforderung immer irgendwie zu meistern ist, mag sie anfangs auch noch so unmöglich wirken. Wichtig dabei sind andere Meinungen und offene Diskussionen, das Herausfinden der kritischen Pfade sowie deren schrittweise Überwindung. Mit der Schnell-Schnell-Taktik wird man (selbst unter Zeitdruck) eher selten das gewünschte Ziel erreichen. Bei schwierigen Projekten, die sich in unbekannten Gefilden abspielen, sollte man sich demnach immer die Zeit für eine gute Planung nehmen, um die kritischen Knoten sauber lösen zu können.
Schwächen durch gezieltes Training beseitigen
Wenn man bei einer Route nicht weiter kommt, ist auch schnell klar, an welchen Schwächen es liegt. Man kann bspw. nicht lange genug blockieren oder die Muskulatur der Finger ist zu schwach, um die kleinen Leisten zu halten. Manchmal fehlt es auch an der nötigen Körperspannung, um die weit auseinander liegenden Griffe zu halten. Glücklicherweise sind die meisten Kletterhallen mit entsprechenden Trainingsgeräten ausgestattet. Sehr beliebt sind die Leistenwände oder das Trainingsboard BeastMaker 1000 zur Stärkung der Arm-, Finger- und Oberkörper-Muskulatur. Dieses Extra-Training liefert meist das nötige Quäntchen zur Bewältigung der letzten Hürden.
Dem Programmierer offenbaren sich diese Schwächen eher in Technologie-Defiziten, in denen man sich eingestehen muss, dass man sich – sei es durch Literatur oder Schulungen – weiterbilden muss, um gewisse Probleme besser meistern zu können. Beliebte Themen in diesem Bereich sind etwa NoSQL, Scrum, Debugging Tools wie X-Debug, Unit Testing.
Bildquelle: Daniel Hoffmann
Den neuen Standard/die neue Qualität halten
Wenn man nun einmal ein neues Level erreicht hat, ist das schwierigste daran, dieses auch zu halten. Dies erfordert vor allem die Disziplin, regelmäßig zu trainieren und den beständigen Willen, auch die Routen zu klettern, die einem alles abverlangen. Belohnt wird man – wie bereits erwähnt – durch die immer wieder neue Erfahrung, dass nichts unmöglich ist. Und am Ende des Tages auch durch die Anerkennung der Kletter-Kollegen.
Beim Entwickeln ist dies nicht viel anders. Eine hohe Qualität zu halten, erfordert auch hier Disziplin. Bspw. in Form von Dokumentation, Einhalten der Planungs- und Programmierrichtlinien, das konsequente Schreiben von Tests oder das gewissenhafte Durchführen von Reviews.
Verletzungen vermeiden
Wie anfangs schon erwähnt, beugt das Aufwärmen bereits der Verletzungsgefahr vor. Auch Aufmerksamkeit zahlt sich aus. Sind andere Kletterer bereits über mir in der Route? Was spielt sich unter mir ab? Kann ich bei einem anderen Kletterer durch sogenanntes Spotten in einer gefährlichen Situation das Risiko verringern? Sind beim Outdoor-Bouldern entsprechend Matten (Crashpads) unterlegt? Falls man sich dennoch verletzt, ist es wichtig, dem Körper die Zeit zu geben, sich vollständig auszukurieren.
Es kommt nicht selten vor, dass man aus Angst in Trainingsrückstand zu geraten, vorzeitig wieder anfängt, die verletzten Stellen zu belasten, was dann zu einem längeren Ausfall oder zu chronischen Beschwerden führen kann.
Im Programmier-Alltag könnte man das mit einem Systemfehler vergleichen. Zu lange ignoriert, kann dieser teilweise sogar zu größeren Schäden am Gesamtsystem führen, als wenn man sich die notwendige Zeit nimmt, ihn zu beheben und ggf. bereits verursachten Schaden zu korrigieren.
Ähnliche Beispiele lassen sich sicher auch in anderen Freizeitbeschäftigungen finden. Nahezu jede Übertragung kann zu einem ausgeglicheneren Arbeitsalltag und dadurch auch zu entspannter Freizeit führen. Sicherlich können die Erkenntnisse auch umgekehrt angewandt werden, falls die Überforderung eher in der Freizeit zu tage tritt. Der Schlüssel besteht darin, etwas bewusster leben, um sich dies zu verinnerlichen.
Neugierig geworden? Das PAYMILL Engineering sucht übrigens gerade einen Junior / Advanced PHP Backend Developer (m/w). Hier geht´s zum Stellenprofil!