Ich bin kürzlich einem jungen Hackerspace beigetreten, der gerade dabei ist, sich selbst einzurichten. Wir haben das Glück, dass es in diesem Bereich einige interne Projekte gibt, an denen gearbeitet werden muss, und dass es nicht an Freiwilligen mangelt, die daran arbeiten.
Es gab einige Diskussionen darüber, wie diese Projekte organisiert werden sollen. Meine letzte Berufserfahrung war bei Scrum, daher überlege ich, einen Scrum-Ansatz für unsere Softwareprojekte zu entwickeln, bin mir aber nicht sicher, ob er gut dazu passt.
Obwohl ich gesehen habe, dass Scrum für kleine Vollzeit-Teams gut funktioniert, ist die Art dieser Organisation anders:
- Die Mitglieder sind Freiwillige . Einige sind Vollzeitstudenten. Andere arbeiten hauptberuflich. Wir können von niemandem einen konstanten Beitrag erwarten, da das wirkliche Leben Vorrang hat.
- Während so ziemlich jeder über jahrelange Erfahrung im Schreiben von Software verfügt, haben dies nicht viele Mitglieder professionell oder in Teams getan.
- Es gibt keinen Product Owner . Die Anforderungen für diese Projekte werden von einem Ausschuss festgelegt. Die Mitglieder dieses Ausschusses werden auch an der Umsetzung arbeiten. Dies bedeutet, dass wir keinen einzigen, engagierten Product Owner haben.
- Wir haben keine Fristen (weich oder hart). Die Projekte werden erledigt, wenn sie erledigt sind.
Dies sind ziemlich bedeutende Unterschiede, aber ich bin nicht überzeugt, dass sie die Anwendung von Scrum blockieren werden. Ich denke, dass uns kleinere Optimierungen über diese Hürde bringen könnten:
- Wenn wir Sprints ändern, um eine feste Story-Point-Größe, aber eine flüssige Dauer (Zeit) zu haben, können wir dennoch von iterativen Veröffentlichungen profitieren, ohne unrealistischen Übermittlungsdruck auf freiwillige Entwickler auszuüben.
- Wir können Burndown-Diagramme und Geschwindigkeitsberechnungen umgehen. Wenn ich das richtig verstehe, sind dies Tools und Metriken, die als Brücke zwischen dem Entwicklerteam und dem Management fungieren. Sie dienen dazu, den Fortschritt in einer Form zu melden, die sowohl für die Entwickler als auch für die Stakeholder von Bedeutung ist. In Anbetracht dessen, dass wir niemandem Bericht erstatten müssen (keinem Projektmanager, keinem Product Owner und keinen externen Stakeholdern), glaube ich, dass wir dies insgesamt fallen lassen können.
Dinge, von denen wir meiner Meinung nach profitieren könnten, die keine Optimierung erfordern:
- Die Besprechung (en) zum Sammeln von Anforderungen . Hier sitzen alle an einem Tisch und diskutieren User Stories, skizzieren UI-Mocks und erstellen ein Product Backlog.
- Sprint- Rückblicke . Dies wird eine interessante Möglichkeit für uns sein, uns auf einen Entwicklungsprozess zu konzentrieren, der für uns als Team von Freiwilligen funktioniert.
Dinge, bei denen ich mir nicht sicher bin:
- Wie sollen tägliche Stehübungen behandelt werden? Ich frage mich, ob sie in unserer Umgebung überhaupt einen hohen Stellenwert haben würden. Mein Verständnis des Stand-up-Rituals ist, dass es die Kommunikation unterstützt, indem es Informationen auf natürliche Weise im gesamten Team verbreitet. In Anbetracht der Tatsache, dass unsere Sprints wahrscheinlich eine viel geringere Komplexität als ein durchschnittlicher Sprint aufweisen, besteht möglicherweise weniger Bedarf, mit den Fortschritten / Entwicklungen aller anderen Teammitglieder Schritt zu halten.
- Sollte ich auf XP- Dinge wie Continuous Integration, Code Reviews und TDD drängen ? Ich bin besorgt, das wird viel verlangen. Ich wäre eher versucht, diese Konzepte in zukünftige Projekte einfließen zu lassen, wenn die Leute mit Scrum vertraut sind und im Team arbeiten.
Meine Fragen:
Kann Scrum an ein freiwilliges Umfeld angepasst werden?
Und geht mein geplanter Ansatz bislang in die richtige Richtung?