Application Lifecycle Management, ALM
Wartbare Software mit Tools, TeamCity und Team Foundation Server (TFS)
Softwareentwicklung ist heutzutage ein gleichermaßen vielseitiger und komplexer Prozess. Mit einem adäquaten und ganzheitlichen Application Lifecycle Management (ALM) sind Teams in der Lage, Komplexität aufzulösen, handhabbar zu gestalten und letztendlich die Produktivität zu steigern. Die damit einhergehenden Kerngebiete sind Anforderungs-, Test-, Konfigurations-, Build-, Delivery-, Deployment-, Incident- und Change-Management.
Anforderungsmanagement
- Granularitätsstufen und Detaillierungsgrad
- Minimum Viable Product und Minimum Marketable Feature
- Organisation eines Backlogs
- User Stories und Use Cases
- Happy- und Alternativszenarien
- „Spezifikation durch Beispiele“-Verfahren
- Modellgestützte Verfahren
- Releaseplanung
- Nutzung von Issue Trackern
- Bewährte Organisationstopologien
- Tools: Epics, Interviews, Themes, Stories, TFS inklusive Office-Integration
Prüfung mit Testmanagement
- Testpläne und Testkampagnen
- Verifikation der Spezifikation
- Automatisierung der Verifikation
- Keyword Driven und Action Word Testing
- Unit-, Integrations-, Regressionstests
- Executable Specifications
- Testmanagement
- Tools: Cucumber, FitNesse, Machine.Specifications (MSpec), SpecFlow, TFS Test Lab Management
Konfigurationsmanagement
- Konfiguration von Zielumgebungen
- Staging-Mechanismen
- Code Lines und Quality Gates
- Branching-Strategien
- Organisation der Codeverwaltung
- Feature Toggles
- Tools: Buildskripte (Ruby- und PowerShell-basiert), Git, TFS
Continuous Delivery
- Kontinuierliche Verbesserung durch Einholen von Feedback
- Buildautomatisierung
- Convention over Configuration
- Inkrementelle Builds, Buildparallelisierung und -staging
- Paketierung von Buildartefakten
- Deploymentautomatisierung
- Strategien für Farmumgebungen
- Migration von Datenbankschemata und -daten
- Monitoring von Produktionsumgebungen
- Automatisches Rollback
- Kontrolle von Metriken im Build
- Dependency Management
- Tools: MSDeploy, NuGet, Tarantino, TeamCity, TFS, Windows Installer XML
Incident Management
- Bugreporting und Bugtracking
- Priorisierung und Triage von Bugs
- Proaktives Incident Management
- Integration von Incident Management und Anforderungsmanagement
- Tools: Logging-Bibliotheken, TFS, YouTrack, Watchdogs
ALM im Team
- Aufbau einer ALM-Entwicklungsumgebung vor Ort
- Implementierung mit Code Reviews und Pair Programming
- Softwaredesign und Komponentenorientierung
- Integration von ALM ins Projektmanagement
- Erhebung und Bewertung von Metriken