Trainings zur Software-Entwicklung
In praktischen Schulungen vermitteln wir Best Practices und Anregungen, wie man die Softwareentwicklung pragmatisch an den Arbeitsschnittstellen zwischen Requirementserfassung, Architektur, Codierung und Testing verbessern kann, um die Softwarequalität zu erhöhen und ein aufschlussreiches Monitoring sowie eine bessere Projekt-Planung zu erreichen.
- Software-Architektur - Einführung in das Konzept und deren Erstellung
- Prinzipien der Qualitätssicherung mit Issue-Tracker und Versionskontrolle (insb. Git) und deren Anwendung (von Entwicklern für Entwickler entwickelt)
- Einführung in die Design for Testability Prinzipien und Patterns
- Requirements-Engineering - was Softwareentwickler und Architekten dazu wissen sollten und müssen

Software-Architektur
Einführung in das Konzept und deren Erstellung
Die Architektur eines Softwaresystems hat einen entscheidenden Einfluss auf seinen Erfolg. Sie bestimmt, ob das System produktiv genutzt und effektiv und kostengünstig entwickelt werden kann. Es ist wichtig zu lernen, wie man eine Softwarearchitektur erstellt und gestaltet. Und zwar so, dass die Softwarearchitektur einen positiven Einfluss darauf hat, ob das System im Laufe seines Lebenszyklus verbessert, erweitert und an veränderte Technologien, Anwendungsszenarien und kundenspezifische Anforderungen angepasst werden kann.
Inhalt
- Eine systematische Einführung in die Themen der Softwarearchitektur und deren Herleitung
- Übungen in Gruppen anhand einer anspruchsvollen durchgängigen Fallstudie, um zu lernen, welche Herausforderungen Softwarearchitekten* zu bewältigen haben und welche Aufgaben Architekt* in Entwicklungsprojekten übernehmen.
- Einblick in Techniken, Praktiken und Hinweise, die bei der Interaktion mit Stakeholdern wie Product Owner/, Manager und Tester* helfen.
- Unterstützung zur Identifizierung individueller Lücken bzgl. der Software-Architektur, die in Ihrem aktuellen Projekt ein Risiko darstellen könnten, und praktische Hinweise zu deren Behebung
Dauer: 5 Tage
Wir empfehlen, diesen Kurs vor Ort für eine Gruppe von mindestens acht Teilnehmern abzuhalten. Eine rein online-basierte Version bzw. eine Kombination von Online- und Onsite-Anteilen ist aber auch möglich.
Ziel
Nach Absolvierung dieses Trainings wissen Sie
- wie man als Architekt* die architektur-treibenden Anforderungen identifiziert, diese spezifiziert und bewertet,
- wie man systematisch einen Architekturentwurf erstellt und dabei vorgeht,
- welche architektonischen Aspekte und Best Practices dem Architekten das Leben leichter machen,
- wie ein schrittweiser Prozess zur Erstellung einer Architektur aussieht und wann Architektur-Refactoring-Aktivitäten durchzuführen sind,
- Wie nicht-technische Aspekte (z.B. Geschäftsziele, Domänenmodellierung und soziale Kompetenzen) die Arbeit der Architekten beeinflussen,
- wie Architekten* die Qualität des Produkts und der Software sicherstellen,
- wie Architekten* mit technischen und infrastrukturellen Belangen umgehen, und wie Entscheidungen getroffen werden,
- wie Architekturen dokumentiert und präsentiert werden,
- welche Probleme bei der Erstellung von Softwarearchitekturen in der Praxis auftreten, und wie sie gelöst werden können,
- wie Architekten* Architekturen und Implementierungsprozesse bewerten können,
- wie Architekten* in den Entwicklungsprozess eingebettet sind, und welche Abhängigkeiten sich daraus ergeben.
Nach dem Training können Sie beginnen, diese Methoden und Techniken eigenständig in Ihren Softwareprojekten anzuwenden und umzusetzen. Mit Hilfe dieses Kurses starten Sie Ihre Karriere als praktisch arbeitender Software Architect.
Voraussetzungen
Grundlegende Kenntnisse und Erfahrung im Software-Engineering
Zielgruppe
- Softwareentwickler*, die Kenntnisse über die Erstellung von Softwarearchitekturen erwerben möchten
- Zukünftige Softwarearchitekten*
- Key/Lead Entwickler*
Die mit '*' markierten Begriffe werden hier geschlechtsneutral verwendet und beziehen sich auf Personen jeglichen Geschlechts.
Wollen Sie Ihren Wissensdurst schnell stillen? Schauen Sie in unserem Wissensbereich vorbei.
In unserem Downloadbereich finden Sie wertvolle Ressourcen, die Sie kostenfrei herunterladen können.
Entwicklungsmethodik
Issue-Tracker und Code-Repository mit Mehrwert einsetzen - Pragmatische Guidelines und fortgeschrittene Git-Techniken
Dieses Seminar vermittelt Ihnen Best Practices und Empfehlungen , wie man den technischen Entwicklungsprozess pragmatisch verbessern kann, um die Softwarequalität zu erhöhen, die Fehlersuche zu beschleunigen und ein aufschlussreiches Projekt-Monitoring zu erreichen. Wir konzentrieren uns dafür auf die richtige Handhabung des Issue-Trackers, des Versionskontrollsystems (insbesondere Git) und insbesondere auf deren gemeinsame Nutzung.
Inhalt
- Grundlagen, wie und warum man einen vernünftigen Satz von Issue-Typen in einem Issue-Tracker nach dem Prinzip "so wenig wie möglich und so viel wie nötig" einführt
- Aussagekräftige und strukturierte Issue-Beschreibungen und Commit-Messages verfassen
- Code-Änderungen vernünftig in einzelne Commits aufteilen
- Fortgeschrittene Git-Techniken: interactive staging & interactive rebasing
- Branching-Workflows
- Übungen zu jedem Lernabschnitt
Dauer: 1 Tag
Ziel
Nach Absolvierung dieses Seminars wissen Sie
- wie man knapp und gut Requirements (als Issues) schreibt und spezifiziert,
- wie man dafür einen Issue Tracker pragmatisch verwendet,
- wie man fortgeschrittene Best Practices (z.B. interactive staging & rebasing) bei Git anwendet,
- wie man Commits mit Issues verbindet,
- 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 große Mehraufwände später bei der Fehlerbehebung und beim Verstehen des Codes zu vermeiden,
- wie man mit einem einfachen Branching-Workflow anfängt und später mit den Anforderungen wächst und weitere Workflows anwenden kann.
Nach dem Seminar können Sie diese Techniken eigenständig in Ihren Projekten umsetzen sowie Kollegen & Mitarbeiter vom Mehrwert entsprechender Vorgehensweisen überzeugen.
Voraussetzungen
Basis-Kenntnisse im Umgang mit Git und einem Issue Tracker und ein installiertes Git-Tool auf Ihrem Rechner.
Zielgruppe
Softwareentwickler*, Softwarearchitekten*, Qualitätsmanager*, Product Owner*
Die mit '*' markierten Begriffe werden hier geschlechtsneutral verwendet und beziehen sich auf Personen jeglichen Geschlechts.
Unter diesen Events können Sie sehen, wo Sie uns treffen können
Hier erfahren Sie mehr zu unserer Historie
Design for Testability
Software-Testbarkeit mit den richtigen Design-Patterns steigern
In diesem praktischen Seminar vermitteln wir Design-Techniken für die Erstellung von Software zur Erhöhung der Design-Qualität. Dabei wird der Fokus auf Design-Patterns gelegt, die zur Entkopplung UND zur erleichterten Testbarkeit des Codes beitragen. Eine leichtere Testbarkeit des Codes begünstigt automatisch die Erstellung von mehr Tests. Somit wird nicht nur die externe Systemqualität verbessert, sondern auch die Verständlichkeit des Codes für das gesamte Entwicklungsteam.
Inhalt
- Design-Patterns, die Sie bei der Erstellung von neuem Code anwenden können, um ein gutes und testbares Design im Code anzustreben.
- Hindernisse, die es bei der nachträglichen Einführung von Tests für bestehende Code-Anteile gibt.
- Design-Techniken zur schrittweisen Überwindung dieser Hindernisse, um sukzessive Refactoringschritte zur Einführung von Unit-Tests oder Integrationstests durchzuführen.
- Übungen zu jedem Lernabschnitt inklusive Anwendung auf Ihre eigene Codebasis
Dauer: 1 Tag
Ziel
Nach Absolvierung dieses Seminars wissen Sie
- welche Design-Patterns zu einer besseren Entkopplung und Testbarkeit des Codes führen,
- welche Design-Techniken man anwenden kann, um nachträglich bestehenden Code mittels schrittweiser Refactoringschritte zu ändern, um Unit-Tests oder Integrationstests einzuführen,
- wie Sie die Anwendung entsprechender Vorgehensweisen auf Ihrer Codebasis nach dem Seminar fortsetzen können.
Voraussetzungen
Voraussetzungen sind Basiskenntnisse im Schreiben von Tests unter Verwendung eines Unit Test-Frameworks, ein installiertes Unit Test-Framework auf Ihrem Rechner. Idealerweise bringen Sie einige Code-Beispiele aus Ihrer Arbeit zur Anwendung des Erlernten mit.
Unsere Vorschläge und Methoden sind programmiersprachenunabhängig und können in Ihrem Projekt unabhängig von einem konkreten Test-Framework eingesetzt werden.
Zielgruppe
Softwareentwickler*, Tester*, Softwarearchitekten*
Die mit '*' markierten Begriffe werden hier geschlechtsneutral verwendet und beziehen sich auf Personen jeglichen Geschlechts.

Wissen ist zum Teilen da.
Wir können es nicht erwarten, unsere Geheimnisse mit Ihnen zu teilen!
Requirements-Engineering
Was Softwareentwickler und -Architekten darüber wissen sollten
Dieses Training zielt darauf ab, ein Bewusstsein und Verständnis für das Requirements-Engineering zu schaffen, soweit Softwarearchitekten* und Softwareentwickler* in ihrer Interaktion mit Product Ownern, Produktmanagern und Testern betroffen sind. Als Ergebnis werden Sie gute Praktiken des Requirements Engineering verstehen, erkennen und sogar anwenden können. Sie werden in der Lage sein, gutes von schlechtem Requirements Engineering und gut von schlecht geschriebenen Anforderungen zu unterscheiden.
Inhalt
- Unterschiede zwischen funktionalen und nicht-funktionalen Anforderungen und deren weitere Aufteilung
- Organisation und konkrete Ausgestaltung von Requirements (Epics, Features, User Stories/Acceptance Criteria, Tasks) anhand von Beispielen
- Techniken zur Spezifikation von Epics, Features (über Use Cases bzw. Domain Storytelling) anhand von Beispielen
- Techniken zur Spezifikation nicht-funktionaler Anforderungen
- Einordnung in das SAFe Framework
- Einführung in das Thema Domänenmodellierung und und dessen Bezug zum Requirements- und Software-Engineering
- Kenntnis weiterer Techniken wie Event Storming
- Übungen in Gruppen anhand einer anspruchsvollen durchgängigen Fallstudie, um zu lernen, wie funktionale und nicht-funktionale Anforderungen mit Mehrwert für die Entwicklung spezifiziert werden
Dauer: 3 Tage
Wir empfehlen, diesen Kurs vor Ort für eine Gruppe von mindestens acht Teilnehmern abzuhalten. Eine rein online-basierte Version ist aber auch möglich.
Ziel
Nach Abschluss dieses Trainings wissen Sie
- um die Konzepte, Begriffe und Beziehungen in Bezug auf Anforderungen und Sie lernen, wie man Anforderungen spezifiziert, schreibt und organisiert.
- wie gut spezifizierte Anforderungen (Epics, Features, User Stories) aussehen,
- wie man die Testbarkeit von Anforderungen durch gute Akzeptanzkriterien erreicht (z.B. durch die Verwendung von Given-When-Then (GWT) Statements),
- wie sich Anforderungen von der Vision und den Geschäftszielen (“Business Goals”) unterscheiden und wie gutes “Vision Statement” und Geschäftsziel-Formulierungen aussehen (denn wenn man die Geschäftsziele nicht kennt oder Anforderungen nicht zu diesen passen, kann einige Mühe umsonste sein),
- wie man nicht-funktionalen Anforderungen (anhand von Szenarien) handhabt und diese auch testbar gestaltet,
- wie man von der Rückverfolgbarkeit von Anforderungen profitiert (die man für jedes mittelgroße bis große Projekt braucht)
- wie Use Case-Beschreibungen, Domain Storytelling (und Event Storming) bei der Erhebung und Unterscheidung von Epics, Features und User Stories helfen
- warum und wie die Domänenmodellierung an der Schnittstelle zwischen Anforderungen und Software-Engineering liegt
Nach der Schulung werden Sie in der Lage sein, Ihren Product Owner*/Manager* auf schlecht spezifizierte Anforderungen hinzuweisen und auf deren Verfeinerung zu bestehen, bevor Sie mit der Umsetzung in Code beginnen. Schließlich werden Sie Ihren Product Owner*/Manager* bei der Spezifizierung von Anforderungen, insbesondere im Hinblick auf nicht-funktionale Anforderungen, unterstützen können.
Voraussetzungen
Grundlegende Kenntnisse und Erfahrung im Software-Engineering
Zielgruppe
- Softwareentwickler*, Softwarearchitekten*
- Product Owner*, Product Manager*
Die mit '*' markierten Begriffe werden hier geschlechtsneutral verwendet und beziehen sich auf Personen jeglichen Geschlechts.
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.
Unsere Neuesten Wissensartikel
In unserem Wissens-Blog finden Sie stetig neue Artikel zu verschiedensten Themen aus der Software Entwicklung.
Software Due Diligence: der Schlüssel zu erfolgreichen M&A-Deals
Weitere Artikel finden Sie in unserem Wissensbereich
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.