Moderne und sichere Software-Entwicklung

Gemeinsam schneller zum Ziel? Aber sicher!

Erfolgreiche und sichere Webanwendungen, Apps, Plattformen und die Cloud stellen hohe Anforderungen an den Software-Entwicklungsprozess sowohl in technischer als auch in organisationaler Hinsicht. Diesen Herausforderungen müssen Unternehmen und Organisationen adäquat begegnen. Hierbei leistet die Seminarreihe einen wertvollen Beitrag.

Dieses Angebot richtet sich an Organisationen und Unternehmen, die eine Gruppe von Mitarbeitenden schulen möchten. Die Seminarreihe umfasst ein breites Inhaltsspektrum. In einer vorgelagerten Bedarfsanalyse stellen wir gemeinsam mit Ihnen ein auf Ihre Bedürfnisse abgestimmtes Lernprogramm in Form einzelner Lernmodule zusammen.

Softwareentwicklung, Datenschutz, IT-Sicherheit
© Shutterstock

Die Herausforderung: Hohe Anforderungen bei Entwicklung und Betrieb
moderner und sicherer Software

In einer digitalen Gesellschaft rückt alles näher zusammen: Die Technik näher an den Alltag der Menschen – die Nutzer*innen näher an die Softwareanbieter*innen – die Kund*innen näher an die Software-Entwicklung – die Programmierer*innen näher an die Administrator*innen.

Die Erstellung, der Betrieb und sogar die Betriebsmodelle der dafür notwendigen Softwareprodukte bedürfen eines ebenso modernen Software-Entwicklungsprozesses. Es gilt, den hohen Anforderungen an Datenschutz/-sicherheit, schnellere Entwicklungszyklen, Wartbarkeit, Usability und die Verwendung moderner IT-Infrastrukturen und hochgradig vernetzter Systeme (wie etwa der Cloud und Software-as-a-Service) gerecht zu werden.

 

Die Lösung: Moderne und sichere Software-Entwicklung gelingt nur in partnerschaftlicher Zusammenarbeit von Kund*innen, Management, Entwickler*innen und Betrieb.

Klassisches Silo- und Inseldenken haben ausgedient. Unverzichtbar für eine erfolgreiche und effiziente Software-Entwicklung sind die Erkenntnis der Notwendigkeit von und damit die Bereitschaft zu interdisziplinärem Denken und Handeln. Dies gilt sowohl für Inhouse-Entwicklungen als auch für beauftragte Software.

In der Seminarreihe „Moderne und sichere Software-Entwicklung“ erkunden wir die Zusammenhänge einer erfolgreichen Software-Entwicklung. Wir lernen, welche Grundprinzipien, Technologien und Prozesse ineinandergreifen, um sichere, wartbare, erweiterbare und einen Mehrwert stiftende Software für verschiedenste Zielumgebungen zu gestalten und diese in den Betrieb zu überführen. Dabei setzen wir auf ein interaktives Kursdesign unter Einbindung möglichst vieler Praxisübungen.


Ihre Vorteile auf einen Blick


Nach dem Seminar können Sie...

… die Implikationen der digitalen Transformation für Ihre Organisation einschätzen.

… zusammen mit Ihren Kolleg*innen als echtes Entwicklungsteam agieren.

… Hemmnisse entlang Ihres Software-Entwicklungsprozesses identifizieren.

… diejenigen Faktoren identifizieren, welche einer sicheren und modernen Software-Entwicklung zugrunde liegen.

… Ihr tägliches Handeln auf diese Erfolgsfaktoren ausrichten, um Ihre Software-Entwicklungsprozesse erfolgreicher und effizienter zu gestalten.

… durch die Nutzung moderner Methoden die Sicherheit der von Ihnen erstellten Software erhöhen.

 

Dieses Seminar bietet Ihnen...

… einen klaren und kritischen Blick auf Software und moderne Software-Entwicklung mit Fokus auf Sicherheit.

… die Erkenntnis, dass nicht nur die Technik über erfolgreiche Software entscheidet.

… Diskussionen mit Expert*innen in angenehmer Gesprächsrunde.

… Verständlichkeit auch für Nicht-Programmierer*innen.

ÜBERBLICK
Veranstaltungstyp
Inhouse-Seminar
Format
Online oder Präsenz
Abschluss
Teilnahmebescheinigung
Zugangsvoraussetzung
Praktische Erfahrungen rund um Entwicklung, Betrieb und/oder Management von Software (inkl. Beschaffung)
Termine, Anmeldefrist und Ort
  • Nach gemeinsamer Absprache
Dauer/ Ablauf
Bis zu 24 Stunden (online in 8 Modulen à 3 Stunden) Die einzelnen Module werden als synchrone Lerneinheiten durchgeführt. Dabei kann die Taktung nach Wunsch der Kund*innen erfolgen.
Sprache
Deutsch
Teilnahmegebühr
EUR 2.400,00 pro Person (bei Buchung aller 8 Module)
ZIELGRUPPE
  • Software-Architekt*innen
  • Software-Ingenieur*innen
  • Software-Entwickler*innen
  • Projektleiter*innen
  • IT-Administrator*innen
  • Beschaffer*innen von Individual-Software
INHALTE

Eine gemeinsame Sprache für Software

  • Software als Quellcode/Artefakt/Anwendung
  • Software im Wandel: Wir alle als Teil des soziotechnischen Systems
  • Software-Entwicklung „deconstructed“
  • Bausteine des Software-Lebenszyklus – Akteure/Prozesse/Tools

Motivation: Digitale Transformation verstehen

  • (Zwangs-)Transformation durch IT/Digitalisierung
  • Einfluss von IT/Digitalisierung auf Gesellschaft und (das eigene) Unternehmen
  • Inventionen und wahre Innovationen
  • Einfluss von IT/Digitalisierung auf Gesellschaft und (das eigene) Unternehmen

Dimensionen der Sicherheit von Software

  • Software-Qualität auf Code- und Betriebsebene
  • Sicherheit im Code/Betrieb
  • Security-by-Design
  • Privacy-by-Design

Prinzipien des modernen Software-Engineering

  • „Modern“ vs. „veraltet“ (u. a. SOLID-Prinzipien)
  • Neue Anforderungen durch gesellschaftliche Trends
  • Entwicklung im Team als Erfolgsfaktor
  • Nachhaltige Software-Entwicklung

Aktuelle Software-Architekturen: Eine Übersicht

  • Monolithen im Vergleich zu verteilten Systemen (z. B. Microservice-Architekturen)
  • Neue Komplexität in verteilten Systemen: Kommunikation und Konsistenz
  • Synchrone und asynchrone Kommunikation in verteilten Systemen
  • Trade-Offs zwischen verschiedenen Architekturen - welche Architektur ist die richtige für mich?

Cloud-Computing

  • Eigenschaften hochgradig verteilter Systeme
  • Hyperscaler
  • Betriebsmodelle (Public/Private/Hybrid Cloud/Serverless)
  • Cloud-Ready-Fallacy und Public-Cloud-Revolution
  • Make-or-buy

Keep IT Simple

  • (Notwendige vs. zufällige) Komplexität von Software
  • Vermeide Komplexität der Problemdomäne
  • Vermeide Komplexität der Lösungsdomäne

(Sec)DevOps, CI/CD und Containerisierung

  • Begriffs- und Konzeptdefinitionen
  • Ziele und Lösungsversprechen
  • Paradigmenwechsel durch Abstraktionslayer der Containerisierung
  • Sicherheit im Build-Prozess
  • Implikationen für das soziotechnische System
LERNZIELE

Teilnehmende sind …

  • sich bewusst, dass für eine konstruktive Kommunikation zwischen den beteiligten Rollen zunächst ein gemeinsamer Wortschatz rund um Software-Entwicklung etabliert werden muss, und beherrschen diesen.
  • bereit, Verantwortung im Team zu übernehmen, und können selbstmotiviert in ihrem speziellen Feld tätig sein, um Software erfolgreich (gemäß der Kriterien „modern“ und „sicher“) zu entwickeln.

Teilnehmende kennen …

  • rollenübergreifend (Entwickler*innen, Administrator*innen, Projektleitung, Auftraggeber*innen) grundlegende Begriffe rund um Software bzw. Software-Entwicklung und nutzen dieselbe Sprache.
  • grundlegende Aspekte von Sicherheit sowohl im Software-Entwicklungsprozess als auch während des Betriebs.
  • die grundlegenden Faktoren, welche Software sehr schnell sehr komplex werden lassen, und können somit den Ansatz des „Keep IT simple“ nachvollziehen.
  • die Prinzipien von Continuous Integration und DevOps sowie deren Integration in den Software-Lebenszyklus.
  • den Unterschied zwischen „lokalen“ Anwendungen und Cloud-Anwendungen sowie der verschiedenen dahinterstehenden Betriebsmodelle (finanziell, technisch).
  • verschiedene Architekturstile und Kommunikationsmuster sowie deren grundsätzliche Unterschiede.

Teilnehmende wissen …

  • darum, dass die digitale Transformation aktuell in vielen Bereichen des (Arbeits-)Lebens vollzogen wird.
  • …, dass und wie sich Software in den letzten Jahren drastisch gewandelt hat inkl. der zugrundeliegenden Software-Entwicklungsprozesse.
  • entlang des Software-Lebenszyklus um die Gründe für verschiedene Arten „zufälliger Komplexität“ und die jeweiligen Gegenmittel.

Teilnehmende verstehen …

  • den Nutzen einer verbesserten Kommunikation/Zusammenarbeit der Akteure durch DevOps und erkennen, dass Änderungen der Unternehmenskultur notwendig sein können.
  • anhand konkreter Beispiele die Implikationen von (abwesender) Software-Sicherheit.
  • die Implikationen und Effekte der digitalen Transformation für ihr (Arbeits-)Leben.
  • ..., dass Sicherheit bereits während der Entwicklung berücksichtigt werden muss.
  • die Prinzipien und Implikationen der modernen Software-Entwicklung und des für moderne Software notwendigen IT-Betriebs.
  • …, dass die Entscheidung für eine geeignete Software-Architektur stets individuell zu treffen ist. Dabei verstehen sie auch, dass diese Entscheidungsfindung als Abwägen von Trade-Offs zu betrachten ist, die sich gegenüberstehen.
  • entlang des Software-Lebenszyklus die Gründe für verschiedene Arten "zufälliger Komplexität" und lernen Gegenmittel kennen.
  • die Implikationen der Software-Entwicklung für lokale Anwendungen und Cloud-Anwendungen sowie die sich daraus ergebenden unterschiedlichen Sicherheitsanforderungen.

Teilnehmende können …

  • einschätzen, wie es um die Sicherheit im gelebten Software-Lebenszyklus der eigenen Organisation bestellt ist.
  • aktiv eine auf ihr eigenes Unternehmen bzw. ihre eigene Organisation bezogene (fiktive) Roadmap/Strategie zum Umgang mit der digitalen Transformation definieren.
  • eigene Anwendungen konzeptuell analysieren, so dass sie geeignete (hybride) Cloud-Betriebsmodelle identifizieren und sinnvolle Features durch Cloud-Dienste substituieren können.
  • die Prozesse in ihrem Arbeitsumfeld identifizieren, welche zu gesteigerter (zufälliger) Komplexität führen, und erste Gegenmaßnahmen vorschlagen sowie umsetzen.
  • beispielhaft für eine eigene Anwendung konzeptuell eine CI/CD-Pipeline identifizieren und für die eigenen Prozesse einen DevOps-Zyklus definieren.
  • innerhalb ihrer Organisation konstruktiv rollenübergreifend diskutieren, wie DevOps gelebt werden könnte.
  • individuell für Projekte abwägen und begründen, welcher Architekturstil bzw. welche Form von Kommunikation zum Erreichen der jeweiligen Ziele erfolgversprechend ist.
REFERENTEN

Hannes Restel

Hannes Restel, M.Sc. of Computer Sciences, arbeitet am Fraunhofer-Institut für Offene Kommunikationssysteme FOKUS in Berlin als leitender Wissenschaftler und Projektmanager. Seit 2010 ist er in den Bereichen der Vernetzten Sicherheit und E-Health im Geschäftsbereich ESPRI tätig. Sein Forschungsschwerpunkt liegt auf situationsbezogenen Anwendungen und Frühwarnsystemen im Hinblick auf die wahrgenommene Sicherheit und die Mobile Experience Sampling Method (MESM). Darüber hinaus arbeitet Herr Restel als Software-Architekt und Software-Ingenieur mit Schwerpunkt auf Microservices und DevOps-Paradigmen. In den letzten Jahren ist er zudem als Dozent an der Hochschule für Technik und Wirtschaft Berlin (HTW Berlin) tätig.

 

Johannes Einhaus

Johannes Einhaus, Diplom-Volkswirt, ist seit 2001 wissenschaftlicher Mitarbeiter am Fraunhofer-Institut für Offene Kommunikationssysteme FOKUS in Berlin. Er hat sich in unterschiedlichen Anwendungsgebieten, u. a. dem Bildungsbereich und dem Gesundheitswesen, mit den Potenzialen moderner Informations- und Kommunikationstechnik sowie der Erprobung entsprechender Systeme in der Praxis beschäftigt. Derzeit ist er im Geschäftsbereich ESPRI - Vernetzte Sicherheit beschäftigt.