Ich arbeite in einem Unternehmen, das wiederholt die Größe seines Entwicklungsteams reduziert hat, bis zu dem Punkt, dass frühere 10-Mann-Teams nur noch einen Entwickler pro Produkt haben (und ein paar Tester, die von 5 Produkten gemeinsam genutzt werden). Früher waren wir ziemlich prozesslastig, da wir ein Spin-off eines größeren Unternehmens waren, und haben seinen mehrstufigen Wasserfallprozess geerbt.
Das Führungsteam hat festgestellt, dass wir Software nicht schnell genug veröffentlichen und dass dies wahrscheinlich die Schuld des Prozesses ist (was möglicherweise einen Beitrag leistet, obwohl der 90% ige Verlust an Arbeitskräften wahrscheinlich nicht geholfen hat). Wir mussten dringend auf einen agilen Prozess umsteigen, um keine Zeit mit dem Schreiben von Designdokumenten usw. zu verbringen.
Ich bin wohl nur neugierig, ob ein Wechsel zu Agile bei Ein-Personen-Teams hilfreich ist. Nach meinem Verständnis ergeben sich viele Vorteile aus einer höheren Sichtbarkeit und einer besseren Kommunikation zwischen den Teammitgliedern, aber ich weiß, was ich tue, und mein Manager auch. Ich mache bereits TDD, da wir sowieso niemanden haben, der das Produkt testet.
TL; DR-Version: Ich denke, was ich wirklich frage, ist, können Sie Agile mit Einzelpersonen-Teams implementieren und sehen Sie irgendwelche Vorteile daraus, oder ist es normalerweise etwas, das für größere Teams effektiver ist?
1
Antworten:
Überprüfen Sie https://groups.google.com/forum/#!forum/solo-scrum
und /programming/829497/agile-methods-specically-taylored-to-working-solo
Update:
Der erste Link führt zur Solo Scrum Google Group. Der offensichtlichste Vorteil, über den hier gesprochen wird, ist die Verwendung von Sprints mit Zeitboxen, um den Umfang zu verwalten und die Projektgeschwindigkeit zu bestimmen - beides sehr gute Dinge.
Der zweite Link führt zu einer früheren Diskussion über Stackoverflow, die möglicherweise darauf hinweist, dass es sich um eine doppelte Frage handelt, aber ich dachte, es wäre sinnvoller, darauf zu verlinken. Es enthält wiederum Links zu http://c2.com/xp/ExtremeProgrammingForOne.html, das viele Links und Informationen zum Ausführen von XP Solo (ohne Paarprogrammierung) enthält.
quelle
einer
Die minimale Teamgröße ist eins
Agile ist eine Sammlung von Prinzipien und Praktiken, die Sie auswählen, um den Workflow anzupassen. Wenn Sie eine Ein-Mann-Show sind, wählen Sie, was für Sie funktioniert.
XP / TDD funktioniert hervorragend für Ein-Mann-Teams. Und Sie können die möglicherweise zeitraubenden Praktiken der täglichen Stand-up-Meetings und der Paarprogrammierung überspringen.
quelle
Ihr Hauptproblem ist nicht "agil werden", sondern Dokumentation. Dieser Artikel über Agile / Lean-Dokumentation von Scott Ambler wäre wahrscheinlich eine interessante Lektüre für Sie und Ihre Mitarbeiter.
Bei Agile geht es nicht darum, nicht zu dokumentieren. Sie dokumentieren immer noch, es ist nur so, dass Sie auswählen, was und wie Sie dokumentieren möchten, um den Wert zu maximieren und gleichzeitig den Zeitaufwand für die Erstellung zu minimieren. Sie erfassen weiterhin Anforderungen, führen das Design durch, dokumentieren Ihre Implementierungsentscheidungen und können bei Bedarf während des gesamten Lebenszyklus vollständig nachverfolgt werden, jedoch nur in dem Umfang, den das Projekt benötigt. Das Nichterfassen wichtiger Projektinformationen und -entscheidungen ist ein sicherer Weg, um ein Projekt zum Scheitern zu bringen.
Für einen lustigen kleinen Bonus, hier ist meine Einstellung zu Agilität für Einzelpersonen:
Die agilen Methoden sind für Teams konzipiert. Scrum benötigt normalerweise etwa 3-9 Entwickler zusammen mit einem Product Owner und Scrum Master (und der Product Owner und Scrum Master sollten nicht dieselbe Person sein). Extreme Programmierung erfordert oft 4-7 Personen.
Der Grund dafür ist, dass eine Reihe häufig verwendeter Praktiken in den gängigen agilen Methoden nicht auf einen einzelnen Entwickler reduziert werden können. Ein Paradebeispiel dafür ist die Betonung der Paarprogrammierung und der Codeüberprüfung in XP - mit einem Solo-Entwickler ist dies wirklich nicht möglich.
Ein einzelner Entwickler kann agil sein, aber es muss ein maßgeschneiderter Prozess sein. Die meisten agilen Methoden erfordern eine Kombination aus kontinuierlicher Integration, Unit-Tests, testgetriebener Entwicklung, Refactoring, KISS- und YAGNI-Prinzipien usw. Viele davon sind zu "Best Practices" geworden, selbst bei planmäßigeren Methoden. Es gibt keinen Grund, warum ein Solo-Entwickler einige von ihnen nicht nutzen kann, solange sie die Produktion und Bereitstellung von Software nicht beeinträchtigen.
quelle
Wenn Sie die Dokumentation einschränken möchten, würde ich mich darauf konzentrieren, wenn dies Sie zurückhält. Die Dokumentation ist nur ein Stück Agilität und es hört sich nicht so an, als ob jemand in Ihrem Unternehmen weiß, wie man sie umsetzt. Dies könnte Ihre Code-Veröffentlichung kurzfristig verzögern, da Schulungen, Buy-Ins, Anpassungen usw. durchgeführt werden. Die vorhandenen Kräfte werden es einfach wegwerfen und nach einer 90% igen Entlassung nach dem nächsten großen Allheilmittel für Produktionsverzögerungen suchen.
quelle
Ich komme aus einem Ein-Mann-Team (wenn auch hoffentlich nicht lange).
Ich bemühe mich, Agile für mich selbst in dem Sinne zu erreichen, dass ich beabsichtige, dass sie für zukünftige Projekte mehr Entwickler als nur ich selbst sind. Ich schreibe einen PSP auf hoher Ebene, erstelle User Stories, Aufgaben unter User Storys, Testfälle und verfolge Projekte so, dass mein Manager sie sehen und verstehen kann. Es kann etwas umständlich sein, weil ich in meinem Kopf "nur weiß", wo ich mich gerade befinde, aber ich nehme mir trotzdem die Zeit, es zu tun, nur um fleißig für das mythische zukünftige Team zu bleiben, das mir versprochen wurde, aber noch nicht stattgefunden hat. Ich würde gerne denken, dass ich bahnbrechende gute Prozesse für die Menschen bin, die nach mir kommen werden.
Dokumentation mache ich in kleinen Mengen und das sind meistens Flussdiagramme und Anwendungsfalldiagramme, aber im Allgemeinen nichts Niedriges, es sei denn, es ist etwas wirklich Kompliziertes oder Wichtiges daran, das ich nicht vergessen möchte. Ich mache auch Bereitstellungsdiagramme zum Nutzen zukünftiger Leute, wenn sie eine neue Umgebung für "Training" oder ähnliches einrichten müssen.
Ich bringe mir TDD langsam bei, aber ich habe es noch nicht perfektioniert. Es ist äußerst schwierig, dies im reinen Sinne für Legacy-Anwendungen zu tun, ohne große und riskante Funktionsbereiche neu zu gestalten. Komplizierte neue Funktionen, mit denen ich immer noch zu kämpfen habe, aber ich strebe immer noch eine 100% ige Abdeckung an, was schließlich das Endspiel von TDD ist. Ich kann jedoch nicht den besten Weg nehmen, um dorthin zu gelangen.
Es kann definitiv getan werden, aber meistens aus der Not heraus.
quelle
Warum Agile als Ein-Mann-Team, wenn Sie stattdessen ein einziges Team von fünf Entwicklern mit einem einzigen Produkt-Backlog für Ihre fünf Produkte bilden können? Probieren Sie ein- oder zweiwöchige Iterationen aus und konzentrieren Sie sich jeweils auf ein Produkt. Sehen Sie, wie sich Ihre Produktivität verbessert, wenn fünf Ingenieure als zusammenhängendes, selbstorganisierendes Team zusammenarbeiten. Je nachdem, wie oft Sie loslassen möchten, müssen Sie möglicherweise die Länge des Sprints anpassen. Ich vermute, das Unternehmen möchte möglicherweise nicht 10 Wochen zwischen den Aktualisierungen eines Produkts warten. In diesem Fall funktionieren die Sprintlängen von 1 Woche möglicherweise besser. Sie könnten in einem Sprint an zwei Produkten arbeiten, aber ich würde mein Bestes geben, um dies zu vermeiden, damit Sie sich auf ein einziges Produktziel konzentrieren und dies produktiv und mit Qualität tun können.
IMO mit einer einzelnen Person, die sich einem einzelnen Produkt widmet, ist wahrscheinlich ein unkluger Ansatz, wenn insgesamt fünf Entwickler und fünf Projekte vorhanden sind, unabhängig von der von Ihnen gewählten Methodik.
quelle
Viele agile Praktiken zahlen sich beispielsweise für Teams> 0 aus. Quellcodeverwaltung und reibungslose Entwicklung zahlen sich immer aus, egal wie klein das Team ist.
quelle
Dies hängt wirklich davon ab, ob es ein Buy-In von der Unternehmensseite gibt oder nur eine neue Sache, die das Management der Entwicklung zuschreibt (was sich nach der Situation anhört, basierend auf der Reduzierung der Teamgröße um 90%). Das
higher visibility and more communication between team members
heißt nicht nur zwischen Entwicklern. Für die Unternehmensseite ist es wichtig zu sehen, wohin Ihre Zeit geht, und die richtigen Prioritäten zu setzen.Das Vertrauen zwischen der Geschäfts- und der IT-Seite unseres Unternehmens hat enorm zugenommen, da jedes Team jetzt einen Product Owner hat, der an den täglichen Stand-ups teilnimmt und sieht, wohin unsere Zeit geht, und sie sind die diejenigen, die Entscheidungen darüber treffen, woran wir als nächstes arbeiten. Anstatt dass die Manager ständig mit Anfragen bombardiert werden und dann die Entwicklung beschuldigt wird, wenn die Dinge durch die Ritzen rutschen oder der Tag nicht genug Zeit hat, um alles zu erledigen, sind es jetzt die Product Owners, die für die Festlegung der Prioritäten und die Festlegung der Prioritäten verantwortlich sind Entscheidungen darüber, was in einem Sprint enthalten ist.
Wenn sich also die Produktbesitzer verpflichten, in den Prozess involviert zu sein, kann der Agile-Prozess selbst für ein Team von einem sehr effektiv sein. Aber wenn dies nur eine andere Möglichkeit ist, die Entwickler zu Sündenböcken zu machen, wird Agile für alle scheitern.
quelle