Wer schreibt, der bleibt – ein Einblick ins Programmieren und den Stellenwert von Dokumentation
Gastbeitrag ASTRUM IT
- Lena
- April 20, 2022
Wir haben mit Jonas Stasch, Softwareentwickler und Consultant bei ASTRUM IT, gesprochen. Er erläutert dir, wie Programmieren allgemein funktioniert und was man dabei beachten muss. Schon mal vergessen, Hausaufgaben abzuspeichern oder sogar eine Hausarbeit? Ärgerlich oder? Ähnlich geht es Informatiker:innen beim Programmieren. ASTRUM IT erklärt uns wie man beim Codeschreiben sicherstellen kann, dass genau das nicht passiert und was man noch hinterlegen kann.
Das ist ASTRUM IT:
Die ASTRUM IT GmbH ist ein IT-Unternehmen mit Sitz in Erlangen. Als IT-Spezialist unterstützt ASTRUM IT Unternehmen mit ihrem Know-how rund um den Softwareentwicklungsprozess, digitale Zukunftsthemen und IT-Sicherheit. Rund 150 Mitarbeitende gewährleisten durch ihre umfassende Erfahrung u.a. als zertifizierter Zulieferer für Medizinprodukte einen hohen Qualitätsstandard und arbeiten in engem Kontakt mit nationalen und internationalen Kunden.
Was versteht man unter Softwareentwicklung und wie wird normalerweise eine Software gebaut? Gibt es einen Prozess, der befolgt werden muss?
Softwareentwicklung beschäftigt sich mit der Herstellung oder Entwicklung von Software, der Organisation und Modellierung der zugehörigen Datenstrukturen und dem Betrieb von Software-Systemen. Es gibt viele verschiedene Prozesse, die das organisierte Arbeiten erleichtern. Etabliert hat sich hier in vielen Bereichen der Scrum Prozess, der ungefähr folgendermaßen abläuft:
– Arbeitspakete, die auf das fertige Produkt hinführen, werden geplant und definiert.
– Alle zwei Wochen wird geplant, was in den nächsten zwei Wochen angegangen werden soll.
– Arbeitspakete werden von Entwickler:innen bearbeitet und der Fortschritt täglich besprochen.
– Nach den zwei Wochen soll eine neue Version veröffentlicht werden, hierzu gehört auch eine Dokumentation.
Gibt es Anwendungen oder Tools, die den Entwickler:innen bei ihrer Arbeit helfen? Warum bedarf es dieser Tools und wodurch zeichnen sie sich aus?
Es gibt einige Anwendungen, die eine:r Entwickler:in bei der Arbeit helfen. Besonders elementar ist die Verwendung von Editoren, Versionsverwaltung und eine Anwendung zur Verwaltung und Planung von Arbeitspaketen.
Editoren sind wie der Name schon verrät Schreibprogramme, in denen man als Programmierer:in arbeitet und den Code für die Software schreibt. Der Editor hängt von der Programmiersprache ab. Sehr flexibel ist z.B. der Editor „Visual Studio Code“. Dieser ist mit Erweiterungen, sogenannten Plugins, sehr vielfältig einsetzbar und bietet auch Möglichkeiten für gemeinsames Arbeiten.
Eine Versionsverwaltung hilft bei der Organisation von Programmcode. Sie ermöglicht das gemeinsame Arbeiten an einer Codebasis und verhindert Datenverlust sehr effektiv. Selbst wenn z.B. versehentlich etwas überschrieben wird, kann immer zu einer vorherigen Version zurückgegangen werden. Meistens wird hier die Software „GIT“ genutzt.
GIT ist eines der wichtigsten Werkzeuge in der Softwareentwicklung. Der Code geht nicht verloren, das Abspeichern ist einfach und schnell. Zurückgehen in ältere Versionen des Codes ist problemlos möglich. Hast du schon mal ein Dokument als Hausarbeit.docx, Hausarbeit-2.docx, Hausarbeit-final.docx abgespeichert? GIT übernimmt dies für dich und du hast später Zugriff auf alle Versionen. Mehrere Plattformen bieten den GIT-Service. Wir nutzen oft GitLab.
Neben der o.g. Versionsverwaltung bietet GitLab außerdem:
- Möglichkeiten zur Organisation von Arbeitspaketen. Diese können dort aufgeschrieben und sogar direkt der Version und den Entwickler:innen zugeordnet werden, auf bzw. von denen sie bearbeitet werden.
- CI/CD (Continuous Integration / Continuous Delivery) Dies beschreibt das Konzept, dass bestimmte Aktionen direkt auf dem Code ausgeführt werden, wenn es Änderungen gibt. Z.B. können automatische Tests durchlaufen oder eben die geschriebene Dokumentation als PDF exportiert werden.
Wie ist eine Dokumentation aufgebaut und was sind wichtige Bestandteile?
Eine Dokumentation enthält alle wichtigen Informationen über das Projekt und wird oft in mehrere Dokumente aufgeteilt:
Vor dem Start des Projekts: Rahmenbedingungen (Was muss gemacht werden, was muss nicht gemacht werden, Programmiersprachen, Schnittstellen, Risiken, Verantwortliche, …).
Für Nutzer:innen: Informationen darüber, wie Features genutzt werden können.
Für Entwickler:innen: Informationen über den strukturellen Aufbau des Codes (gut darzustellen mit Diagrammen) und Architekturentscheidungen.
Warum ist die Dokumentation bei der Softwareentwicklung so wichtig?
Alle Beteiligten finden dort wichtige Informationen an einer zentralen Stelle und es werden wichtige Entscheidungen festgehalten. So ist ein langfristiger Wissensaustausch über die Software gewährleistet. Es erleichtert den Einstieg für neue Entwicker:innen in ein Projekt und bietet einen Überblick über die Software.
Ihr habt eine eigene Methode für das Dokumentieren entwickelt. Was zeichnet diese aus?
Für uns ist die Verbindung von GitLab und Dokumentation sehr entscheidend.
Wir finden jede Dokumentation direkt beim Code und können alle Informationen bekommen, die wir benötigen.
Die o.g. Vorteile der Versionsverwaltung greifen auch beim Dokumentieren. Sowohl Dokumentationstext als auch Diagramme sind in Textform niedergeschrieben und können somit in GitLab eingesehen und mit vorherigen Versionen verglichen werden. Bei einem Code Review kann direkt darauf geachtet werden, dass ein neues Feature in der Dokumentation erklärt wird.
CI/CD kann dafür genutzt werden, die Dokumentation direkt als PDF, HTML und DOCX Dateien verfügbar zu machen. Die Dateien lassen sich dann einfach im GitLab Projekt downloaden.
Wie lernt man besten mit solchen Tools umzugehen und wie lernt man gut zu dokumentieren?
Die Grundlagen in der Nutzung von GitLab lernt man schnell, sobald man an einem Projekt arbeitet. Versionsverwaltung ist sehr elementar und aus der Softwareentwicklung nicht mehr wegzudenken. Zum Bespiel hat unsere Schülerpraktikantin Lara innerhalb eines Tages die Methode erlernt und gleich vom ersten Tag an ihren Praktikumsbericht damit umgesetzt.
CI/CD gehört zu den schwierigeren Bestandteilen von GitLab. Documentation as Code lässt sich sehr einfach per Copy/Paste im eigenen Projekt einrichten. So konnte ich mit Lara innerhalb weniger Minuten einrichten, dass ihr Praktikumsbericht automatisch als PDF, HTML und DOCX exportiert wird. Diese Einrichtung muss nur einmalig vorgenommen werden. Möchte man sich tiefer mit CI/CD beschäftigen und komplexe Pipelines bauen, ist es wichtig, dass man sich Zeit für die Einarbeitung nimmt. Die Dokumentation von GitLab ist sehr ausführlich und hilft hier gut weiter.
Eine gute Dokumentation zeichnet sich dadurch aus, dass sie übersichtlich ist und schnell weiterhilft. Wichtig ist vor allem, die Zielgruppe der Dokumentation zu berücksichtigen. Oft ist es sinnvoll, die Dokumentation für Nutzer:innen einfach zu halten und mit Screenshots zu unterstützen. In der Dokumentation für Entwickler:innen kann von Fachvokabular ausgegangen werden. Meistens kann man sich auch anschauen, wie die Dokumentation in anderen Projekten umgesetzt wurde und sich daran orientieren.