Kontakt aufnehmen

Schulungsübersicht

Grundlagen des agilen Denkens

  • Das Agil-Manifest und dessen Relevanz außerhalb der Softwareentwicklung
  • Vergleich von agilen mit klassischen Wasserfall- und planbasierten Entwicklungsmodellen
  • Scrum-Rollen, -Ereignisse und -Artefakte im Zusammenhang mit akademischen Projektzyklen
  • Kanban und flussorientierte Managementansätze für Forschungs- sowie Lehrmanagementteams
  • Auswahl geeigneter hybrider agiler Ansätze für ingenieurwissenschaftliche und gestalterische Umfelder

Agiles Planen und Zusammenarbeiten

  • Erstellung von User Stories sowie Definition von Akzeptanzkriterien für ingenieurwissenschaftliche Fragestellungen
  • Möglichkeiten der Priorisierung im Backlog: MoSCoW-Methode, Bewertung nach Aufwand und Nutzen, risikobasierte Sortierung
  • Sprintplanung sowie Schätzverfahren in Teams außerhalb des Softwarebereichs
  • Retrospektiven und kontinuierliche Verbesserungsprozesse im akademischen Umfeld
  • Kollaborationswerkzeuge und -boards für interdisziplinäre Arbeitsgruppen

Einführung in die DevOps-Kultur

  • Verständnis von DevOps: Überwinden von Trennlinien zwischen Entwicklung und Betrieb
  • Das CALMS-Modell: Kultur, Automatisierung, Effizienz, Messbarkeit, Wissensaustausch
  • DevOps-Anwendungen in Forschungslaboren, Bauingenieurteams sowie Architekturbüros
  • Aufbau einer konstruktiven Fehlerkultur und funktionierender Feedbackmechanismen an Hochschulen
  • Berücksichtigung ethischer, sicherheitstechnischer und rechtlicher Aspekte bei der Einführung von DevOps im akademischen Bereich

Versionsverwaltung und gemeinsames Code-Management

  • Grundlagen von Git für reproduzierbare ingenieurwissenschaftliche und gestalterische Arbeiten
  • Branching-Strategien: Trunk-basiertes Vorgehen, Feature-Branches sowie eine vereinfachte Variante des GitFlow-Modells
  • Pull Requests, Peer-Reviews sowie Verantwortlichkeiten für Code im Lehrteam
  • Verwaltung nicht-kodierter Ressourcen: CAD-Dateien, BIM-Modelle sowie Simulationsdatensätze
  • Strukturierung von Repositories zur Organisation von Lehrmaterial und Studierendenprojekten

Kontinuierliche Integration und Build-Automatisierung

  • Grundsätze der kontinuierlichen Integration und deren Anwendung auf kompilierte Software sowie Scripte im Ingenieurbereich
  • Einrichtung automatisierter Erstellungsprozesse für Programme, Simulationen sowie Dokumentationen
  • Wesentliche Phasen des Pipeline-Ablaufs: Kompilierung, Paketierung, Lint-Prüfungen und Vorab-Kontrollen
  • Überblick über gängige CI-Systeme: GitHub Actions, GitLab CI sowie Jenkins
  • Bewältigung von großen Datenmengen, Caching von Abhängigkeiten sowie parallele Ausführung mehrerer Aufgaben

Softwarequalität und statische Analyse

  • Begriffsbestimmung der Softwarequalität: Wartbarkeit, Zuverlässigkeit, Nutzerfreundlichkeit sowie Effizienz
  • Relevante Code-Metriken: Zyklomatische Komplexität, Kopplungsgrad, Kohäsion und Duplizierungen im Quellcode
  • Einsatz von statischen Analysewerkzeugen für Python, Java, C++ sowie weitere gängige Programmiersprachen der Ingenieurwissenschaft
  • Relevanz von Dokumentation: Verwendung von Docstrings, Standardvorgaben zu READMEs sowie lebendigen Dokumenten
  • Eingliederung qualitätsorientierter Prüfungen in die CI-Pipeline – ohne Studierende dabei zu überfordern

Teststrategien und Testdesign

  • Das Testpyramiden-Konzept: Unit-, Integrations-, System- und Akzeptanztests
  • Schreiben von Unit-Tests für Berechnungen, Simulationen sowie Hilfsprogramme im Ingenieurbereich
  • Einführung in Test-driven Development (TDD) und behavior-driven Development (BDD)
  • Nachbildung externer Systeme: Sensoren, APIs oder Finite-Elemente-Solver zur Verwendung im Testszenario
  • Strukturierung von Test-Suiten für Projekte interdisziplinärer Studierendengruppen

Testautomatisierung und kontinuierliches Testen

  • Automatisierte Ausführung von Tests im Rahmen von CI/CD-Pipelines
  • Berichterstattung zu Testergebnissen, Definition angemessener Abdeckungswerte sowie Handhabung instabiler Tests
  • Einsatz property-basierter Tests und Fuzzing-Techniken zur Analyse komplexerer Ingenieuralgorithmen
  • Regressionsverfahren zur Kontrolle sich weiterentwickelnder Studienaufgaben
  • Leistungs- und Belastungstests für simulierte sowie rendergestützte Anwendungen im Bereich Ingenieurwesen und Design

Grundsätze der kontinuierlichen Auslieferung und Bereitstellung

  • Unterschiede zwischen Delivery und Deployment sowie Konzepte zur Stufenentwicklung von Software-Artifacts
  • Gängige Implementierungsmuster: Blue-Green-Deployment, Canary-Releases sowie Feature Toggles
  • Anwendung der Prinzipien kontinuierlicher Auslieferung bei der Veröffentlichung wissenschaftlicher Arbeiten, Lernplattformen oder Apps
  • Einführung in Docker-Container zur Gewährleistung reproduzierbarer Entwicklungsumgebungen im Ingenieurwesen
  • Grundlagen des Infrastruktur-as-a-Code-Konzepts: Deklarative Verwaltung von Laborumgebungen und Cloud-Ressourcen

Beobachtbarkeit, Überwachung und Feedbackmechanismen

  • Protokollierung, Messwerterfassung sowie Tracing-Verfahren bei akademischer Software oder Simulationen
  • Einrichtung leichtgewichtiger Monitoring-Systeme für Studierendenprojekte und Forschungswerkzeuge
  • Nutzung von Rückmeldedaten zur kontinuierlichen Verbesserung von Lehrmaterial und Laborübungen
  • Erstellung übersichtlicher Dashboards sowie Warnmeldungen passend zu akademischen Anforderungen
  • Überprüfungs- und Rückrollprozesse nach Implementierungen neuer Software oder Designs

Sicherheit und bewährte Qualitätsstandards

  • Einführung in sicheres Programmieren: Validierung von Eingaben, Authentifizierungsmechanismen sowie Schutz sensibler Informationen
  • Scannen von Abhängigkeiten auf Schwachstellen und Verwaltung kompatibler Open-Source-Softwarepakete
  • Achtung auf Lizenzbestimmungen bei Softwareprodukten für Lehrzwecke oder Publikationen
  • Datenschutzaspekte im Umgang mit Daten von Studierenden und Forschungsdaten
  • Entwicklung einer sicherheitsorientierten Arbeitskultur innerhalb ingenieurwissenschaftlicher und gestalterischer Ausbildungsprogramme

Umsetzung der Praktiken in lehrbare Module

  • Ausgestaltung agiler Projektaufgaben für Studierende aus den Bereichen Systemtechnik, Bauingenieurwesen, Gestaltung und Architektur
  • Erstellung von Bewertungskriterien zur gleichzeitigen Messung von Prozess- sowie Ergebnisqualität
  • Einrichtung vorkonfigurierter Template-Repositories für den Einsatz durch Studierende, inklusive bereitgestellter CI-Einstellungen
  • Stufenweise Einführung von DevOps-Grundlagen über einen gesamten Semesterverlauf hinweg
  • Evaluation der Arbeitsleistung von Studierendengruppen anhand realistischer Qualitäts- und Automatisierungskriterien

Auswahl geeigneter Werkzeuge unter Berücksichtigung akademischer Rahmenbedingungen

  • Bewertung kostenfreier Open-Source-Tools für Abteilungen mit begrenztem Budget
  • Einbindung in bestehende Lernplattformen, Speichersysteme sowie Laborinfrastrukturen
  • Bewältigung technischer Verschuldung bei langfristig genutzten Forschungssoftware-Archiven
  • Einarbeitung von Studierenden und Lehrenden mit unterschiedlichstem technischen Hintergrundwissen
  • Langfristige Erhaltbarkeit der Prozesse auch dann, wenn zentrale Mitwirkende den Hochschulbereich verlassen oder ausgetauscht werden

Voraussetzungen

  • Grundsätzliche Kenntnisse von Softwareentwicklungskonzepten
  • Vertrautheit mit allgemeinen ingenieurwissenschaftlichen oder gestalterischen Arbeitsabläufen
  • Erfahrung im Umgang mit Computern für akademische oder projektbezogene Arbeiten

Zielgruppe

  • Professoren und Dozenten aus den Bereichen Systemtechnik, Bauingenieurwesen, Gestaltung und Architektur
  • Akademische Mitarbeitende, die ihre Lehre mit aktuellen branchenrelevanten Methoden modernisieren möchten
  • Forschungsleiter sowie Laborkoordinatoren, die Technologie in den Unterricht einbinden wollen
 42 Stunden

Teilnehmerzahl


Preis je Teilnehmer (exkl. USt)

Erfahrungsberichte (2)

Kommende Kurse

Verwandte Kategorien