Training

Entwicklungsprozess-Qualität steigern, indem man die Schnittstelle zwischen Requirements und Code meistert

In einer eintägigen praktischen Schulung vermitteln wir, basierend auf unserer langjährigen Erfahrung und Forschung, Best Practices und Anregungen, wie man den Entwicklungsprozess pragmatisch verbessern kann, um die Softwarequalität zu erhöhen und ein aufschlussreiches Monitoring sowie eine bessere Projekt-Planung zu erreichen.

Das Entwicklungsteam lernt:

  • wie man knapp und gut Requirements schreibt und spezifiziert,
  • wie man dafür einen Issue Tracker pragmatisch verwendet,
  • wie man Best Practices (z.B. git staging) bei Git anwendet,
  • wie man im Umgang mit Git und einem Issue Tracker bei der Fehlersuche produktiver wird
  • wie man im Umgang mit Git und einem Issue Tracker ein für die Entwicklung nützliche und nachvollziehbare Projekt-Historie aufbaut, um Mehraufwand später bei der Fehlerbehebung zu vermeiden.

Wir konzentrieren uns auf die richtige Handhabung des Issue-Trackers, des Versionskontrollsystem und insbesondere auf deren gemeinsame Nutzung. Wir beginnen mit den wesentlichen Grundlagen, indem wir einen vernünftigen Satz von Issue-Typen nach dem Prinzip „so wenig wie möglich und so viel wie nötig“ einführen. Im weiteren Verlauf lernen Sie, wie Sie das Beste aus Ihren Werkzeugen herausholen können, indem Sie aussagekräftige und strukturierte Ticket-Beschreibungen und Commit-Messages verfassen, und wie Sie Code-Änderungen vernünftig in einzelne Commits aufteilen können. Wir zeigen Ihnen, warum sich der Aufwand lohnt und wie Sie damit die Qualität Ihrer Softwareentwicklung erheblich verbessern und letztlich Zeit und Geld sparen können. Wir gehen auch auf Themen wie Branching-Workflows und Testing ein.

Alle unsere Vorschläge und Methoden sind werkzeug- und programmiersprachenunabhängig und können in Ihrem Projekt unabhängig von einem konkreten Issue-Tracker (wie Jira, redmine, Bugzilla, YouTrack etc.), Versionskontrollsystem (wie Git, Subversion, Mercurial etc.) oder einer Plattform (wie GitHub, Gitlab, TFS) eingesetzt werden. Aufgrund der Popularität von Git und unserer eigenen umfangreichen Erfahrung damit, bieten wir jedoch auch spezielle Sessions zu Git an, in denen hauptsächlich einige fortgeschrittene, aber sehr nützliche und effektive Techniken behandelt werden.

Software-Testbarkeit mit den richtigen Design-Patterns steigern

In einer eintägigen praktischen Schulung vermitteln wir Software Design-Techniken, um die Design-Qualität zu erhöhen. Dabei wird der Fokus auf Design-Patterns gelegt, die zur Entkopplung UND zur erleichterten Testbarkeit des Codes beitragen. Diese Techniken können zum einen bei einer Neu-Entwicklung angewendet werden, um ein gutes und testbares Design im Code anzustreben. Zum anderen sind sie aber auch im Falle von bestehendem Code sehr nützlich, um nachträglich sukzessive Refactoringschritte mit Unit-Tests oder Integrationstests einzuführen.

Durch eine erhöhte Anzahl an Tests und eine leichtere Testbarkeit des Codes nicht nur  die externe System-Qualität verbessert, sondern auch die Verständlichkeit des Codes für das gesamte Entwicklungsteam.

Unsere Vorschläge und Methoden sind programmiersprachenunabhängig und können in Ihrem Projekt unabhängig von einem konkreten Test-Framework eingesetzt werden.

Mehr als trockene Theorie

Wir wissen, dass gute Argumente allein oft nicht ausreichen. Deshalb werden wir Sie von unseren Ansätzen überzeugen, indem wir Beispiele zeigen, konkrete Fälle auseinandernehmen und Übungen mit anschließenden Diskussionen durchführen. Wir möchten, dass Sie „Aha-Momente“ erleben und nicht nur unsere Ansichten übernehmen.

Wir sind uns bewusst, dass Entwickler oft zusätzliche Arbeit, die nicht unmittelbar mit dem Prozess der Programmierung zusammenhängt, als Overhead betrachten. Wir sind uns bewusst, dass es oft nicht einfach ist, Teams davon zu überzeugen, diesen zusätzlichen Aufwand konsequent zu betreiben, und dass Teamleiter sich oft nicht berechtigt fühlen, diese Art von Disziplin zu fordern. Wir sind uns auch bewusst, dass Guidelines nicht akzeptiert und umgesetzt werden, wenn sie nur von Vorgesetzten beschlossen und auferlegt werden. Wir bieten Lösungen und Strategien dafür an, wie Sie Ihr Team motivieren und dazu bringen können, dass es sogar zu einem Verfechter solcher Ansätze wird.

Keine Einheitslösung für alle

Projekte, Teams und Umstände sind immer unterschiedlich, und so sind auch unsere Trainings: keine standardisierten Vorträge, sondern immer individuell auf Ihre Anliegen abgestimmt. Vor einem Training versuchen wir, Ihre Situation und Ihre Probleme so gut wie möglich kennen zu lernen. Wir schätzen den Austausch. Deshalb beginnt jedes Training (oder Vorbereitungstreffen) mit einem Runden Tisch, an dem jedes Teammitglied seine Themen zur Sprache bringen kann. Am Ende eines Trainings erhalten Sie nicht nur neue Kenntnisse, Einsichten und Fähigkeiten, sondern auch einen individuellen Satz von priorisierten Maßnahmen, die am besten zu Ihren spezifischen Anliegen passen.

Sie sind nicht allein

Im Anschluss an eine Schulung sind wir gerne bereit, Sie bei der Umsetzung der beschlossenen Maßnahmen zu begleiten. Der Umfang unseres Engagements kann individuell vereinbart werden. Es können regelmäßige Reviews (z.B. wöchentlich, monatlich) sein oder ein einmaliges Review nach einem bestimmten Zeitraum (z.B. Quartal) oder auch technische Unterstützung (z.B. Einrichtung & Konfiguration von Tools) – es liegt ganz bei Ihnen.


Sie sind interessiert oder benötigen weitere Informationen? Wir freuen uns darauf, mit Ihnen in Kontakt zu treten!