Moderne Softwareentwicklung ist schnell, iterativ und komplex. Moderne Teams benötigen mindestens diese fünf Tools, damit sie alle Aufgaben im Griff haben können. [...]
Die Softwareentwicklung hat in den letzten 30 Jahren einen langen Weg zurückgelegt. Ich erinnere mich noch an die Zeit, als man den Lebenszyklus der Softwareentwicklung (SDLC) auf seinem eigenen Computer verwalten konnte. Man konnte Code schreiben, ihn debuggen, erstellen und ausliefern – alles von seinem Desktop aus. Der Quellcode wurde auf einem Dateiserver gespeichert und verwaltet, indem man am Ende eines jeden Tages eine Zip-Datei speicherte.
Wenn man überhaupt ein Tool zur Versionskontrolle verwendete, dann war es CVS oder SVN mit einem zentralen Server, der das Branching und Merging zu einer echten Herausforderung machte. Die Freigabe von Software bedeutete, eine „goldene“ Diskette an einen Hersteller zu schicken, der die Software dann physisch an Geschäfte und Katalogverkäufer verschickte.
Heute ist es sowohl einfacher als auch komplexer. Die meiste neue Software wird über den Browser bereitgestellt. Teams aus externen Entwicklern verwalten große Codebasen mit Hilfe hochentwickelter zentraler Code-Repositories. Sie koordinieren ihre Arbeit mit Hilfe von Tools zur Verfolgung von Problemen und zur Kommunikation, und sie führen kontinuierliche Integration (CI) und kontinuierliche Implementierung (CD) mit speziell für diesen Zweck entwickelten Tools durch. Das SaaS-Modell ermöglicht es den Teams, neue Funktionen sofort zu veröffentlichen, wann immer sie wollen.
Dieser Prozess erfordert eine Vielzahl von Software-Tools. Manch einer mag argumentieren, dass gute Stühle und Breitbildmonitore mehr zur Verbesserung der Entwicklungspipeline beitragen, aber wir wollen uns hier auf Softwaretools beschränken.
Welche Softwaretools sind also für die moderne Softwareentwicklung erforderlich? Moderne Teams brauchen zumindest diese fünf.
Integrierte Entwicklungsumgebung (IDE)
Das Schreiben von Code wird von Tag zu Tag schwieriger, und Entwickler brauchen ein Werkzeug, das damit Schritt halten kann. Eine gute IDE ermöglicht die Codebearbeitung, Syntaxhervorhebung, Codevervollständigung, Quellcodeverwaltung, Kompilierung und Fehlersuche. Eine gute IDE bietet auch eine Art von Erweiterungs-API, mit der jeder die Fähigkeiten des Editors verbessern kann.
Wenn Sie keine speziellen Anforderungen haben, empfehle ich Ihnen Visual Studio Code, weil es einfach die beliebteste, leistungsfähigste, offenste und fähigste IDE ist, die es gibt. VS Code wird von Microsoft entwickelt und gepflegt und ist Open Source. Es ist enorm beliebt, kann mit fast jeder Programmiersprache umgehen und verfügt über Tausende von nützlichen Erweiterungen. Mit mehr als 20 Millionen Entwicklern, die es verwenden, ist VS Code bei weitem das Tool der Wahl. Die Möglichkeit, GitHub Copilot, den KI-basierten Programmierassistenten von GitHub, einzubinden, bietet noch einen zusätzlichen Anreiz.
Kommunikationstools
COVID hat die Art und Weise, wie Entwicklerteams zusammenarbeiten, verändert. Plötzlich arbeiteten alle Teams von zu Hause aus, und sie brauchten eine Möglichkeit, miteinander zu kommunizieren, wenn sie sich nicht physisch treffen konnten. Die Kombination aus Slack und Zoom wurde zum Mittel der Wahl. Sie ist es immer noch.
Slack profitiert davon, dass es sehr weit verbreitet ist, und verfügt daher über eine große Bibliothek von Plugins und Integrationen, mit denen man viele Dinge tun kann, die einem vielleicht gar nicht in den Sinn kommen, bevor man anfängt, herumzustochern. Zoom hat sich zum De-facto-Videokonferenz-Tool für Teams und Meetings aller Art entwickelt. Die Integration von Slack und Zoom ist einfach und leistungsstark. Ich empfehle diese Kombination, da beide Tools vielseitig einsetzbar sind und die Kommunikation mit Mitarbeitern, Kunden und Lieferanten im gesamten Unternehmen und nicht nur mit dem Entwicklungsteam erheblich erleichtern.
Dicht gefolgt von Microsoft Teams, das den Vorteil hat, dass es Chat, Videokonferenzen und File Sharing in einer einzigen App vereint.
Quellen / Versionskontrolle – Tools
Mercurial war eine Zeit lang ein Kandidat, aber Git hat den Wettbewerb der Versionskontrollwerkzeuge eindeutig gewonnen. Wenn Sie Git nicht verwenden, werden Sie zurückbleiben.
Git ist ein verteiltes Versionskontrollsystem, aber die richtige Verwendung erfordert ein zentrales Repository, und GitHub ist in diesem Bereich eindeutig führend. Ich entscheide mich für GitHub, weil es allgegenwärtig ist und nicht nur als Code-Repository fungiert. GitHub ist bei weitem der führende Host für Open-Source-Projekte. Jedes Unternehmen sollte in irgendeiner Form auf GitHub vertreten sein.
Zu den zusätzlichen Funktionen von GitHub gehören Problemverfolgung, Codeüberprüfung und Einbindung in den Build- und Deployment-Prozess. Mit seinem Produkt Codespaces, das auf Visual Studio Code basiert, ist GitHub sogar führend auf dem Gebiet der IDE im Browser.
Dicht gefolgt von GitLab, das in einer Open-Source-Version verfügbar ist und GitHub leider in fast jeder Hinsicht auf den Fersen ist.
Feature-Flags
Ich muss gestehen, dass ich bis vor etwa einem Jahr nicht einmal wusste, dass es so etwas wie Feature-Flags gibt. Jetzt werden sie immer häufiger verwendet, da SaaS-Lösungen es tatsächlich ermöglichen, Funktionen mit einem Mausklick ein- und auszuschalten. Mit Feature-Flags können Sie Funktionen aus so ziemlich jedem beliebigen Grund steuern – nach Unternehmen, nach Kundenebene oder nach Benutzer. Auf diese Weise können Sie z. B. einen Betatest durchführen oder einen „Kanarienvogel“-Einsatz bei einem kleinen Teil Ihrer Kundenbasis testen, um zu sehen, wie eine neue Funktion in der realen Welt überlebt.
Der eindeutige Marktführer in diesem Bereich ist LaunchDarkly, eine SaaS-Plattform für die Verwaltung von Funktionen, mit der Sie die Bereitstellung einer Anwendung und ihrer Funktionen genau steuern können. Es ist schwer, sich nicht für ein Unternehmen zu entscheiden, das so eindeutig führend ist und das seinen Funktionsumfang ständig erweitert.
CI/CD-Tools
Ich beschäftige mich schon seit Jahren mit kontinuierlicher Integration (CI). Aber die kontinuierliche Bereitstellung (CD) ist neuer, anspruchsvoller und offen gesagt auch ein wenig beängstigender. CI/CD erfordert das Erstellen von Software, das Ausführen von Tests, das Ablegen von Artefakten an der richtigen Stelle, das Bereitstellen von Cloud-Ressourcen, das Bereitstellen von Anwendungen an mehreren Standorten und eine Vielzahl unterschiedlicher Aktivitäten, die alle dazu beitragen, dass der Code vom Einchecken bis zur Produktion so schnell wie möglich läuft.
Viele Teams versuchen, die Zeit zwischen dem Einchecken des Codes und der Bereitstellung von Tagen auf fünfzehn Minuten zu verkürzen. (Sie haben richtig gelesen.) Das ist der beängstigende Teil – etwas so schnell in Produktion zu bringen bedeutet, dass Sie bereit sein müssen, schnell zu reagieren. Andererseits bieten kurze Bereitstellungszeiten eine unmittelbare Rückmeldung bei Problemen, so dass die Entwickler den Kontext der letzten Änderungen im Kopf behalten und Fehler schneller und einfacher beheben können, wenn sie auftreten.
Um CI/CD richtig zu machen, braucht man auf jeden Fall ein leistungsfähiges Toolkit. Glücklicherweise gibt es CircleCI.
CircleCI kann alles und verbindet sich mit einer Vielzahl von Frameworks und Systemen, um Ihre Anwendung schnell zu erstellen und bereitzustellen. Ich schätze CircleCI wegen seines umfassenden Funktionsumfangs, seiner Geschwindigkeit und seiner Compliance.
Auch das Open Source CI/CD-Tool Jenkins bekommt von mir eine Ehrenplatzierung.
Fazit
Diese fünf Tool-Kategorien – IDE, Kommunikation, Versionskontrolle, Feature Flags und CI/CD – sind das absolute Minimum, das Sie für die moderne Softwareentwicklung benötigen. Alle diese Tools arbeiten zusammen, um den Zeitaufwand für die Codierung und die Überführung des Codes in die Produktion zu minimieren. Sie können alle cloudbasiert sein, so dass Sie sich um nichts kümmern müssen, außer um die Arbeit. Ganz gleich, ob Sie in einer cloudbasierten IDE programmieren oder mit einem leistungsstarken CI/CD-Tool in Minutenschnelle bereitstellen, mit diesen Tools können Sie den Entwicklungsprozess für Ihre Software optimieren.
*Nick Hodges ist der Fürsprecher der Entwickler bei Rollbar. Als langjähriger Delphi-Entwickler hat Nick in den letzten Jahren seine Aufmerksamkeit auf TypeScript und Angular gerichtet.
Be the first to comment