Bin ich als Entwickler bereit für Scrum?

Bin ich als Entwickler bereit für Scrum?
Scrum ist ein Frameset mit klaren Vorgaben, um die Entwicklung von Software im Team möglichst effizient zu gestalten. Dabei ändert es einige Vorgehensweisen (im Vergleich zur klassischen Software-Entwicklung), wie ein Team zusammenarbeitet und wo die Verantwortlichkeiten liegen. Als Entwickler ist man also nicht nur technisch gefordert, alle nötigen Fähigkeiten mitzubringen. Man muss auch gewisse Prozess- und Team-Skills besitzen (oder sich zumindest schnell aneignen).
In Scrum gibt es klare Rollenverteilungen, an die sich alle halten müssen. Neben dem Scrum Master als Berater und dem Product Owner als Projektleiter hat das Entwickler-Team klare Aufgaben und Verantwortlichkeiten. Diese klare Abgrenzung sorgt dafür, dass man in Scrum-Projekten komplexe Entwicklungen erfolgreich durchführen kann. Dazu zählen auch sich ändernde Anforderungen und Funktionalitäten, die erst im Laufe der Entwicklung klar werden.
Scrum erzeugt außerdem eine größtmögliche Transparenz aller Entwicklungsvorgänge. Die Daily-, Review- und Retrospektiv-Meetings sorgen dafür, dass alle Team-Mitglieder möglichst gut über alle Aktivitäten Bescheid wissen. Wer sich ungern in die Karten schauen lässt, ist für Scrum nicht geeignet. Hierbei gilt es auch, mit sachlicher Kritik richtig umgehen zu können.
Gute Scrum-Teams sind möglichst interdisziplinär mit Experten ihres jeweiligen Fachs besetzt. Das bedeutet, dass man auch mit Leuten zu tun hat, die andere Sichtweisen und Fachwissen einbringen. Als Entwickler sitzt man also nicht mehr im Elfenbeinturm nur unter seinesgleichen.
Notwendige Technische Skills
Gerade, weil ein Scrum-Team mit Experten besetzt ist, sollte man seinen Themenbereich beherrschen und die entsprechenden Fähigkeiten besitzen. Dazu gehören Basics wie die geforderten Programmiersprachen und Entwicklungsumgebungen, aber auch die notwendigen Programmiertechniken, Kenntnisse der notwendigen Frameworks und Pattern.
Ebenso sollte man mit den gängigen Testing-Methoden vertraut sein. Beim TDD (Test Driven Development) werden zuerst die Tests und dann erst die geforderten Funktionalitäten entwickelt. Gerade das Entwickeln von praxisorientierten Tests erfordert einige Erfahrung.
Vielfach wird auch erwartet, dass man sich schnell in neue Tools, Prozesse und Techniken einarbeiten kann und nicht darauf beharrt, das zu verwenden, was man kennt. Darüber hinaus erfordert die Entwicklung agile Engineering-Techniken, die schon bei der Erstellung berücksichtigen, dass sich die Anforderungen ändern können und man als Entwickler beim nächsten Sprint darauf reagieren muss.
Nicht zuletzt ist es von Vorteil, wenn man die Methoden des Extreme Programming kennt und selbst schon angewendet hat. Sie gehören zwar nicht fest zu Scrum als Framework, werden aber häufig in Scrum-Teams eingesetzt. Dazu gehört beispielsweise das Pair Programming, bei dem immer zwei Entwickler an einem Code-Stück arbeiten und sich gegenseitig verbessern und abwechseln.
Wichtige Team-Fähigkeiten für Scrum
Ein Scrum-Team organisiert sich eigenverantwortlich und eigenständig. Es gibt keinen Chef im Team. Jeder ist formal gleichberechtigt (was auch für Tester gilt). Dennoch muss das Team die Verantwortung für die zugesagten Leistungen übernehmen. Es arbeitet dazu zwar eng mit dem Product Owner und Scrum Master zusammen. Während eines Sprints hat sich jedoch der Product Owner rauszuhalten.
Für eine reibungslose Zusammenarbeit sollte ein Entwickler daher ein echter Teamplayer sein. Das heißt, er kann sich selbst und seine Kollegen motivieren, ist fähig, Kritik anzunehmen und selbst sachlich zu äußern, er muss Vertrauen in die Fähigkeiten der anderen Mitglieder haben und bei Fehlern nicht gleich an die Decke gehen.
Das bedeutet auch, es einmal auszuhalten, dass andere Aufgaben übernehmen, die man selbst machen wollte und Aufgaben erledigt, die vielleicht keine „Sahnestücke“ sind. Man muss auch die Vorgaben des Product Owners, was die Prioritäten der Entwicklung angeht, akzeptieren können. Ziel ist es immer, die Arbeit optimal zu verteilen, damit das Team seine beste Leistung erbringen kann.
Für das Review ist es wichtig, dass man das Erreichte verständlich erklären und darstellen kann. Außerdem sollte man Verbesserungsvorschläge machen und einbringen können, um das Team für den nächsten Sprint effektiver zu machen. Dies führt naturgemäß zu Veränderungen. Es ist also von zentraler Bedeutung, gegenüber Kritik und Änderungswünschen offen zu sein und sie annehmen zu können, wenn es dem Team dient. Genau das macht das Team agil.
Fähigkeiten für optimale Prozesse & Organisation
Scrum als Entwicklungsrahmen zeichnet sich dadurch aus, die eigene Herangehensweise und Prozesse ständig zu beobachten und Verbesserungen vorzunehmen, wo es möglich und sinnvoll ist.
Als Team-Mitglied sollte man daher in der Lage sein, bereits bestehende Prozesse ständig zu hinterfragen und Hindernisse zu erkennen, zu benennen und bereit sein, sie abzubauen. Auch hierbei ist es wichtig, in der Retrospektive Kritik sachlich und gut verständlich formulieren zu können. Dazu gehört aber auch, Kritik annehmen und umsetzen zu wollen. Da es im Team keinen Chef gibt, der einem die Entscheidung abnimmt, muss das im Diskurs mit dem Team geschehen.
Hilfreich dafür, dass das gelingt, ist eine klare und gewaltfreie Kommunikation. Wer in der Vergangenheit damit Schwierigkeiten hatte, sollte entsprechende Weiterbildungsmöglichkeiten wahrnehmen, um „gewaltfrei“ kommunizieren zu können.
Ganz wichtig sind natürlich auch organisatorische Fähigkeiten, seine eigene Arbeit vernünftig strukturieren und priorisieren zu können. Hierbei hat das Schätzen von Aufwänden für die Realisierung der geforderten Funktionalitäten eine besondere Rolle, um das Sprint-Ziel nicht zu gefährden. Ist man hier noch eher unerfahren, sollte man auf seine Kollegen hören.
Generell ist es für die Zielerreichung hilfreich, selbst schnell entscheiden zu können, ob man eine Schwierigkeit selbst überwinden kann oder dafür besser Hilfe von Kollegen in Anspruch nehmen sollte, damit das Team als Ganzes erfolgreich sein kann. Hierzu sind die Daily Meetings das richtige Forum, um seine Kollegen einzubinden.
Sich in Scrum schulen und zertifizieren lassen
Scrum hat letztlich wenige und recht einfache Regeln, kann in der Anwendung jedoch relativ komplex werden. Wer nach der Lektüre dieses Beitrags der Meinung ist, noch nicht wirklich reif für Scrum zu sein, kann sich natürlich weiterbilden.
Eine anerkannte Zertifizierung als „Certified Scrum Developer“ bieten diverse Organisationen an, unter anderem auch die Scrum Alliance.
Einen gut gelungenen Einstieg in Scrum bietet außerdem der offizielle Scrum-Guide der Scrum-Erfinder Ken Schwaber und Jeff Sutherland. Es erklärt sehr gut die verschiedenen Begriffe und auch die Ziele, die mit Scrum erreicht werden sollen.
Was Auftraggeber sicherstellen müssen
Als Freelancer muss man sich aber nicht nur fragen, was man selbst an Fähigkeiten mitbringen muss. Auch der Auftraggeber ist in der Pflicht, seine Scrum-Teams so aufzustellen, dass eine vernünftige Umsetzung der Scrum-Rahmenbedingungen möglich ist und auch tatsächlich erfolgt. So wird gerne der Product Owner und Scrum Master in Personalunion implementiert, was zu größeren Interessenskonflikten führt. Scrum funktioniert am besten, wenn man sich strikt an die vorgegebenen Regeln hält. Team-Mitglieder dürfen in einem Sprint nicht ständig abgezogen und für andere Zwecke eingesetzt werden, was natürlich auch für Freelancer gilt.
Außerdem müssen Auftraggeber auch willens und in der Lage sein, berechtigte Kritik aus den Review- und Retrospektive-Meetings anzunehmen und umzusetzen (auch wenn dies mit Kosten verbunden ist), um das Team nicht zu demotivieren und es ihm zu ermöglichen, sich ständig zu verbessern.
Fazit
Für Scrum sind als Entwickler nicht nur technische, sondern vor allem auch soziale, organisatorische und Team-Fähigkeiten gefragt, weil es viel mehr Transparenz und Vernetzung erfordert. Mit den passenden Schulungen und vernünftigen Rahmenbedingungen kann man aber extrem effektiv neue Software entwickeln. Wer die genannten Fähigkeiten größtenteils mitbringt, ist für Scrum gut gerüstet.