The JavaScript Craftsman

Gestern, 14.12.2013, fand der Global Day of Code Retreat statt. Ein Code Retreat ist eine Veranstaltung der Software Craftmanship Bewegung für Entwickler, um ihre handwerklichen Fähigkeiten zu trainieren. Was ist ein Craftsman? Sucht man im Wörtbuch nach Craftsman findet man die Begriffe Facharbeiter, Handwerker und Handwerksmann und unter dem Wort Craft findet man die Begriffe Kunstfertigkeit, Geschick, Gewerk und Handwerk. Betrachtet man nur die Begriffe aus dem Wörtbuch, könnte man meinen, bei Software Craftmanship handelt es sich einzig und allein um das beherrschen des Handwerks, also um das schreiben von wunderschönen Code. Das stimmt so nicht ganz, klar möchte ein Software Craftsman guten Code produzieren, darüber hinaus aber möchte ein Software Craftsman ein professionelles Bild seiner Zunft abgeben. Was das bedeutet und wie die Prinzipien der Software Craftsman auch im JavaScript Umfeld umgesetzt können, soll in diesem Beitrag gezeigt werden.

Ein Software Craftsman betreibt nicht nur professionelle Entwicklung

Ein Craftsman führt seine Arbeit gerne aus und bemüht sich den Job so gut wie möglich auszuüben, er stellt an sich ein Höchstmass an Professionalität! Das bedeutet nicht nur, dass die Qualität des Quellcodes im Mittelpunkt steht, sondern auch das Problem des Kunden. Dabei ist es wichtig, nicht nur das Problem des Kunden verstanden zu haben sondern auch die Sicht des Kunden auf sein Problem zu kennen, denn nur so entsteht ein gleiches Verständnis für die Problematik und nur dadurch kann die Software entstehen die der Kunde auch wirklich braucht. Es lässt sich also sagen: Ein Software Craftsmann will die richtige Software entwickeln, und die Software richtig entwickeln. (Quelle: http://www.softwerkskammer.org/ )

Was macht dann einen JavaSript Craftsman aus?

Es gibt gewisse Faktoren die dazu führen, dass JavaScript von vielen Entwicklern nicht richtig ernst genommen wird, z.B. die Eigenheiten der unterschiedlichen Browser, globale Variablen oder die Umsetzung der Objektorientierung. Genau an dieser Stelle können viele Tools zur Hilfe genommen werden und helfen somit die Akzeptanz von JavaScript zu erhöhen. Wir können daraus ableiten: „Um professionell JavaScript entwickeln zu können, muss ich Tool- getrieben arbeiten!“

Professionelle JavaScript Entwicklung erfolgt Tool- und Test-getrieben
Warum mache ich nicht Dinge die ich in anderen Programmiersprachen, z.B. PHP mache, nicht auch mit JavaScript? Ich habe bemerkt, dass es oftmals nur daran scheitert, dass verschiedene Tools einfach nicht bekannt genug sind. So exisitern für JavaScript auch Möglichkeiten um Unit Tests auszuführen und Code Coverage Resports in seine Continuous Integration– Umgebung einzubringen, Syntax Checks sind auch kein Problem. Ebenso sind Tools vorhanden um automatisiert Dokumentations-Dateien anzulegen.

Nur Pattern und Methoden kennen reicht nicht aus

Es reicht nicht aus, zu wissen welches Pattern oder welche Methode an einer bestimmten Stelle im Quellcode eingesetzt werden kann, vielmehr ist es für uns Software-Entwickler sehr wichtig mit unseren Werkzeugen richtig umgehen zu können. Man stelle sich einen Schreiner vor, der zwar weiß dass sein Werkstück abgeschliffen werden muss, aber er kann nicht mit dem Schwingschleifer umgehen. Es wird nicht lange dauern und der Schreiner wird nicht mehr beauftragt. Um nicht in diese Situation zu kommen, ist Übung mit den Werkzeugen notwendig.

Ich möchte an dieser Stelle nicht behaupten, dass nur Übung mit den Tools mit denen wir entwickeln notwendig ist, um fehlerfreien, gut lesbaren und verständlichen Code zu schreiben- nein auch hierfür ist Übung notwendig. Und natürlich müssen auch Pattern, Methoden und Prinzipien geübt werden. Bei der Entwicklung mit JavaScript gibt es für nahezu jede Anforderung ein Tool das genützt werden kann. Es ist nicht wichtig, dass jeder ein Tool benützt, sondern, dass das gewählte Tool beherrscht wird. Es gibt viele Möglichkeiten zur Übung:

  • Engagment in einem OpenSource Projekt
  • Teilnahme an einem Coding Dojo/Code Retreat
  • Code Katas zum Üben der IDE Shortcuts

So lassen sich Techniken einstudieren und man wird besser.

Raus aus der Komfortzone!

Software-Entwickler ist ein sehr spannender Beruf, man hat es sehr oft mit abwechselnden Anforderungen zu tun, das Projekt-Setup ist nur selten gleich zum vorherigen Projekt- der Job ist Abwechslungsreich und nie langweilig. Allerdings hat diese Vielalltigkeit seinen Preis: man muss sich ständig weiterentwickeln und weiter lernen. Beim schreiben dieser Zeilen kommen mir die Worte meines Großvaters wieder in den Sinn. Er war Elektriker und hat für die Nachbarschaft öfters Waschmaschinen, Kühlschränke und später auch Trockner repariert. Immer wenn er ein ihm noch unbekanntes Gerät repariert hatte, sagte er „Man lernt nie aus!“ Und genau das trifft auch auf uns Software-Entwickler zu, wir müssen uns auch kontinuierlich mit neuen Technologien und Tools beschäftigen. Gerade für JavaScript trifft dies besonders zu, für Unit Tests mit JavaScirpt zum Beispiel gibt es viele Ansätze die jeder für sich zumindest einmal ausprobiert haben sollte. Will man sich ständig weitrentwickeln gehört auch dazu, dass man sich mit Gleichgesinnten austauscht, deren Arbeit ansieht und darüber diskutiert und sich das ein oder andere abschaut. Ebenso macht es Sinn bestehende Vorgehen zu hinterfragen: Warum lautet das TDD Mantra red-green-refactor? Kann ich den Workflow ändern und was passert dann? Wie lösen bekannte Frameworks immer wiederkehrende Aufgaben, z.B. User-Authentication oder Eventhandling. All diese Fragen helfen letzten Endes sein Wissen auszubauen und zu festigen.

Fazit

Zusammenfassend lässt sich sagen, was Software Craftsmanship ausmacht: Ein Software Craftsman kümmert sich um seinen Code- deshalb ist Lernen und Üben sehr wichtig. Darüber hinaus ist das Weitergeben von Wissen ein sehr wichtiger Aspekt der Software Craftmanship Bewegung, viele Communities, z.B. die Softwerkskammer ermöglichen es, Erfahrungen auszutauschen und voneinander zu lernen. In Hinblick auf den JavaScript Craftman ist vor allem die Erkenntnis wichtig, dass professionelle Entwicklung nur Tool- und testgetrieben erfolgen kann.

Link zur Softwerkskammer: http://www.softwerkskammer.org/

Für neue Blogupdates anmelden:


2 Gedanken zu “The JavaScript Craftsman

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.