Der ultimative Guide

Software-Artefakte

Was sind Software-Artefakte und warum sind sie das Rückgrat der Softwareentwicklung? In diesem Guide erfahren Sie alles über die unterschiedlichen Artefakt-Typen und warum kein Entwickler ohne auskommt.

Einleitung

Was sind Software-Artefakte und was haben sie mit historischen Artefakten gemein? Die Antwort: Genau wie historische Artefakte sind Software-Artefakte Produkte menschlichen Handelns.

Dennoch gibt es zwischen diesen beiden Artefakten einen großen Unterschied: Historische Artefakte sind materieller, greifbarer Natur, wohingegen Software-Artefakte in der Regel virtuell sind. Hierzu zählen etwa Sprachmodelle, Microservices oder die Designdokumente, die während des Softwareentwicklungsprozess erstellt werden.

 

Was ist ein Software-Artefakt?

In der Softwareentwicklung bezeichnet ein Software-Artefakt ein Element, das während des Entwicklungsprozesses produziert wurde. Das kann ein Datenmodell, ein Prototyp, ein Workflow-Diagramm, ein Designdokument oder ein Setup-Script sein. Einige Software-Artefakte sind sogar während des Entwicklungsprozesses erforderlich, weswegen sie für alle Stakeholder zugänglich gespeichert werden müssen.

Der Begriff „Artefakt“ wird normalerweise in geschichtlichen Kontexten verwendet und bezieht sich auf Erfindungen der Menschheit. In den meisten Fällen sind Artefakte von wissenschaftlichem Interesse und werden genutzt, um Rückschlüsse auf die Lebenswirklichkeit in der Vergangenheit zu ziehen. Software-Artefakte ähneln in ihrem Zweck den historischen Artefakten, da sie Entwicklern dabei helfen, ihre Schritte während der Entwicklung eine Softwareprodukts zurückzuverfolgen. Daher fungieren Sie als Karte, die den Softwareentwicklungsprozess beschreiben.

In der Welt der Softwareentwicklung ist der Begriff „Software-Artefakt“ noch nicht standardisiert. Deswegen ist es nicht weiter verwunderlich, dass unterschiedliche Unternehmen hier ihre ganz eigenen Definitionen und Sichtweisen verfolgen. In LeanIX ist ein Software-Artefakt eine unabhängig bereitstellbare Software, die von einem Engineer entwickelt wurde. Das unterscheidet sie von Software-Assets – ein Begriff, der in der Entwickler-Community nicht gut ankommt, da er eher verwaltungslastig und operativ ist.

Um jedoch den allgemeinen Industriestandards zu folgen, umfasst dieser Guide auch Software-Artefakte, die nicht nur von Engineers oder Entwicklern erstellt werden, sondern auch von anderen Mitarbeitern, die zum Entwicklungsprozess beitragen.

Aber um welche Artefakt-Typen handelt es sich und wie werden sie gespeichert, damit sie auch in Zukunft verwendet werden können? Und welche Bedeutung kommt den Artefakt-Repositories hier zu?

Artefakt-Repository

Historische Artefakte werden von Archäologen entdeckt und sind nicht einfach zu finden. Es muss wahrscheinlich nicht erwähnt werden, dass Software-Artefakte, die sich überall verstreut befinden, für Unternehmen eher von Nachteil sind. Um die Software-Artefakte leicht nachzuverfolgen und finden zu können, müssen sie in einem Artefakt-Repository gespeichert werden. Im Folgenden finden Sie drei unterschiedliche Repository-Typen, die sie unterscheiden können müssen.

Remote-Repository: Verwendet eine Remote-URL und wird manchmal sogar von einem externen Anbieter gehostet. Software-Artefakte können zwar entfernt, aber nicht hinzugefügt werden.

Lokales Repository: In diesem Fall werden Software-Artefakte auf einem On-Prem-Server gespeichert und werden sowohl lokal deployed als auch verwaltet.

Virtuelles Repository: Hier haben wir eine Kombination aus den beiden bereits erwähnten Repositories. Über eine einzige URL haben Benutzer Zugriff auf remote und lokale Artefakte und können sie sowohl löschen als auch hinzufügen.

Im nächsten Abschnitt erfahren Sie, welche unterschiedliche Artefakt-Typen, wann sie erstellt und wofür sie in der Regel eingesetzt werden.

Artefakt-Typen

Es gibt nicht nur unterschiedliche Repository-Typen, sondern auch verschiedene Typen von Software-Artefakten, die gespeichert werden müssen.

Im Allgemeinen können Sie zwischen drei verschiedenen Typen unterscheiden: Projektmanagement-Artefakte, Code-Artefakte und Dokumentationsartefakte.

Projektmanagement-Artefakte

Diese Artefakte werden nach der Codeentwicklung erstellt. Sie werden genutzt, um die Softwarefunktionalität zu testen und mögliche Bugs oder Glitches aufzudecken. Projektmanagement-Artefakte sind benutzerzentriert ausgelegt und werden meistens von Softwareentwicklern, dem Softwarewartungspersonal und Softwareprojektmanagern erstellt.

Hier einige Beispiele:

  • Klassendiagramm: Hierbei handelt es sich um statische Strukturdiagramme eines Systems, das all seine Klassen, Attribute, Methoden, Objekte und Interdependenzen abbildet.
  • Walkthroughs: Wie der Name bereits erkennen lässt, sind sogenannte Walkthroughs im Grunde genommen detaillierte Guides, die die Teams von A bis Z durch die Applikation führen.
  • Endbenutzer-Dokumentation: Diese Art der Dokumentation ist für die Kunden bestimmt und fungiert als Hilfestellung für die Endbenutzer im Umgang mit der jeweiligen Software.
  • Interne Dokumentation: Diese Art der Dokumentation wird für Mitarbeiter erstellt, die für die Verwaltung oder Reparatur der Softwareapplikation verantwortlich sind.
  • User Case/Stories: Diese Artefakte beschreiben detailliert den Zweck der jeweiligen Software aus technischer Sicht.
  • Kriterien: Mithilfe dieser Artefakte legt der Kunde oder der Projektmanager die Anforderungen an die Software oder das Projekt fest, um den Entwicklern ein bestimmtes Ziel vorzugeben.
  • Unified Modeling Language (UML): UML wird verwendet, um Software zu visualisieren und darzustellen, wie sie funktioniert, einschließlich aller Verknüpfungen und Prozesse.
  • Risikobewertung: Hier werden alle potenziellen Risiken und Fallstricke der Software beschrieben. So können die Entwickler einen Weg finden, um diese Risiken zu vermeiden oder zu umgehen.

Code-Artefakte

Code-Artefakte sind wahrscheinlich die bekanntesten „Nebenprodukte“ im Softwareentwicklungsprozess, da sie die Grundlage eines Programms bilden. Die von Entwicklern und Site Reliability Engineers erstellten Code-Artefakte ermöglichen es ihnen, ihre Arbeit detailliert zu testen, bevor die Software gelauncht wird. Dies ist der beste Weg, um späteren Glitches vorzubeugen.

Im Folgenden finden Sie die gängigsten und nützlichsten Code-Artefakte:

  • Test-Suites: Dies ist ein spezieller Code, mit dem das Programm auf Herz und Nieren getestet und somit sichergestellt wird, dass alle Prozesse wie erwartet funktionieren.
  • Setup-Skripte: Diese Artefakte bereiten die Umgebung auf die Software vor und stellen sicher, dass sie auf jedem beliebigen Rechner läuft.
  • Kompilierter Code: Dies ist der endgültige Code, der an die Endbenutzer geht – daher sollte er keine Fehler oder Glitches enthalten.
  • Test-Output: Diese Artefakte sind mit den Test-Suites verbunden, da sie die Protokolle (Logs) und Ergebnisse der Testphase beinhalten.
  • Microservices: Diese Artefakte sind lose gekoppelte Services oder kleine deploybare Komponenten, die zusammengenommen ein komplexeres Applikationssystem bilden.

Dokumentationsartefakte

Dokumentationsartefakte, die von Softwareentwicklern, dem Softwarewartungspersonal oder Softwareprojektmanagern erstellt werden, werden gegen Ende der Programmierung wichtig. Einfach ausgedrückt: Ein Dokumentationsartefakt ist eine Aufzeichnung aller Dokumente, die benötigt werden, um das Ergebnis zu reproduzieren, ohne neue Artefakte erstellen zu müssen.

Dazu gehört auch die Endbenutzer-Vereinbarung, die die Nutzungsbedingungen des Artefakts selbst festlegt - das heißt, sie erklärt, wie das Artefakt zu verwenden ist und nicht, wie das Softwareprogramm zu nutzen ist.

Im Folgenden finden Sie einige der wichtigsten Dokumentationsartefakte, die Ihnen bei der Softwareentwicklung begegnen werden.

  • Diagramme: Diese Artefakte werden verwendet, um die internen Prozesse der Software zu visualisieren und die Verbindung zwischen dem Programm und dem Entwickler zu veranschaulichen. In der Regel werden sie während oder zu Beginn der Coding-Phase erstellt.
  • Endbenutzer-Vereinbarung: Wie der Name schon sagt, helfen diese Artefakte dem Benutzer, das Programm zu verstehen und geben zusätzlich die Nutzungsbedingungen an.
  • Interne Dokumente: Zu diesen Artefakten gehören alle Dokumente, die den Entwicklern helfen, die Software zu verstehen oder zu verbessern.

Die Vorteile von Software-Artefakten

Wenn Software-Artefakte gespeichert und für alle erforderlichen Stakeholder zugänglich gemacht werden, profitieren davon nicht nur die Entwicklungsteams, sondern das gesamte Unternehmen. Software-Artefakte werden unter anderem dazu verwendet, die Ziele, die Leistungserwartungen und den Funktionsumfang des Produkts zu formulieren. Diese können vom Team und dem Kunden überprüft werden, um sicherzustellen, dass beide Parteien dieselbe Vision vor Augen haben.

Nachfolgend finden Sie eine Auflistung der wichtigsten Vorteile:

Vollumfängliche Roadmap

Software-Artefakte sind das Rückgrat der Softwareentwicklung, da sie den Entwicklern eine vollumfängliche Roadmap liefern – vom Projektstart bis zum Software-Deployment. Ohne Artefakte lässt sich nur mit Mühe herausfinden, welche Tools für die Entwicklung eines voll funktionsfähigen Programms erforderlich sind. Diese Roadmap oder dieses Template ermöglicht den Teams die zeitliche Nachverfolgung des Entwicklungsprozesses und Aufdeckung von Workflows, die angepasst werden müssen, damit sie den Erwartungen, Zielen und Deadlines entsprechen.

Zeiteffizienz

Software-Artefakte sparen Zeit und dadurch auch Geld. Immerhin möchte niemand ein Programm launchen, dass bereits vor dem Launchdatum veraltet ist. Deswegen sollten Software-Artefakte den Kern des Entwicklungsprozesses darstellen. Sie liefern Leitlinien und Struktur und helfen den Entwicklern bei der Reduzierung ihres Workloads, wodurch diese wiederum mehr Kapazitäten haben, um bestimmte Schritte und Prozesse zu beschleunigen. Außerdem bieten sie Entwicklern die Möglichkeit, bekannte Bottlenecks zu umgehen und gängige Fehler zu vermeiden.

Einfache Upgrades und Wiederverwendbarkeit

Auch wenn ein Programm bereit für den Launch ist, bedeutet das noch nicht, dass es vollkommen „fertig“ ist – jede Software braucht natürlich Updates. Durchschnittlich läuft eine Software drei bis 5 Jahre, bevor Wartungsarbeiten zur Aufrechterhaltung der Funktionalität durchgeführt werden müssen. Software-Artefakte erleichtern diesen Prozess. Außerdem können Entwickler die Dokumentation, den Code und andere Artefakte vergangener Produkte reviewen, um Ideen zu sammeln und die Herangehensweise an technische Probleme in neuen Projekten festzulegen.

Wartungsfreundlichkeit

Die Wartung eines Programms kann viel Zeit und Arbeit in Anspruch nehmen. Die Aufgaben reichen von der Behebung gelegentlicher Fehler oder Bugs, die im Laufe der Zeit bei der Nutzung auftreten, bis hin zur Lösung von Problemen, die bei der Hinzufügung neuer Funktionen oder der kompletten Überarbeitung eines Programms entstehen können. Bei der Erstellung von Software-Artefakten werden all diese potenziellen Probleme angegangen, was die Nutzungsdauer verlängert und dazu beiträgt, die Kontrolle über die Software zu behalten.

Entwicklung von Prototypen

Bevor ein Programm vollständig entwickelt und deployed wird, möchten Kunden in den meisten Fällen zunächst einen Prototyp sehen, um abschätzen zu können, wie das finale Produkt aussehen wird und was die Benutzer erwarten können. Im Wesentlichen ist dieser Prototyp ein echtes Artefakt, das den Entwicklern dabei hilft, Produktideen mit einem funktionierenden Programm zu verbinden. Außerdem können an Prototypen ohne großen Aufwand Korrekturen vorgenommen werden, im Gegensatz zum finalen Softwareprodukt.

Förderung von Ownership

In einer Welt von Microservices, cloudbasierten Lösungen und unüberschaubaren Architekturen wird das Thema Service-Ownership immer wichtiger. Dank Software-Artefakte können Entwickler sich in ihren einzigartigen Produkten „verewigen“, was nicht nur aus der Perspektive des Erstellers von Bedeutung ist. Es ermöglicht zukünftigen Entwicklern eine bessere Versionskontrolle und gibt ihnen die Möglichkeit, bei programmbezogenen Fragen oder Problemen die richtige Person zu kontaktieren.

Zugang zu Wissen

Da künstliche Intelligenz die digitale Welt verändert, haben Software-Artefakte an Bedeutung gewonnen – sie bieten fundiertes Wissen, das von AI zur Verbesserung der Software genutzt werden kann. Dieses offene Wissen ist auch für neue Entwickler wichtig, die mit dem bisherigen Entwicklungsprozess nicht vertraut sind. In vielerlei Hinsicht können Artefakt-Repositories als eine Bibliothek oder Informationsbank betrachtet werden, die alle Fragen beantworten kann, die ein neues Teammitglied zu einem bestehenden Softwareprogramm haben könnte.

Fazit

Artefakte sind das Fundament der Softwareentwicklung. Zusammengenommen fungieren sie als Leitfaden für Entwickler und tragen somit zur Verbesserung der Workflows, Wartung und Fehlerbehebung bei.

Mithilfe von Artefakten können Produktiterationen bis zu bestimmten Produktattributen und -Versionen zurückverfolgt werden. Deswegen führt ein gutes Artefakt-Repository dazu, dass Teams Zeit sparen und auf ein gemeinsames Ziel hinarbeiten. Als Entwickler ist es also wichtig zu wissen, wie man Software-Artefakte erstellt und verwaltet.

Daher kommt modernen Tools heutzutage eine wesentliche Rolle in der Softwareentwicklung zu. Sie helfen Ihrem Team unter anderem dabei, Software-Artefakte zu entdecken, die richtigen Verantwortlichen zu finden, DORA- und Flow-Metriken zu analysieren und sowohl Lebenszyklus- und Verfügbarkeitsstatus anzuzeigen.

FAQ: Software-Artefakte

Was ist ein Software-Artefakt?

In der Softwareentwicklung bezeichnet ein Software-Artefakt ein Element, das während des Entwicklungsprozesses produziert wurde. Das kann ein Datenmodell, ein Prototyp, ein Workflow-Diagramm, ein Designdokument oder ein Setup-Script sein.

Einige Software-Artefakte sind sogar während des Entwicklungsprozesses erforderlich, weswegen sie für alle Stakeholder zugänglich gespeichert werden müssen.

Welche Software-Artefakte gibt es?

Im Allgemeinen können Sie zwischen drei verschiedenen Typen unterscheiden: Projektmanagement-Artefakte (z.B. Klassendiagramme, Walkthroughs), Code-Artefakte (z.B. Microservices, Test-Suites) und Dokumentationsartefakte (z.B. Diagramme, interne Dokumente).

Was ist ein Artefakt-Repository?

In Artefakt-Repositories werden Software-Artefakten gespeichert, die während des Software-Entwicklungsprozesses entstehen. Es gibt drei verschiedene Arten von Repositories: remote, lokal und virtuell.

Was ist ein DevOps-Artefakt?

In DevOps bezeichnet ein Software-Artefakt ein Element, das während des Entwicklungsprozesses produziert wurde. Das kann ein Datenmodell, ein Prototyp, ein Workflow-Diagramm, ein Designdokument oder ein Setup-Script sein.