Die agile Arbeitsweise ist nicht nur ein Schlagwort in der Welt der IT, sondern ein weit verbreiteter Entwicklungsansatz.
Doch was macht die agile Arbeitsweise so effektiv? Außerdem warum ist es so vorteilhaft, sie zu nutzen, während man programmieren lernt? Und wie kann man es in seinen Lernprozess integrieren?
Sehen wir uns zunächst an, woher agile Methoden kommen und lass uns erörtern, was sie wirklich bedeuten.
Die Welt ist nicht ohne Grund agil geworden
Eine agile Arbeitsweise ist der kollaborativer Ansatz für die Softwareentwicklung, bei dem sich die geschäftlichen Anforderungen und Lösungen mit der Zeit durch Iterationen weiterentwickeln. Ob du es glaubst oder nicht, es gab eine Zeit, in der dieser Ansatz nicht so allgemein anerkannt war. Traditionellere Entwicklungsmethoden wie Waterfall bildeten die Grundlage, aber bei diesen kam das menschliche“ Element oft zu kurz. Ken Schwaber, Mitbegründer von Scrum und Gründer von Scrum.org, sagte, dass Waterfall dazu führte, dass Menschen als Ressourcen und nicht als wertvolle Teilnehmer*innen betrachtet wurden, und dass es seinen Beruf für immer ruinierte.
Seit langem verspürten die Entwickler*innen das Bedürfnis nach einer anderen Art von Methode, die die Art und Weise der Softwareentwicklung verbessern könnte. So kam in einer historischen Nacht im Jahr 2001 außerhalb von Salt Lake City eine Gruppe von 17 Entwickler*innen zusammen, um über mögliche Lösungen zu diskutieren. Sie alle waren Vertreter*innen verschiedener Methoden wie Extreme Programming, DSDM oder Adaptive Software Development und hatten ein Ziel vor Augen: die Entwicklung eines Organisationsmodells, das auf Menschen und Zusammenarbeit basiert.
Sie wollten eine gemeinsame Basis für ihre verschiedenen Ansätze finden und das Endergebnis ist das, was wir heute das „Manifesto for Agile Software Development“ oder das Agile Manifesto nennen, das wie eine Unabhängigkeitserklärung für die Coding Community ist. Obwohl die agile Softwareentwicklung schon lange vor dem Manifest eine reiche Geschichte hatte, war dies der entscheidende Moment für die Methodik.
Was bedeutet "agile"?
Agil basiert auf selbstorganisierenden, funktionsübergreifenden Teams und ist eine reaktivere, flexiblere Art der Softwareentwicklung. Die vier grundlegenden Werte sind:
- Individuen und Interaktionen über Prozesse und Werkzeuge
- Funktionierende Software statt umfassender Dokumentation
- Zusammenarbeit mit den Kund*innen statt Vertragsverhandlungen
- Reagieren auf Veränderungen statt Befolgen eines Plans
Wie du siehst, steht dabei das menschliche Element im Vordergrund und die Kundenzufriedenheit wird über alles gestellt. Und wenn wir uns die Zahlen ansehen, wird deutlich, dass es wirklich funktioniert. Mehr als 70 % der Unternehmen weltweit haben sich für agile Methoden entschieden und 98 % dieser Unternehmen konnten damit ihre Geschäftsziele erreichen.
Warum? Weil es den Entwicklungsteams ermöglicht, bessere Produkte zu entwickeln, indem sie Spezifikationen und Entwürfe rechtzeitig ändern können. Außerdem können die Teams aktuelle Rückmeldungen von Kund*innen einholen und Teile des Produkts während der Entwicklung testen. Fehler oder Änderungen der Geschäftsanforderungen können friedlich mit den ursprünglichen Plänen koexistieren und alles kann rechtzeitig erledigt werden.
Diese Gesamtphilosophie führt zu produktiveren Teams, hochwertigeren Produkten und zufriedenen Kund*innen.
Scrum ist nur die Spitze des Eisbergs
Es gibt viele verschiedene Frameworks oder Tools, die du zur Umsetzung agiler Werte verwenden kannst. Du könntest Scrum, Kanban, Extreme Programming, Lean oder Crystal verwenden usw. Vielleicht hast du schon von dem einen oder anderen gehört aber das beliebteste unter den Unternehmen ist sicherlich Scrum.
Scrum ist gekennzeichnet durch:
– Zyklen oder Phasen der Entwicklung – bekannt als Sprints
– hohe Transparenz
– bessere Sichtbarkeit, und
– die außergewöhnliche Qualität des Endprodukts.
Scrum hilft, dass Teams besser zusammenzuarbeiten und ermutigt alle am Prozess Beteiligten, durch Erfahrung zu lernen und sich Zeit zu nehmen, um über Gewinne und Verluste nachzudenken.
Lass uns nun die Scrum-Zeremonien und den Scrum-Rahmen im Detail erkunden, indem wir prüfen, wie Codecooler*innen mit dieser Methodik lernen und arbeiten.
Die Vorteile des Lernens mit Scrum
Die meisten Unternehmen arbeiten heute mit einer agilen Softwareentwicklung. Wenn du eine IT-Karriere starten möchtest, solltest du auch die agile Arbeitsweise lernen, nicht nur das Programmieren. Es kann sehr vorteilhaft sein, sich schon vor der ersten Bewerbung im technischen Bereich damit vertraut zu machen.
Und wie? Learning by doing ist vielleicht der effektivste Weg, um Programmieren zu lernen. Wir sind der Meinung, dass es noch besser ist, das Programmieren in agilen Projekten zu erlernen, zusammen mit agilen Prinzipien und einem agilen Framework.
Durch die Arbeit in agilen Projekten kannst du nicht nur deine Hard Skills und dein Wissen über Technologien und Programmiersprachen erweitern, sondern auch Routine in der Art und Weise gewinnen, wie Programmierer*innen in agilen Unternehmen tatsächlich arbeiten.
Weiters kannst du deine Soft Skills verbessern, indem du agiles Zeitmanagement, effektive Präsentationen und durchsetzungsfähige Kommunikationstechniken übst und lernst. Die Methode hilft dir auch dabei, ein Wachstumsdenken anzunehmen und zu lernen, dass es ein natürlicher Teil des Entwicklungsprozesses ist, Fehler zu machen, sie zu beheben und aus Erfahrungen zu lernen.
Scrum in Aktion bei Codecool
Bei Codecool verwenden wir die folgenden Elemente der Scrum-Methodik, die wir in unseren Full-Stack Development-Kurs anwenden:
- Sprints (mit Zeremonien wie Planung, Standups, Reviews, Retros, Demos),
- das Sprint Backlog und das Product Backlog, sowie
- der Scrum Master und der Product Owner.
Schauen wir uns an, wie wir diese in unsere Lernmethodik einbauen, um die besten Ergebnisse zu erzielen!
Sprints
Ein Sprint ist ein zeitlich begrenzter Zeitraum, in dem ein Scrum-Team eine bestimmte Menge an Arbeit erledigen will.
Genau wie professionelle Entwicklungsteams arbeiten unsere Student*innen in ein- oder zweiwöchigen Sprints, um ihre aktuellen Projekte abzuschließen.
In den Self-Instructed Wochen, in denen sie sich selbst unterrichten, vertiefen sie ihr Wissen eigenständig mit der Unterstützung von Mentor*innen. Dieser Aufbau unterstützt unsere Mastery-based Lernmethode, da sie das individuelle Lernen verbessert und lehrt, Verantwortung zu übernehmen.
Nach den Selbstlernwochen arbeiten die Studierenden in Teams, wo sie den Anforderungen eines Arbeitsplatzes näherkommen. Sie planen, arbeiten und ernten die Früchte des Erfolgs gemeinsam mit ihren Teamkolleg*innen und verbessern dabei wertvolle Soft Skills wie effektive Kommunikation, Konfliktlösung und vieles mehr.
Sprint-Planning
Entwicklungsteams führen die detaillierte Planung des Sprints gemeinsam durch, um das Projekt zu starten. Während der Planung legt das Team fest, was es in dem Sprint liefern kann und wie es dies erreichen will. Die Codecooler*innen führen die Planung durch und erstellen am Montag das Sprint Backlog.
Produkt-Backlog / Sprint-Backlog
Ein Product Backlog ist eine Prioritätenliste, die sich aus der Projekt-Roadmap und den vom Team und den Kund*innen im Vorfeld festgelegten Anforderungen ergibt. Die wichtigsten Aufgaben werden oben im Product Backlog aufgeführt. Bei Codecool fungieren die Mentor*innen als Product Owner, also erstellen und pflegen sie in der Regel das Product Backlog.
Sprint Backlogs enthalten die Aufgaben aus dem Product Backlog, die während des jeweiligen Sprints durchgeführt werden sollen. Sprint Backlogs werden bei Codecool von den Student*innen erstellt.
Scrum Master / Product Owner
Dieser Titel gehört zu der Person, die dem Team Scrum näherbringt. Ein Scrum Master ist den Werten und Prinzipien von Scrum verpflichtet und sorgt dafür, dass der Rahmen eingehalten wird.
Bei Codecool wählen die Student*innen einen Scrum Master aus ihrer Mitte, nachdem sie die Aufgaben und Prioritäten für den Sprint geplant haben. Diese Rolle wechselt wöchentlich, so dass sich jede*r in dieser Rolle ausprobieren kann.
Die Aufgabe des Scrum Masters ist es, den Fortschritt des Teams zu verwalten und mit dem Product Owner in Kontakt zu bleiben. Wenn Fragen auftauchen oder unerwartete Schwierigkeiten auftreten, verwaltet der Scrum Master und treibt die Dinge voran. Scrum Master in Codecool-Teams entwickeln auch selbst mit.
Bei Codecool fungieren die Mentor*innen als Product Owner, die in der Regel das Product Backlog erstellen und pflegen.
Tägliche Standups
Von dienstags bis donnerstags haben die Student*innen ihre Implementierungstage, an denen sie die für den Sprint geplante Entwicklung durchführen können. Jeden Morgen finden unter der Leitung des Scrum Masters tägliche Standups statt, bei denen sie sich über die täglichen Aufgaben abstimmen und den Stand des Projekts diskutieren.
Sprint-Reviews
Während der Sprint-Besprechungen haben die Entwicklungsteams die Möglichkeit, das Produkt des Sprints zu überprüfen und die funktionierende Anwendung oder Funktion den Kund*innen vorzuführen.
Freitags finden bei Codecool die Demo Days statt, die eine Gelegenheit bieten, die während des Sprints geleistete Arbeit zu reflektieren. Die Studierenden präsentieren das Ergebnis des Sprints vor Teamkollegen und – in der letzten Phase des Full-Stack-Development-Kurses – vor echten Kund*innen (Gäste von Codecool’s Partnerunternehmen).
Der Fokus bei den Demos liegt immer auf dem Üben von Präsentationsfähigkeiten, dem Geben von detailliertem, konstruktivem Feedback und der Diskussion von Learnings.
Rückblicke
Retrospektive Meetings werden abgehalten, um über die Vergangenheit zu reflektieren. Sie geben den Teams die Möglichkeit, aus den Rückschlägen zu lernen, die sie erlitten haben und die Chance, sich für die Zukunft zu verbessern. Sie finden normalerweise am Ende eines Sprints statt.
Nach den Freitagsdemos halten die Student*innen immer ein Retrospektiv-Meeting ab, das vom Scrum Master moderiert wird und in dem sie die Lehren aus dem Projekt des Sprints für sich selbst ableiten.
Programmieren lernen auf die Codecool-Art
Unser Full-Stack-Development-Kurs ist so konzipiert, dass er lebensnahe Arbeitsszenarien simuliert, denn unsere Methode zielt darauf ab, die Ausbildung näher an den Arbeitsplatz zu bringen. Und du benötigst keine besonderen Kenntnisse oder Fähigkeiten, um anzufangen. Du kannst den Kurs auch als Anfänger*in besuchen und sogar unsere Jobgarantie und Nachzahlungsmethode in Anspruch nehmen, um deine Zukunft zu sichern!
Du wirst während deiner gesamten Lernreise von professionellen, erfahrenen Mentor*innen unterstützt. Darüber hinaus wirst du mit einer Methode lernen, die tiefes Lernen und Wachstum fördert. Und durch praxisnahe Projekte und Szenarien lernst du Softwareentwicklung auf die effektivste und unterhaltsamste Weise.
Kontaktiere uns gerne, wenn du Fragen hast, wir würden uns freuen, von dir zu hören! Komm zu Codecool und machen in einem Jahr eine neue IT-Karriere.