dkd Blog

Blog

Was wir machen. Wie wir denken. Wofür wir brennen.

TYPO3 Review Day – Community PHP-Training

TYPO3phpcode reviewgastautor
Guest Author

GASTBEITRAG von Roland Golla

 

 

 

Pair Programming und Code Reviews sind das beste PHP-Training für TYPO3 Web Developer

 

Es ist vor allem der Austausch unter Entwicklern, der neues Know-How für beide Seiten bringt. Code Reviews bringen unterschiedliche Blickwinkel und vor allem neue Lösungswege. Gemeinsam kann man damit die Codequalität verbessern. Das ist alleine in dieser Form auf keinen Fall möglich. Code soll dabei immer gut lesbar sein und natürlich auch möglichst wenig Code verwendet werden. In der Entwicklung und hier speziell bei neuen Features ist darauf aber nicht immer der Fokus gesetzt. Hier muss ja erst einmal eine Funktionalität hergestellt werden und dann müssen auch noch zusätzliche Anforderungen implementiert werden. Und genau hier gibt es absolut unterschiedliche Wege etwas zu erreichen und natürlich auch unterschiedliche Herangehensweisen. Richtig gute PHP-Tricks und gemeinsam erarbeitete Best-Practice-Lösungen erreicht man also nur, wenn man gemeinsam an Code Reviews arbeitet.

 

Code Reviews gegen Software Bugs

 

 

Code Beispiel:

Beste Verpflegung und ein ganz nettes Umfeld

 

 

 

 

Leute, die sich freiwillig und ehrenamtlich für etwas engagieren, sind untereinander durch ein gemeinsames Ziel, die gute Sache, verbunden. Das trifft natürlich auch auf die Open-Source-Community TYPO3 zu und die ist dazu auch noch besonders nett. Einmal im Monat lädt die TYPO3 GmbH in Düsseldorf zu einem offiziellen «TYPO3 Review Day» ein. Ziel hierbei ist es, gemeinsam möglichst viele aktuelle Tasks für ein kommendes Release zu reviewen. Ein solcher Review Day fängt morgens an und geht bis tief in die Nacht. Dabei ist es jedem Entwickler freigestellt, wann er dazu kommt und wie viel Zeit er hier verbringt. Man steht hier auch jedem Besucher wirklich dankbar und offen gegenüber. Aber nicht nur das. Getränke und Essen werden ebenfalls gestellt. Keine Pizza aus der Mikrowelle, sondern echtes Essen aus der Nachbarschaft am Wehrhahn. In dem Büro gibt es hochwertige Arbeitsplätze mit guten Monitoren und Stühlen. Wenn man sich erstmal eingerichtet hat bekommt man auch tatkräftige Unterstützung der anwesenden Entwickler. Nach den ersten Schritten bekommt man dann auch schnell ein Ticket zugewiesen und den Workflow erklärt. Das ist wirklich sehr effizient. Hier braucht keiner zu warten oder irgendwelche Tutorials stumpf abzuarbeiten. So macht ein Start einfach Spaß.

 

«TYPO3 PHP»-Training mit der Community

 

In TYPO3 gibt es sehr viele Wege ein bestimmtes Ziel zu erreichen. Die TYPO3-Community ist auch sehr stolz auf ihre eigene technische Unabhängigkeit. Das sind vielleicht auch Werte, die in einer Zeit von Libraries und Dependencies, in der junge Programmierer nicht mal mehr einfachste Konvertierungen von Datumsformaten selber programmieren wollen, fehlen. Aber natürlich gibt es im Bereich TYPO3 Best-Practice-Lösungen. Und wer sollte die wohl besser kennen, als das TYPO3-Core-Team selbst. Denn die arbeiten ja am Core, um Probleme, die sie in der realen Entwickler-Welt haben, mit dem Core zu lösen. Und natürlich verdienen sie auch ihr Geld mit TYPO3-Projekten. Zusammengefasst – es gibt in TYPO3 ganz viele Wege, aber einige sind hier einfach viel besser und nachhaltiger. Aber bei einem Review-Tag geht es gar nicht so sehr um TYPO3, wie man vielleicht vermuten könnte. Es geht natürlich in erster Linie um PHP. Und das Schöne ist ja der Weg, den der Code in den Core geht. Das läuft vor allem über Votings ab. Alle Änderungen, die ein Contributor – das kann nach einem kleinen Setup auch jeder sein – in den Core bringen will, werden von der TYPO3 Community und ihren Entwicklern bewertet. Auf der einen Seite gibt es das sehr wichtige Bewerten, ob ein Bugfix ein reales Problem löst. Also stellt man es nach und schaut, ob der Patch es fixt. Ist das so kann man einen Verify +1 geben. Sonst gibt es natürlich ein -1. Bugs sind mehr oder weniger leicht nachzustellen. Und daneben gibt es noch den eigentlichen «Code Review Vote». Hier kann man auch einfach nur Struktur, Lesbarkeit, Einfachheit oder auch mögliche Fehlerquellen für Notices, Warnings oder Exceptions bewerten. Sind bei beiden Votings, Verify und Code Review, mehrere positive und vor allem keine negative Bewertung mehr, werden diese Änderungen in den aktuellen Core gemerged. Als PHP-Developer lernt man hier eine ganze Menge. Und vor allem, dass es echt Spaß macht, gemeinsam an guter Software zu arbeiten.

 

PHP-Tricks und Best Practice

 

 

 

Software Craftsmanship - Man kann immer helfen und etwas Gutes tun

 

Wir alle nutzen Open-Source-Software. Diese lebt von einem großen ehrenamtlichen Engagement und Community Spirit. Das spart uns auch sehr viel Arbeit. Bugs, die man anmeldet, werden behoben und es kommen regelmäßig Updates. Hier werden jeden Tag weltweit viele Stunden in eine Software investiert, damit wir alle besser und vor allem sicherer arbeiten können. Hier kann jeder von uns auch sehr einfach seinen eigenen Teil beisteuern und sollte das auch tun. Das ist auch eine Form des Respekts, der Wertschätzung und des Anstands. Gute Entwickler tauschen sich übrigens viel untereinander aus, damit sie ihr eigenes Wissen vertiefen und erweitern. Sehr gute Entwickler fordern sogar Feedback für ihre eigenen Ideen und Projekte ein. Denn das ist auch im Interesse der Software. Wer jeden Tag dasselbe tut, der kann sich nicht weiterentwickeln. Wir brauchen Input von außen. Und wir müssen uns natürlich auch außerhalb unseres eigenen Scopes bewegen: Andere Frameworks, Technologien und auch Programmiersprachen. Hier gibt es wirklich viel zu entdecken und das hält auch den Kopf fit und die Laune hoch. Vielleicht hat schon mal jemand einen Talk von Susi Moog von team neusta zum Thema «Code Katas» gehört. Also ein gleiches Problem mit unterschiedlichen Technologien zu lösen. Oder auch mal einen speziellen Shortcut auf einer IDE im Laufe der Woche zu fokussieren. Das alles sind Dinge, die uns weiter bringen. Aber natürlich ist der eigene Schweinehund in der Freizeit einfach größer, vor allem wenn man in schlechten Arbeitsbedingungen verheizt wird. Daher ist es einfach wichtig, sich Gruppen anzuschließen und zum Coden zu verabreden. In Zeiten von Slack ist das ja kein Problem mehr. So code ich auch regelmäßig, wenn auch zu wenig, an Never-Code-Alone-Projekten. Das TYPOcore-Team arbeitet aber ständig und ist offen für Unterstützung und Hilfe.

 

Die ersten Schritte als TYPO3-Contributor

 

Der Workflow als TYPO3-Contributor ist gut online dokumentiert und auch schon als YouTube-Video auf dem offiziellen Kanal veröffentlicht worden. Trotzdem ist es natürlich hilfreich, diesen Workflow einmal von jemanden zu sehen, der damit öfter gearbeitet hat. Er ist natürlich nicht so trivial, wie die meisten Setups in normalen Projekten. Hier gibt es natürlich ein Code Review durch andere Entwickler. Dieses Mehraugenprinzip stellt die Qualität des Codes sicher und sorgt auch immer für eine kleine Innovation. Ist es der effektivste Weg zum Ziel und versteht es jeder, was da steht? Lesbarkeit ist natürlich immer extrem wichtig. Stichwort Clean Code.

 

Sei nicht weich – es sind halt auch nerdige Coder

 

 

Natürlich arbeiten wir in unserer Freizeit an einem Feature oder Task für ein Open-Source-Projekt und fordern, je nach Persönlichkeit, mehr oder weniger Dankbarkeit für unsere Arbeit. Und wenn wir etwas Live bringen, dann sind wir natürlich davon überzeugt, dass es richtig ist und läuft. Feedback oder gar Kritik für den eigenen Code zu bekommen ist für viele von uns auch eine ganz neue Situation. Natürlich gibt es bei guten Arbeitgebern Pair Programming und Review-Prozesse, aber gerade im Agentur-Umfeld wird ja immer noch möglichst billig mit viel Druck auf dem einzelnen Programmierer produziert. Solche Arbeitsmethoden sind allerdings überholt und die Agenturen müssen entweder umdenken, oder werden im Rennen um gute Bewerber den Anschluss verpassen.

Viel wichtiger ist es deshalb für uns selber als Programmierer nicht den Anschluss im aktuellen Markt zu verpassen und Erfahrungen in echter Teamarbeit und Codequalität zu sammeln.

 

 

Aber zurück zum Review-Prozess, stellt euch einfach darauf ein, dass euer Code nicht mit großen Lobeshymnen gesegnet einfach in den Core durchgeht. Plant das einfach auch bei der Zeit mit ein und freut euch auch darauf, dass andere euch helfen euren Code zu verbessern. Manche Projektmanager nehmen den Aufwand eines Programmierers ja mal 2,5. Das finde ich ist hier ein ganz guter Richtwert. Und vor allem: Erkennt darin eine echte Chance euch weiter zu entwickeln und besser zu werden. Das hier ist ein echtes PHP-Training direkt am lebenden Objekt. Nehmt das Feedback einfach an, lernt daraus und bringt euch selber weiter. Wichtig ist das Ganze nicht persönlich zu nehmen. Genauso wie ihr, arbeiten die anderen auch in ihrer Freizeit an dem Projekt und warten wahrscheinlich nicht unbedingt darauf, jemanden ärgern zu können. Sie werden sich das auch genau angeschaut und ausprobiert haben. Sie haben mehr Zeit investiert und wahrscheinlich auch Background Know-How und ihren Grund etwas anzumerken. Hier kann der Ton manchmal etwas kurz angebunden sein. Es ist eben auch eine nonverbale Kommunikation. Das der Ton hier manchmal auch etwas kindischer, nerdiger, oder wie auch immer, wird muß man bei der Zielgruppe einfach mal so hinnehmen. Nehmt es mit einem Lächeln.

 

 

 

 

Und dann kommt natürlich Feedback zu unserem Code gewöhnlich auch sehr schnell und das ist in der Regel eben ein kurz angebundener und vor allem technischer Verbesserungsvorschlag. Den tieferen Sinn darin sieht man vielleicht nicht und legt das eher als Gemäkel oder gar Gehässigkeit aus. Ob ich das jetzt so oder so schreibe, was macht das schon für einen Unterschied, dass sich diese Diskussion und der Aufwand hier überhaupt lohnt.

Immerhin habt ihr das jetzt mal geschafft etwas für den Core zu machen, Stunden mit Dingen verbracht und dann steigt dir einer wegen zwei kleinen Zeichen aufs Dach. Ich bin selber ein sehr schwieriger Charakter und mein Leben ist praktisch schon ein Kompromiss, wenn ich den Rechner hochfahre. Das bedeutet allerdings überhaupt nicht, dass ich Recht habe. Denn selbstverständlich kennt sich ein TYPO3-Core-Entwickler viel besser im Core aus. Und zudem hat er natürlich mehr Erfahrung in dem Bereich und ist auch nicht umsonst oder unverdient TYPO3-Code-Developer geworden. Wer seinen Horizont erweitern will, muss sich natürlich auch auf andere Blickwinkel und Einflüsse einlassen. Am Ende bringt das wirklich einen großen Benefit an Skills als Teamplayer und Developer.

 

 

Open Source – Gib etwas zurück

 

Wir alle nutzen Open-Source-Projekte und suchen auch nach Lösungen und Hilfe mit Google und landen natürlich auch bei Stack Overflow. Und wie schnell kommen wir mit dieser Hilfe weiter und können unsere Tasks dadurch abschließen. Das alles passiert, weil wir eine Gemeinschaft und Entwickler-Community sind und Mitglieder sich trauen Fragen zu stellen und andere diese beantworten. Hier können wir alle helfen. Am einfachsten ist es für Dinge zu voten. Das tut nicht weh. Als nächstes hilft auch ein einfaches „Danke“ als Kommentar. Das bringt auf der einen Seite den aktuellen Post weiter und auf der anderen ist es auch eine Form der Anerkennung und des Respekts. Auf Dauer ist man damit allerdings auch nicht mehr als ein sehr guter User. Darüber hinaus kann man auf jeden Fall auf GitHub bei den Open-Source-Projekten, die man nutzt, Issues einreichen, nachstellen und bewerten. Das hilft dem Core-Team des jeweiligen Projekts schon sehr gut. Es ist auch ein gutes Gefühl, Teil eines Ganzen zu sein und einfach auch seinen persönlichen Horizont zu erweitern. Das bringt einem viel und vor allem viel mehr, als es Aufwand ist, das zu tun. Denn das ist nun mal wirklich leicht. Man muß es einfach mal machen.

 

Fazit zu den TYPO3 Review Days

 

 

Auch in großen Open-Source-Projekten arbeiten kleine, engagierte und gleichgesinnte Developer, die motiviert und mit viel Freude ihr Projekt nach vorne bringen. Eine besonders gute und nette Möglichkeit bietet der TYPO3 Review Friday bei der TYPO3 GmbH in Düsseldorf. Hier bekommt man neben einem netten Arbeitsplatz, Verpflegung und einem menschlichen und warmherzigen Kontakt vor allem Best Practice Know-How und jede Menge hilfreicher Tipps und Skills. Das ist ein vollwertiges und praktisches PHP-Training in einem ganz modernen Open-Source-Workflow. Code Reviews helfen allen Beteiligten und natürlich vor allem der Software selbst. Software zu verbessern und Feedback oder gar Kritik zu der eigenen Entwicklung auszuhalten und daraus zu lernen ist eine ganz wichtige Eigenschaft für gute Entwickler. Die wird auf dem heutigen Arbeitsmarkt stark gesucht und ist eine Menge wert.

Aber viel wichtiger ist es vielleicht einen neuen Impuls an Motivation zu bekommen, um neben dem beruflichen Alltag eine persönliche Weiterentwicklung nach vorne zu bringen.

 

 


 

 

 

Über den Gastautor:

 

Roland Golla ist PHP-Trainer, Speaker und Consultant bei der entwicklungshilfe.nrw und setzt sich mit nevercodealone.de für Softwarequalität und soziale Projekte ein.

Write comment

* Diese Felder sind Pflichtfelder