Kennt den Nutzen bezüglich kontinuierlicher toolunterstützter Entwicklung und Wartung (z.B. MVP, Kundenfeedback, Kosten/Nutzen, Qualität, Risikoreduktion)
Ein Softwareentwicklungsteam arbeitet an einem neuen Produkt oder einer neuen Funktion. Sie stehen vor der Entscheidung, welche Tools und Techniken sie verwenden sollen, um die Entwicklung und Wartung effizient zu gestalten. Das Team setzt sich zusammen, um die verschiedenen Optionen zu bewerten und den Nutzen kontinuierlicher toolunterstützter Entwicklung und Wartung zu diskutieren. Sie berücksichtigen dabei Faktoren wie das Minimal Viable Product (MVP), Kundenfeedback, Kosten-Nutzen-Verhältnis, Qualitätssicherung und Risikominderung. Das Ziel ist es, die geeignetsten Tools und Praktiken auszuwählen, um die Entwicklung und Wartung des Produkts oder der Funktion zu optimieren und einen nachhaltigen Entwicklungsprozess sicherzustellen.
Kennt Möglichkeiten, um automatisierende Tools in der Entwicklungsumgebung zu nutzen (z.B. Linting, Build, Ausführen, Testen, Versionierung, Abhängigkeiten/Pakete).
In einem Softwareentwicklungsteam wird an einem neuen Projekt gearbeitet. Die Entwickler haben festgestellt, dass der manuelle Entwicklungsprozess zeitaufwändig und fehleranfällig ist. Sie erkennen die Notwendigkeit, automatisierende Tools in ihrer Entwicklungsumgebung zu nutzen, um Effizienz und Qualität zu verbessern. Das Team setzt sich zusammen, um verschiedene Möglichkeiten zu diskutieren, wie sie automatisierte Tools wie Linting, Build, Ausführen, Testen, Versionierung und Abhängigkeiten/Pakete in ihren Workflow integrieren können. Sie untersuchen verschiedene Tools und Plattformen, um diejenigen auszuwählen, die am besten zu ihren Anforderungen passen. Das Ziel ist es, einen effizienten Entwicklungsprozess aufzubauen, der Fehler reduziert, die Entwicklungszeit verkürzt und die Qualität des Codes verbessert.
Kennt Praktiken, um Sourcecode featurebasiert zu verwalten (z.B. GIT-Workflow, semantic Versioning etc.).
In einem Softwareentwicklungsteam steht die Einführung eines neuen Features für eine bestehende Anwendung bevor. Die Entwickler erkennen die Notwendigkeit, den Sourcecode featurebasiert zu verwalten, um eine klare Struktur und eine effiziente Zusammenarbeit im Team zu gewährleisten. Sie setzen sich zusammen, um die Praktiken zu besprechen, die sie verwenden können, um den Sourcecode featurebasiert zu organisieren. Dabei diskutieren sie über den GIT-Workflow und wie sie Branches für jedes neue Feature erstellen können, um isoliert an den Änderungen arbeiten zu können. Sie sprechen auch über die Bedeutung des semantischen Versionierens, um sicherzustellen, dass neue Features und Änderungen in der Versionsnummer angemessen reflektiert werden. Das Ziel ist es, eine klare Struktur im Code-Repository zu schaffen, um die Verwaltung neuer Features zu erleichtern und die Qualität der Software langfristig zu gewährleisten.
Kennt Möglichkeiten, um die Applikation und Komponenten automatisiert zu builden, auszuführen und zu testen (z.B. Build-Management wie gradle/npm, Container, Pipelines etc.)
In einem agilen Softwareentwicklungsteam steht die Vorbereitung für die Veröffentlichung einer neuen Version der Anwendung an. Die Entwickler erkennen die Notwendigkeit, den Build-, Ausführungs- und Testprozess zu automatisieren, um eine effiziente und zuverlässige Bereitstellung sicherzustellen. Sie setzen sich zusammen, um die Möglichkeiten zu erkunden, wie sie diese Aufgaben automatisieren können. Dabei diskutieren sie über verschiedene Build-Management-Tools wie Gradle und npm, um den Code zu kompilieren und Abhängigkeiten zu verwalten. Sie evaluieren auch die Verwendung von Containern, um die Anwendung und ihre Komponenten konsistent und portabel zu halten. Darüber hinaus erforschen sie die Einrichtung von Pipelines für die kontinuierliche Integration und Bereitstellung, um den Code automatisch zu bauen, zu testen und bei erfolgreichen Tests bereitzustellen. Das Ziel ist es, einen robusten Automatisierungsprozess zu schaffen, der die Entwicklungszeit verkürzt, die Qualität erhöht und die Gesamtleistung der Anwendung verbessert.
Kennt Möglichkeiten, um die Applikation automatisiert zu deployen und konfigurieren (z.B. Infrastructure as Code, Scripting, Virtualisierung, Konfiguration mit YAML, Vaults, Profile, SSH-Key etc.).
In einem DevOps-Team steht die Bereitstellung einer neuen Version der Anwendung bevor. Die Entwickler und Systemadministratoren erkennen die Notwendigkeit, den Bereitstellungsprozess zu automatisieren, um eine konsistente, zuverlässige und wiederholbare Bereitstellung zu gewährleisten. Sie setzen sich zusammen, um die verschiedenen Möglichkeiten zu erkunden, wie sie die Anwendung automatisiert deployen und konfigurieren können. Dabei diskutieren sie über die Verwendung von Infrastructure as Code (IaC), um die Infrastruktur und Umgebungen zu definieren und zu verwalten. Sie betrachten auch das Einsatz von Scripting-Sprachen wie Python oder PowerShell, um komplexe Bereitstellungs- und Konfigurationsaufgaben zu automatisieren. Darüber hinaus erforschen sie die Verwendung von Konfigurationsdateien wie YAML, um Anwendungsparameter und -einstellungen zu definieren, sowie die Integration von Secrets Management-Tools wie Vaults, um sensible Informationen sicher zu speichern und zu verwalten. Schließlich betrachten sie die Implementierung von Profilen, SSH-Schlüsseln und anderen Mechanismen für die Authentifizierung und Zugriffskontrolle während des Bereitstellungsprozesses. Das Ziel ist es, einen effizienten und zuverlässigen Bereitstellungsprozess zu schaffen, der die Time-to-Market verkürzt und die Betriebskosten senkt.