Über Martin Ruprecht

Martin Ruprecht arbeitet bei Mayflower in München als Agile Coach. Martin organisiert Coding Dojos, tritt regelmäßig auf Konferenzen als Speaker auf und hält Vorträge und Workshops zum Thema Agile Development, Testing und Qualitätssicherung in Webprojekten. Seine Leidenschaft gilt der Frage, welche Methoden die Zusammenarbeit in agilen Teams zu Begeisterung und Höchstleistung führt. Folge Martin auf Twitter

4 Tipps für besseres Feedback in Sprint Reviews

Als Scrum Master habe ich schon an sehr vielen Sprint Reviews teilgenommen und mir dabei oft die Frage gestellt: „Wie bekomme ich mehr und brauchbareres Feedback im Review?“

In diesem Blogpost möchte ich meine Erfahrung teilen und zeigen, wie nützliches Feedback gefördert werden kann. Außerdem werde ich meine Fehler nennen, die dazu führten, dass kein brauchbares Feedback gegeben wurde.
Weiterlesen

Kanban Anti-Pattern: der Kanban-Modus

Die Situation kommt vielleicht bekannt vor: Das Scrum-Team rückt einer Deadline näher, der Scope ist noch immer groß und die Projektbeteiligten machen sich Sorgen, ob denn die Deadline zum geplanten Release gehalten werden kann. In so einer Situation gibt es verschiedene Herangehensweisen, um erfolgreich zu sein.

Ich war Scrum Master eines Teams, das sich entschlossen hat, in dieser heißen Phase in den sogenannten Kanban-Modus zu wechseln. In diesem Blogpost möchte ich beschreiben, was sich das Team davon erhofft hat, was wir dabei gelernt haben und ob wir damit die Deadline halten konnten.
Weiterlesen

Kanban spielerisch lernen

Das getKanban Board Game ist ein Brettspiel, das den Spielern das Konzept und die Abläufe eines Kanban-Systems für Software-Entwicklung spielerisch erleben und erlernen lässt.

Zusammen mit Studenten der Hochschule München haben wir am letzten Mayday, so nennen wir unsere Slacktime, das Spiel gespielt. Beim getKanban Board Game werden die Spieler zu Crewmitgliedern einer Software-Schmiede, die ein Produkt entwickelt, das viele Leute (Subscriber) begeistert. Jedes Work Item, das einmal den Entwicklungsprozess durchläuft, gewinnt eine gewisse Anzahl an Subscribern. Sie werden am Zahltag wiederum in Geld umgewandelt. Weiterlesen

MayDay, MayDay! Slacktime bei Mayflower

MayDay, MayDay!

Natürlich ist dies eine Wortspielerei, die bei Externen eine entweder irritierte oder schmunzelnde Reaktionen hervor ruft. Tatsächlich wollen wir keinen Notruf absenden, sondern deutlich machen, dass unsere Form der Slacktime ein Slackday in Mayflower ist. Dieser Slackday wurde Mayday getauft und findet nun schon seit über einen Jahr regelmäßig jeden zweiten Freitag statt.

Mit diesem, letzten Beitrag in der Adventsblog-Reihe beschreiben wir, welche Fragen uns rund um die Slacktime beschäftigt haben und wie der Mayday in der jetzigen Form entstand. Weiterlesen

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. Weiterlesen

So wird ein Coding Dojo zu einer ernstzunehmenden Lernveranstaltung

Was sich im Ruby- und Java-Umfeld schon lange etabliert hat, findet langsam auch in unserer (PHP- & JavaScript-) Welt seinen Platz- Coding Dojos! Die Idee vom gemeinsamen Programmieren in der Form eines Coding Dojos kommt vom Autor von The Pragmatic Programmer, David Thomas. Er sagt: „Developers should practise on small, not job related code base repeatedly so that they can master their profession like musicans“. Der Autor möchte dabei nicht zur Nutzung des JavaScript-Toolkits Dojo anregen, sondern vielmehr zum gemeinsamen Coden an kleinen Aufgaben, den Katas. Folgt die PHP- und JavaScript Community einem Hype aus dem Umfeld anderer Programmiersprachen oder kann wirklich jeder etwas in einem Coding Dojo lernen? Dieser Artikel erklärt, was es mit Coding Katas auf sich hat und wie ein Coding Dojo gestalltet werden sollte, damit jeder Teilnehmer dabei etwas lernen kann. Weiterlesen

Nummer 5 lebt! Oder wie mein Arduino Board mit JavaScript gesteuert werden kann

Die Erfolgsstory von JavaScript geht seit geraumer Zeit weiter über den Browser hinaus- JavaScript auf dem Server ist längst nichts mehr neues, mobile Endgeräte wurden über HTML5 zur Plattform für JavaScript. Und auch die Spielzeug-Welt ist nicht vor JavaScript sicher, QuadroCopter lassen sich bequem mit JavaScript steuern (Stichwort NodeCopter). Doch was ist mit dem Rest der elektronischen Welt? Dieser Artikel zeigt, dass man auch mit JavaScript ein Arduino-Bord steuern kann.
Weiterlesen

19.12. Test Driven JavaScript Development

A couple of weeks ago, I was attending a three-day workshop for agile developer skills. The workshop was split into five topics: Colaboration, Refactoring, Design & Architecture, Continious Integration and Test Driven Development. Especially the session about Test Driven Development was very interesting. Although I know the principles of TDD I was really impressed by the demonstration of solving a simple exercise (a coding kata) done in Java by the instructors of the workshop. It was not so much the coding in Java that was interesting for me, it was the combination of writing a test, executing the test with a shortcut from the IDE, see the test fail, write the implementation and re-start the test again within the IDE. You will say “that´s test driven development- it´s nothing new!” and you are right! But is there a way to do Test Driven Development in the same way for JavaScript? I mean writing a test, execute the tests with a shortcut from the IDE, see the test fail, implement the method and re-start the test? Yes, there is a way! So let me show you what I have done to do the same coding kata (called Fizzbuzz) with JavaScript.

Weiterlesen

04.12. PDF nicht nur mit PHP

Eine Suche nach „php pdf“ bei der Suchmaschine meiner Wahl ergibt eine Vielzahl an Tutorials, Blog-Einträgen und natürlich auch Klassen und Bibliotheken. In diesem Blog-Artikel möchte ich einen knappen Überblick über einige der gebräuchlichsten PHP-Tools zur PDF-Generierung geben und Alternativen zeigen die keine Programmierung erfordern.

PHP: PDF – Manual

Das erste Suchergebnis führt uns auf die PHP Manual Seite. Das braucht Ihr Euch nicht anzuschauen weil es einfach nur verwirrend und unvollständig ist. Dahinter steht eine PECL Erweiterung, welche PHP einen Wrapper zur kommerziellen PDFlib bietet.

PDFlib

Ist in Version 8 verfügbar und unterstützt laut Hersteller verschiedene Features aus Acrobat 9, der PDF-Spezifikation 1.7 extension level 3. Etwas ausführlicher betrachtet bedeutet das:

  • Es kann über Verweise auf Ressourcen in externen PDF-Dokumenten zugegriffen werden.
  • Der Inhalt kann in durch den Benutzer auswählbare Ebenen aufgeteilt sein welche sich gruppieren
    lassen um zum Beispiel in Sprachspezifischen Ebenen ein und dieselbe Bildebene zu zeigen.
  • Bilder, Seiten und Teile von Seiten können mit Georeferenzen ausgestattet werden.
  • AES-256 Verschlüsselung und Unicode Passwörter werden unterstützt.

Im Gegensatz zum PHP:PDF – Manual bietet sich auf der Herstellerseite ein Haufen an Dokumentation. Dort findet Ihr neben einem Installations- und Konfigurations-Howto für PHP, eine 256-seitige PDFlib API Dokumentation und ein 312-seitiges PDFlib Tutorial.

Schon alleine die Länge der API Dokumentation lässt darauf schließen das die PDFlib umfangreiche Funktionen zum gestalten von PDF Dokumenten mit sich bringt. Auszugsweise, wie auch unter „What’s new in PDFlib 8?“ nachzulesen:

  • Bidirektionale Schriftformatierung für internationale Sprachen und Fallback Fonts.
  • Unterstützung OpenType spezifischer Font-Features
  • Textumbruch um Bilder, in Pfaden sowie Text an Pfaden entlang
  • Transparenz in TIFF und PNG Bildern
  • Interaktive Formulare
  • Druckvorlagen Farbmanagement PDF/X-4 und PDF/X-5

PDFlib ist ein renommiertes Produkt und auch in PHP können damit professionelle PDF Dokumente erstellt werden.

Zend Framework PDF

Wer etwas weniger komplexe Ansprüche an die PDF-Generierung stellt ist auch mit dem Zend_PDF Modul des unter OpenSource Lizenz veröffentlichten Zend Frameworks gut beraten.

  • Laden von PDF Dokumenten (Acrobat 5, Spezifikation 1.4)
  • Versionsverwaltung: Laden von Versionen, Rollback nach Änderung
  • Schreiben oder Ausgeben und diese Vorgänge auf die geänderten Stellen beschränken
  • Seiten als Vorlagen verwenden, Seiten zu einem Dokument hinzufügen oder entfernen
  • Einfache Vektorgrafikelemente
  • Seitentransformationen (Drehen, Zoomen)
  • 14 gebrauchsfertige „PDF-Fonts“, Unterstützung von TrueType Fonts
  • Unterstützung von Sprungzielen, Lesezeichen-Menüs, Anhängen und Aktionen
  • Unterstützung von Dokument Information und Metadaten


Das erstellen und Laden von PDF Dokumenten geht dank der durchdachten API sehr einfach von statten. Einzig den automatisierten Textumbruch mag man vermissen. Zwar kann man sich anhand der API die Weiten der einzelnen Zeichen berechnen lassen, das erscheint dann aber doch etwas aufwendig zu sein für jedes Zeichen eines Textes.

Verschiedene Typen von Anhängen und Aktionen, sofern noch nicht in Zend_PDF enthalten, lassen sich nach Lektüre der gesuchten Funktionalität in der 980-seitigen Adobe PDF Reference relativ einfach und schnell integrieren.

FPDF

Verspricht High-Level Funktionen und steht auch unter OpenSource Lizenz zum Download bereit. Ebenso wie bei Zend_PDF werden PDF-Dokumente mit FPDF nur durch Einsatz von PHP generiert und es ist keine weitere Bibliothek notwendig.

  • Auswahl der Maßeinheit, Seitenformat und -ränder
  • Seitenkopf- und Fußzeilen Verwaltung
  • Automatisierter Seitenumbruch, Zeilenumbruch und Textausrichtung

bietet FPDF unter anderem und füllt damit die Lücke in Bezug auf Automation der Textgestaltung. Es gibt FPDF Tutorials für verschiedene Anwendungsfälle und eine überschaubare FPDF API Dokumentation.
Anhand einer Extension FPDI ist es möglich Seiten aus anderen PDF-Dokumenten auszulesen und in das zu erstellende Dokument zu importieren.

Dazu gibt es auch noch eine Menge an FPDF Scripts die die Funktionalität um viele interessante Features wie Barcodes, SVG Templates bis hin zu Formularausfüllung erweitern.

Prince XML

ist eine kommerzielle aber im Privatgebrauch kostenfreie Lösung zum erstellen von PDF-Dokumenten aus XML oder HTML Quellen mithilfe gängiger CSS 2, 2.1 und 3 Eigenschaften und Selektoren sowie eigenen CSS Erweiterungen. Prince misst sich mit den gängigen Browsern im bewältigen des Acid2 Tests und bewirbt:

  • (X)(HT)ML, SVG, CSS, JPEG, PNG, TIFF, JavaScript / ECMAScript
  • Seitenkopf- und Fußzeilen, Seitennummerierung sowie Duplex drucken.
  • Mehrspalten Layouts, fließende und positionierte Blöcke
  • Verweise, Sprungziele, PDF-Metadaten und Anhänge
  • Verschlüsselung und Dokumenten Zugriffschutz

Neben dem Kommandozeilenprogramm gibt es auch für PHP eine Wrapperklasse und unter Windows gibt es sogar eine GUI zum bedienen des Programms. Die Dokumentation ist ausführlich und übersichtlich aufgebaut.

Eine schöne Lösung zum erstellen von PDF-Dokumenten wenn man sich nicht direkt mit der programmatischen Erstellung von PDF-Dokumenten beschäftigen möchte.

Online Service

Des weiteren gibt es unzählige von kostenpflichtigen und kostenfreien Online-Services wie zum Beispiel pdfcrowd das in der Lage ist HTML-Seiten von einer angegebenen Url oder auch mit einem WYSIWYG Editor erstelltes HTML-Dokument als PDF auszugeben. In einer kostenpflichtigen Version lassen sich dann auch noch verschiedene Optionen zur Konvertierung angeben.

Mit cometdocs lassen sich über 50 Dateiformate in andere Formate konvertieren. Unter anderen mit dabei Word nach PDF, HTML nach PDF und sogar Excel nach PDF.

03.12. Setting up an own QA Environment for Javascript

Nearly every PHP project comes up with a great set of tools to assure the quality of source code; unit tests are a no longer a „nice to have“ feature, they are common components in new projects. While unit tests help you to provide solid interfaces and proof the functionality of a certain method, there is a long list of tools that check the quality of the source code itself with many different metrics. Each of these mentioned tools reports its results into a XML file, which can easily be interpreted by a continuous integration server like Jenkins. The benefit is enormous: After every commit to your version control system your continuous integration server triggers the execution of the tests and the source code quality analysis and shows the result in meaningful diagrams. As a developer you get a direct feedback and you can make a prediction on the status of the entire project, because if even the smallest units work fine, there is a good chance that the whole system runs stable.
Weiterlesen