Was ist Softwareentwicklung?
Zur Softwareentwicklung zählen das Design, die Dokumentation, die Programmierung, Tests und die laufende Wartung eines Softwareprodukts. Die Kombination dieser Schritte wird verwendet, um eine Workflow-Pipeline zu erstellen, eine Abfolge von Schritten, durch deren Umsetzung ein hochwertiges Softwareprodukt entsteht. Diese Pipeline wird als Softwareentwicklungszyklus bezeichnet.
Es gibt zwar viele verschiedene Auslegungen, aber in der Regel beinhaltet der Entwicklungszyklus gemeinsame Elemente, wie unten beschrieben.
Schritte im Softwareentwicklungszyklus
Entdecken
Projekte werden erdacht, entworfen und priorisiert. Eine Methodik wie Agile hilft dabei, den Arbeitsprozess für das Projekt zu steuern. Verfahren wie DevOps bestimmen die Vorgehensweise während der Entwicklung und des Betriebs. Confluence ist in dieser Phase ein sehr gutes Tool zum Dokumentieren der Produktforschung und zum Teilen von Designdateien.
Planen
Es werden Stakeholder ermittelt, Budgets festgelegt und Infrastrukturressourcen angefordert. Anhand der Designdokumente aus der Konzeptionsphase werden konkrete Aufgaben definiert. Zum Verwalten, Verfolgen und Organisieren dieser Aufgabenlisten eignen sich Jira Software und Trello.
Erstellen und testen
Die Entwicklerteams erstellen produktionsreife Software, die den Anforderungen entspricht, und berücksichtigen Feedback. CI-/CD-Pipelines sorgen dabei für eine hohe Entwicklereffizienz. Bitbucket bietet Tools für die Zusammenarbeit beim Code-Review sowie CI-/CD-Pipelines, die sich in den Code-Review-Prozess einbinden lassen.
Bereitstellen
Sobald der Code geschrieben, getestet und gemergt wurde, kann er ausgeliefert werden. Mit den CI/CD-Pipelines in Bitbucket ist das Deployment ein Kinderspiel. Der Live-Code für die Produktion muss an einem geeigneten Ort gespeichert und gepflegt werden. Eine Möglichkeit hierfür sind die Cloud-Hosting-Angebote von Amazon AWS, Google Cloud Platform oder Microsoft Azure.
Betrieb
Bei aktiven Softwareprojekten sind Support und Wartung erforderlich. Jira Service Management beinhaltet leistungsfähige Tools zum Erfassen, Klassifizieren und Bearbeiten von Kundensupportanfragen.
Beobachten
Beim Vorfallmanagement reagieren Entwickler- und Operations-Teams auf ungeplante Ereignisse und stellen Services mithilfe zuverlässiger Methoden zur Priorisierung von Vorfällen und schnellen Behebung wieder her.
Verfahren im Laufe des Softwareentwicklungszyklus
Fortlaufendes Feedback
Teams sollten jeden Release analysieren und Berichte zur Verbesserung künftiger Releases erstellen. Außerdem sollten sie Kundenmeinungen zu Nutzen und Vorteilen von Produktfunktionen einholen und geschäftsrelevante Ergebnisse an Stakeholder weitergeben. Durch kontinuierliches Feedback können Teams ihre Prozesse optimieren und den Wert für die Kunden steigern.
Sicherheit
Mit zunehmender Komplexität und Skalierbarkeit von Softwareanwendungen reichen herkömmliche Qualitätssicherungs- und Sicherheitsprüfungen, die an das Ende eines Releasezyklus angehängt werden, nicht mehr aus, um die Sicherheit der Software zu gewährleisten. Stattdessen sollten Tests in den Softwareentwicklungszyklus eingebaut werden, damit Bugs im Softwarecode minimiert werden können.
Hauptmerkmale einer effektiven Softwareentwicklung
Tools für die Softwareentwicklung
Softwareentwicklungstools können bei jedem Schritt des Entwicklungszyklus Unterstützung bieten. Dazu zählen Agile- und DevOps-Verfahren, Codemanagement, Automatisierung durch CI/CD, Incident Response und Tests.
Jira Software
Jira ist das führende von agilen Teams verwendete Softwareentwicklungstool. Jira Software ist ein Projektmanagementtool für agile Teams zur zuverlässigen Planung, Nachverfolgung und Auslieferung erstklassiger Software.
Bitbucket
Bitbucket ist mehr als nur ein Werkzeug zum Verwalten von Git-Code. Mit Bitbucket kann dein Team an einem einzigen Ort Projekte planen, an Code zusammenarbeiten sowie Tests und Deployments durchführen.
Compass
Compass ist eine Developer-Experience-Plattform und unterstützt dich bei der Navigation deiner verteilten Architektur, indem es unzusammenhängende Informationen über die Entwicklungsergebnisse und die daran zusammenarbeitenden Teams an einem zentralen, durchsuchbaren Ort zusammenführt.