Eine PHP-Schulung gegen Legacy Code mit PHPStan für mehr Softwarequalität in PHP-Teams hat wieder überzeugt. Inhaltlich ist das ein straffes Programm. Dabei gibt es bei PHP-Trainer Roland Golla keinen Frontalunterricht, sondern echtes Teamwork mit der Funktastatur. Das bedeutet auf der einen Seite natürlich, dass niemand inhaltlich bei dem hohen Tempo verloren geht, andererseits aber auch, dass eine wirklich intensive Schulung das viele Wissen bis in die Finger bringt. Und das Beste: alles wird in ein aktuelles Projekt integriert und ist damit ab sofort verwendbar.
Innovativ selber User Stories für Tests schreiben – Tag 1: Abwechslung Theorie und Praxis
Die Inhalte Softwarequalität, Testing und Passion in zwei Tagen unterzubringen braucht keine konkrete Agenda. Geht es nach Roland Golla, so arbeitet das Team selber und geleitet an der Entdeckung neuer technischer Inhalte. Pioniergeist wird geweckt. So kommt das Wissen am besten an, da es einfach verstanden ist. Dabei selber Fortschritte zu erzielen, die direkt im eigenen Projekt sind, macht natürlich Spaß. Daher ist der erste Tag für den Einstieg eine praktische Best-Practice-Demo in der Roland Golla selber ein Test-Setup und viel Know-How in einem ganz neuen Repository aufsetzt. Danach geht es mit der Funktastatur an die zweite User Story. Hier werden alle Fragen geklärt und natürlich auch alle Fallen mitgenommen. Das macht viel auch Spaß und vermittelt recht lückenlos viel Wissen ohne langweiliger Frontalunterricht zu sein. Nach dem ersten lauffähigen Tests checken alle Teilnehmer die Tests auf ihren lokalen Rechner aus. Hier werden diese dann zum Laufen gebracht. Dadurch bekommt jeder Teilnehmer ein garantiertes Setup um Tests lokal auszuführen. Danach werden in Zweier-Teams – Pair Programming – weitere User Stories als Tests abgebildet. So muß jeder auch alleine mit einem Kollegen das neue Wissen anwenden. Also programmiert in den Workshops niemand an einem Zeitpunkt alleine. Never Code Alone.
Das PHP-Team wollte mit PHPStan und PhpStorm Best Practice mehr neues und aktuelles Wissen als selber an der Funktastatur zu schreiben
Teams sind immer sehr individuell. Deshalb ist es Roland Golla so wichtig eine ganz individuelle Gruppenschulung durchzuführen. Dabei sind Web Developer Teams von ihrem Know-How, ihrer Begeisterung und natürlich auch ihrem Lernverhalten absolut individuell. „Wir arbeiten zwei Tage als Team gemeinsam an neuem Wissen und haben viel Bock und Spaß dabei“ so die Zusammenfassung des PHP-Trainers Golla. Das Team aus Hemer bei Iserlohn wollte eher viel Best-Practice-Wissen und Software-Entertainment. Also Tools, Command Line, PhpStorm Plugins, PhpStorm-Shortcuts und natürlich einfache Tests, komplexe Tests und möglichst viel Know-How außerhalb des eigenen Scopes. Also über den berühmten Tellerrand hinweg. Das Team der Südwestfalen IT ist dabei vom aktuellen Wissen und der Art Software zu entwickeln wirklich sehr gut. Nicht ohne Grund hat sich die Abteilung auf Formulare im Internet spezialisiert und ist in diesem Bereich sehr erfolgreich. Zu den Kunden zählen nicht ohne Grund viele öffentliche Behörden. Das ohne automatisierte Tests zu machen erfordert bisher eine hohe Disziplin und natürlich Pair Programming und Code Reviews. Agile Arbeitsprozesse sind hier längst fest etabliert. Automatisierte Prozesse dienen hier eher für eine bessere Skalierung als einen möglichen Stillstand in der Entwicklung abzuwenden. Große Bühne für den Initiator von Never Code Alone und Erfinder des Konzepts mit der Funktastatur. Also Sessel zurück, Kino-Position einnehmen und ab in die Matrix.
PHPStorm Ticks und Live Templates überzeugen – Tool Handling Advanced spart Zeit und macht Spaß
PHP-Developer arbeiten mit sehr vielen Tools und Technologien. Das bekannteste ist hier wohl PhPStorm. Die Entwickler IDE kann allerdings eine so große Vielzahl von Shortcuts, dass es hier nötig wäre sich einige Tage intensiv mit den Funktionen auseinander zu setzen. Leider fehlt Entwicklern hier die Zeit für die eigene Weiterbildung. Andreas Mautz und Roland Golla, die beiden Dozenten hinter der Entwicklungshilfe NRW, haben sich allerdings beide diese Zeit genommen und sich intensiv mit dem Tool beschäftigt. Seit einem Jahr demonstriert Roland Golla auch regelmäßig „PHPStorm Shortcuts“ auf Entwickler-Barcamps. Neben Multi Cursor und Refactoring findet der Einsatz von Live Templates hier sehr großes Interesse. Dadurch wird die Arbeit von Entwicklern viel effizienter und weniger fehleranfällig. Das PHP-Team in der Schulung war hier auch hellauf begeistert. Tool Handling ist ein fester Bestandteil in den Schulungen der Entwicklungshilfe NRW. Mautz und Golla glauben, dass nur durch den richtigen Einsatz ihrer Tools Entwickler 20% effektiver arbeiten könnten. Das ist nicht genau belegt, aber mit der Leidenschaft, die sie dadurch in den Teams entfachen kann der Wert unter dem Strich durchaus realistisch sein.
Bugs werden gefunden sobald Tests selber nach Fehlern suchen – PHPStan überzeugt – PHP-Training für Teams rentiert sich recht schnell
Das Schulungsformat “In 4 Tagen zur Build-Pipeline” ist sehr beliebt und hat bisher in allen Schulungen immer auch erfolgreich Bugs gefunden. Sobald Tests selber auf die Suche nach Fehlern gehen, finden sie Fehler. Ein Link, der nicht geht. SEO-Settings in Bildern, Pflichtfelder in Formularen oder Filter im E-Commerce. Manuelle Tests werden eben immer nur sehr oberflächlich ausgeführt. Wenn Tests automatisch anfangen alle angezeigten Datensätze eigenständig zu durchstöbern, werden sie recht schnell fündig. Das ist gerade bei dem Listing von Datensätzen der Fall. Lässt man sich beispielsweise zu jedem Artikel die Detailansicht anzeigen und kontrolliert hier die Titel in URL, Headline, Seitentitel und Bild findet ein automatisierter Test hier Fehler. Die können ganz unterschiedliche Ursachen haben. Redaktionelle Fehler, falsche Zeichenkodierungen aufgrund fehlerhafter Imports oder Ausgangsdaten bis hin zu echten Systemfehlern. Tests, die auf viele Elemente losgelassen werden, sind extrem viel schneller als manuelle Tests. Genauer gesagt sind manuelle Tests in diesem Umfang überhaupt nicht mehr möglich. Automatisierte Tests sind also die einzige Chance zuverlässige Tests durchzuführen. Hier sollte kurz klargestellt werden, dass es sich um Acceptance – also End-to-End – Tests handelt. Unit Tests sind allerdings auch ein fester Bestandteil der PHP-Schulungen. Die finden allerdings eher Systemfehler und haben keine so hohe Testabdeckung, da sie sich ja nur auf einzelne Units beschränken.
Windows, Mac oder Linux – Gemeinsam für ein Ziel einstimmen
Unterschiedliche PHP-Teams und auch Entwickler in gleichen Teams nutzen unterschiedliche Betriebssysteme. Hatten doch die meisten PHP-Entwickler in den letzten 10 Jahren Mac-Geräte ist hier der Markt zur Zeit stark im Wandel. Die Preispolitik von Apple passt einfach nicht zu den aktuellen Geräten. Entwickler brauchen allerdings neue und aktuelle Hardware, da sie mit Docker auf virtuellen Maschinen und nicht mehr lokal entwickeln. Aus diesem Grund setzt Roland Golla seit November 2018 auf Linux mit Fedora auf einem 13 Zoll Dell XPS. Windows hat mit Windows 10 auch ein sehr starkes und zuverlässiges Betriebssystem geschaffen, dass auch zunehmend Backend-Entwickler und sogar Administratoren und Devops sehr glücklich macht. Auf den PHP-Schulungen werden bei jedem Teilnehmer alle Einstellungen und Installationen vorgenommen. Am Ende von Tag 1 hat so jeder laufende Tests auf seinem System und kann in Zukunft mit Tests arbeiten. In diesem Blog werden auch bald Tutorials für die Installationen veröffentlicht.
Fazit zum PHP-Training für Codeception und PhpStorm
Entwickler wollen sich weiter entwickeln. Automatisierte Tests und Deployments sind hierfür die Grundlage. Unsere Schulungen decken genau diese Grundlage ab. Dazu geben sie noch allerhand Best-Practice-Tipps und auch Soft Skills mit, wie das Tool-Handling in PhpStorm. Gemeinsam mit der Funktastatur werden Teams als Einheit für die neuen Aufgaben eingestellt und arbeiten Hand in Hand an Lösungen direkt in ihrer Applikation und auf ihren eigenen Arbeitsgeräten. So kommt das Wissen direkt in den Fingern an und ist auch schon im Projekt. Alles in allem eine wirklich runde Sache, die mit Spaß auf den Punkt gebracht wird.
7 Kommentare
[…] von Entwicklern und ist nachhaltig. Mit PHPStan hat man eine hervorragende Möglichkeit Legacy Code kontinuierlich abzubauen. Hier kann man mit einzelnen Leveln sein eigenes Quality Gate festlegen. […]
[…] Workflow hat jeder Entwickler seinen aktuellen Stand in Develop gemerged. Ohne eine Testinstanz, nicht mal statische Code Analyse. Wenn es dann hier abgenommen war, wurden die Änderungen unterschiedlicher Entwickler mit Cherry […]
[…] Boni gibt es in der ganzen IT Branche leider nicht wirklich. Aber es gab ganz viele Versprechen, wie man Code und Prozesse verbessern will. Und auf einmal ist genau diese Zeit da. Versprechen einlösen – Pustekuchen. Und so, wie das […]
hi ,
can you send .gitlab-ci.yml file.
thanks in advance
Please check this here on our GitHub account and give it a star 😉 https://github.com/nevercodealone/cms-symfony-sulu
[…] und dort auch in Zukunft zur Verfügung stehen. Neben meiner Arbeit für ein neues Level mit PHPStan im Sulu Core haben wir dort auch schon etwas für ein Maven Plugin getan. In der Vergangenheit gab […]
[…] räumt man Legacy Projekte auf und bringt Software auf ein völlig neues Level? Die Lösung: eine PHP Schulung als Teamwork. […]