Bei der agilen Softwareentwicklung geht es nicht nur um Entwickler
Niemand möchte eine Software voller Bugs und mit Leistungsproblemen ausliefern, die sich negativ auf die Kundenzufriedenheit auswirken. Mit Continuous Integration und Code-Reviews lässt sich das verhindern, aber das erfordert Zeit … und wer hat die schon? Nun ja, agile Teams und DevOps nehmen sich die Zeit.
Agile Softwareentwickler konzentrieren sich auf eine nachhaltige Entwicklung, statt auf Heldentaten. Nachhaltigkeit bedeutet gute Prognosen, effektive Branching-Strategien für das Codemanagement, automatisierte Tests zum Schutz der Qualität und Continuous Deployment, um schnelles Feedback von Benutzern zu erhalten.
Die Einführung von nachhaltigen Entwicklungsverfahren erfordert eine Disziplin, nach der viele von uns streben – die wir aber oft nur schwer realisieren können. Das liegt daran, dass sich Agile und DevOps-Methoden nicht in einem Vakuum umsetzen lassen. Die Kultur des gesamten Unternehmens muss dahinter stehen. Und manchmal braucht es jemanden, der die Veränderungen anstößt, wie etwa ein DevOps Engineer. Projektleitern sollte die Qualität wichtiger sein als der Umfang oder die Zeitplanung – was bei der Einführung agiler Methoden oft der schwierigste Teil ist.
Aber es lohnt sich! Entwickler erhalten die Freiheit und Verantwortung, Software nachhaltig zu entwickeln, aber gleichzeitig eine großartige Beziehung mit dem Unternehmen aufrechtzuerhalten. Und das Unternehmen bringt ein hochwertigeres Produkt auf den Markt, was diese großartige Beziehung mit der Entwicklung weiter verstärkt. Darüber hinaus (und das ist der beste Aspekt) erleben agile Softwareentwickler nur selten "Todesmarsch-Projekte". Wenn die Entwicklung hinter der Zeitplanung zurückbleibt, weil die Aufrechterhaltung einer hohen Qualität mehr Aufwand als erwartet bedeutet, kann sich der Projektumfang des magischen Dreiecks an diese Realität anpassen – und niemand muss seine Wochenenden opfern.
Alle Softwareentwickler kennen das "magische Dreieck" des Projektmanagements: Projektumfang, Zeit und Qualität. Und die meisten von uns haben bereits an Projekten gearbeitet, bei denen der Projektumfang unflexibel war, die Zeit durcheinandergeriet und die Entwicklung durch wachsende technische Schulden überfordert war. Manchmal – um das Ganze noch zu verschlimmern – war das Endprodukt nicht einmal vom Markt gewünscht. Das ist frustrierend und kommt doch allzu oft vor.
Aber keine Sorge, es gibt gute Neuigkeiten.
Bei der agilen Softwareentwicklung wird der Projektumfang zu einer dynamischen Variable, sodass Teams die Qualität schützen, eine lebhafte Entwicklungskultur aufbauen und eng mit dem Unternehmen verbunden bleiben können. Bei Atlassian stehen agile Methoden im Zentrum jedes Entwicklungsteams (und vieler anderer Teams!). Und das aus gutem Grund.
Sie unterstützen Einzelne mit Verfahren, die eine solide technische Grundlage für ihr Produkt und eine Kultur der Zusammenarbeit für ihr Team bedeuten. Entwickler in agilen Teams sind engagierter, schreiben besseren Code und haben mehr Spaß.
Robuste Verbindungen für ein überzeugenderes Produkt
Bei agilen Methoden geht es um Teamarbeit, was nicht weiter überraschend ist, da die meiste Software heute von Teams entwickelt wird. Entwickler bauen robuste Beziehungen zu den Bereichen Produktmanagement, Design, QA und Betrieb auf, da das Schreiben von nachhaltigem Code bedeutet, mit allen Facetten des Projekts in Verbindung zu bleiben. Atlassian hat große Vorteile in Bezug auf die Codequalität und Entwicklerzufriedenheit erzielt, indem Entwickler unterstützt werden, direkt mit anderen Bereichen des Unternehmens zusammenzuarbeiten. Besserer Code, weniger "Überlastung" (d. h. doppelter Aufwand und/oder widersprüchliche Arbeitsabläufe) und effektivere funktionsübergreifende Arbeiten sind nur einige der Vorteile.
Auch Mentoring spielt eine große Rolle. Agile Teams schulen einander teamübergreifend, um dafür zu sorgen, dass alle Beteiligten in Bezug auf die Codebasis den gleichen Wissensstand haben. Code-Reviews sind beispielsweise eine gute Möglichkeit, die Qualität zu sichern und die Vertrautheit mit dem Code teamübergreifend zu fördern. Ganz gleich auf welche Art das Wissen verbreitet wird – in agilen Teams wird es nicht passieren, dass Entwickler in kritischen Situationen nicht in den Urlaub gehen können, weil sie die einzigen sind, die einen bestimmten Bereich des Codes verstehen. Denn niemand möchte dieser Entwickler sein.
Agile Entwickler können außerdem den Technologie-Stack ihres Produkts auf einfachere Weise als ihre Pendants in Wasserfallmodell-Teams abarbeiten, da agile Teams sich selbst organisieren und Mitgliedern ermöglichen, neue Kompetenzen zu erwerben. Es ist eine Tatsache, dass Entwickler, die alle Features – von der Benutzeroberfläche bis zur Datenbank – bereitstellen, ihren Code stärker in Besitz nehmen. Bei Atlassian kultivieren wir Full-Stack-Entwickler, weil wir daran glauben, Wissen im gesamten Team und im gesamten Unternehmen zu teilen.
Programmieren, Kultur und Spaß an der agilen Softwareentwicklung
Eine Umstellung auf agile Methoden bedeutet, innerhalb des Unternehmens eine großartige Entwicklungskultur aufzubauen. Lies weiter, um mehr über effektive Branching-Strategien, automatisierte Testtechniken, Continuous Integration und den Aufbau wirkungsvoller Beziehungen mit anderen Bereichen des Unternehmens zu erfahren. In den nächsten Artikeln gehen wir näher auf die spezifischen Änderungen ein, die Tausende von Entwicklern während der Umstellung auf agile Methoden vorgenommen haben, um ihren Erfolg zu sichern.
Die agile Softwareentwicklung ist eine Reise, bei der wir dich auf Schritt und Tritt begleiten.
Starte kostenlos mit der DevOps-Projektplanungsvorlage
Entwickle und stelle Anwendungen bereit und verwalte sie mit offenen Tools.