Close

Softwareentwicklung

Lerne die Grundlagen der Softwareentwicklung.


Software hat die Welt vereinnahmt. Die berühmte Aussage von Marc Andreessen aus dem Jahr 2011, "Software is eating the world", hat sich bereits kurz danach bewahrheitet. In der digitalen Wirtschaft von heute ist jedes Unternehmen softwareorientiert. Amazon mag vielleicht der größte Einzelhändler der Welt sein, aber es ist kein Einzelhandels-, sondern ein Softwareunternehmen, wie Jeff Bezos, der ehemalige CEO von Amazon, verkündete. "Unser Geschäft ist nicht, was sich in den Versandkartons befindet", sagte er. "Es ist die Software, mit der der Versand abgewickelt wird."

DevOps-Endlosschleife

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


Objekte, die um eine Glühbirne kreisen

Konzept

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.

Einfacher Workflow

Plan + Roadmap

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.

Code speichern

Code, Review und Test

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.

Code-Release

Deployment, Release und Hosting

Sobald der Code genehmigt 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.

Zahnräder

Support, Betrieb und Wartung

Bei aktiven Softwareprojekten sind Support und Wartung erforderlich. Jira Service Management beinhaltet leistungsfähige Tools zum Erfassen, Klassifizieren und Bearbeiten von Kundensupportanfragen.

error

Vorfallmanagement

Vorfallmanagement ist der Prozess, den DevOps- und IT-Operations-Teams zur Reaktion auf ein ungeplantes Ereignis oder eine Serviceunterbrechung und zur Wiederherstellung des normalen Servicebetriebs befolgen. Teams benötigen eine zuverlässige Methode, um Vorfälle zu priorisieren, schneller zur Lösung zu gelangen und Benutzern besseren Service zu bieten.

Verfahren im Laufe des Softwareentwicklungszyklus

CI/CD

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

Sicherheit

Mit zunehmender Komplexität und Skalierbarkeit von Softwareanwendungen reichen herkömmliche Sicherheitsprüfungen, die an das Ende eines Releasezyklus angehängt werden, nicht mehr aus, um die Sicherheit der Software zu gewährleisten. Stattdessen sollten Sicherheitsfunktionen in den Softwareentwicklungszyklus eingebaut werden, damit Schwachstellen im Softwarecode minimiert werden können.

Hauptmerkmale einer effektiven Softwareentwicklung


Agile

Agile ist ein iterativer Ansatz, der Teams bei Projektmanagement und Softwareentwicklung hilft, ihren Kunden schneller und reibungsloser Mehrwert zu bieten. Agile Methoden sind in der Softwarebranche äußerst beliebt, da sie es Teams ermöglichen, wie selbstverständlich flexibel, gut organisiert und souverän auf Veränderungen zu reagieren.

DevOps

Unter DevOps versteht man diverse Praktiken, Tools und eine Kulturphilosophie, die die Prozesse zwischen Softwareentwicklungs- und IT-Teams automatisieren und integrieren. Im Vordergrund stehen dabei Teambefähigung, teamübergreifende Kommunikation und Zusammenarbeit sowie Technologieautomatisierung.

Continuous Integration und Delivery (CI/CD)

Continuous Integration ist ein Prozess zur automatisierten Integration von Codeänderungen in ein Softwareprojekt. Entwickler können damit regelmäßig Codeänderungen in einem zentralen Repository mergen, in dem Builds und Tests ausgeführt werden.

Continuous Delivery erweitert die Continuous Integration, indem Codeänderungen automatisch in einer Test-/Produktionsumgebung bereitgestellt werden. Sie folgt einer Continuous-Delivery-Pipeline, in der automatisierte Builds, Tests und Deployments als ein Release-Workflow orchestriert werden.

Mikroservices

Eine Microservice-Architektur, die auch einfach als "Microservices" bezeichnet wird, ist ein Ansatz, bei dem eine Anwendung aus einer Reihe von unabhängig bereitstellbaren Services besteht, die dezentral und autonom entwickelt werden. Diese Services sind lose verbunden, können unabhängig voneinander bereitgestellt werden und sind leicht zu warten.

Eine Microservice-Architektur ermöglicht Entwicklern, sich in kleineren Teams zu organisieren, die auf verschiedene Services spezialisiert sind, mit unterschiedlichen Stacks und entkoppelten Deployments.

Agile

Agile ist ein iterativer Ansatz, der Teams bei Projektmanagement und Softwareentwicklung hilft, ihren Kunden schneller und reibungsloser Mehrwert zu bieten. Agile Methoden sind in der Softwarebranche äußerst beliebt, da sie es Teams ermöglichen, wie selbstverständlich flexibel, gut organisiert und souverän auf Veränderungen zu reagieren.

DevOps

Unter DevOps versteht man diverse Praktiken, Tools und eine Kulturphilosophie, die die Prozesse zwischen Softwareentwicklungs- und IT-Teams automatisieren und integrieren. Im Vordergrund stehen dabei Teambefähigung, teamübergreifende Kommunikation und Zusammenarbeit sowie Technologieautomatisierung.

Continuous Integration und Delivery (CI/CD)

Continuous Integration ist ein Prozess zur automatisierten Integration von Codeänderungen in ein Softwareprojekt. Entwickler können damit regelmäßig Codeänderungen in einem zentralen Repository mergen, in dem Builds und Tests ausgeführt werden.

Continuous Delivery erweitert die Continuous Integration, indem Codeänderungen automatisch in einer Test-/Produktionsumgebung bereitgestellt werden. Sie folgt einer Continuous-Delivery-Pipeline, in der automatisierte Builds, Tests und Deployments als ein Release-Workflow orchestriert werden.

Mikroservices

Eine Microservice-Architektur, die auch einfach als "Microservices" bezeichnet wird, ist ein Ansatz, bei dem eine Anwendung aus einer Reihe von unabhängig bereitstellbaren Services besteht, die dezentral und autonom entwickelt werden. Diese Services sind lose verbunden, können unabhängig voneinander bereitgestellt werden und sind leicht zu warten.

Eine Microservice-Architektur ermöglicht Entwicklern, sich in kleineren Teams zu organisieren, die auf verschiedene Services spezialisiert sind, mit unterschiedlichen Stacks und entkoppelten Deployments.

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-Logo

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-Logo

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-Logo

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.

Atlassian Open DevOps

Alles, was Teams brauchen, um sofort mit der Entwicklung und Ausführung von Software in Open DevOps loszulegen. Open DevOps beginnt mit Jira Software, Confluence, Bitbucket und Opsgenie. Die gewünschten Tools wie GitHub oder GitLab lassen sich mit einem einzigen Klick hinzufügen.

Atlassian Open DevOps

Alles, was Teams brauchen, um sofort mit der Entwicklung und Ausführung von Software in Open DevOps loszulegen. Open DevOps beginnt mit Jira Software, Confluence, Bitbucket und Opsgenie. Die gewünschten Tools wie GitHub oder GitLab lassen sich mit einem einzigen Klick hinzufügen.