Mit welchen agilen Softwareentwicklungsmethoden hatten Sie den größten Erfolg?[geschlossen]

StackOverflow https://stackoverflow.com/questions/6579

  •  08-06-2019
  •  | 
  •  

Frage

Es gibt zahlreiche Agile Software Entwicklung Methoden.Welche haben Sie in der Praxis eingesetzt, um ein erfolgreiches Projekt durchzuführen, und wie hat die Methode zu diesem Erfolg beigetragen?

War es hilfreich?

Lösung

Ich habe mit einigen Organisationen zusammengearbeitet, die behaupteten, „agil“ zu arbeiten, und ihre Prozesse schienen normalerweise auf XP (extreme Programmierung) zu basieren, aber keines von ihnen befolgte jemals auch nur annähernd alle Praktiken.

Dennoch kann ich wahrscheinlich einige der XP-Praktiken kommentieren

  • Unit-Tests scheint sich als sehr nützlich zu erweisen, wenn es gleich zu Beginn eines Projekts durchgeführt wird, aber es scheint sehr schwierig zu sein, in eine bestehende Codebasis einzusteigen und zu versuchen, Komponententests hinzuzufügen.Wenn Sie die Möglichkeit haben, bei Null anzufangen, ist die testgetriebene Entwicklung eine echte Hilfe.

  • Kontinuierliche Integration scheint eine wirklich gute Sache zu sein (oder besser gesagt, das Fehlen davon ist wirklich schlecht).Allerdings waren die Organisationen, die ich gesehen habe, normalerweise so klein, dass jeder andere Ansatz dumm erscheinen würde.

  • User-Story-Karten sind insofern nett, als es toll ist, ein physisches Objekt zu haben, das man zur Priorisierung herumwerfen kann, aber sie sind bei weitem nicht detailliert genug, es sei denn, Ihr Entwickler kennt die Domain wirklich oder Sie haben einen Kunden vor Ort (was ich eigentlich noch nie gesehen habe) .

  • Standup-Meetings Für neue Teammitglieder sind sie in der Regel sehr nützlich, um alle kennenzulernen und herauszufinden, woran sie arbeiten.Die alten Hasen lassen sehr schnell nach und sagen einfach Dinge wie „Ich arbeite immer noch an

  • Refactoring ist mittlerweile ein wirklich falsch verwendeter Begriff, aber wenn Sie über genügend Komponententests verfügen, ist es wirklich nützlich, die Aktivität „Ändern des Designs des vorhandenen Codes ohne Änderung der Funktionalität“ und „Hinzufügen neuer Funktionalität“ konzeptionell zu trennen.

Andere Tipps

Scrum, weil es zeigt, wo die Faulenzer sind.Außerdem wird viel schneller erkannt, dass die Geschäftseinheit normalerweise keine Ahnung hat, was sie wirklich liefern möchte

Gedränge.

Das tägliche Standup-Meeting ist eine großartige Möglichkeit, um sicherzustellen, dass die Dinge auf dem richtigen Weg bleiben und Fortschritte erzielt werden.Ich denke auch, dass es wichtig ist, die Produkt-/Marktleute auf echte und sinnvolle Weise in den Prozess einzubeziehen.Es wird eine kollaborativere Umgebung schaffen und einen Großteil des widersprüchlichen Mülls beseitigen, der entsteht, wenn das Produktteam und die Entwicklungsteams getrennte „Silos“ sind.

Regelmäßige Retrospektiven sind eine großartige Möglichkeit, einem Team dabei zu helfen, effektiver/agiler zu werden.Über die Einhaltung einer bestimmten Agile-Variante hinaus kann diese Vorgehensweise einem Team dabei helfen, herauszufinden, was gut funktioniert, und sich an eine sich verändernde Umgebung anzupassen.

Stellen Sie einfach sicher, dass die Person, die die Retrospektive leitet, weiß, was sie tut, sonst kann es zu einer Beschwerdesitzung ausarten.

Es gibt eine Reihe von Übungen, durch die Sie ein Team führen können, um ihm dabei zu helfen, über die Retrospektive nachzudenken und daraus einen Mehrwert zu ziehen.Ich schlage vor, sich das Interview mit anzuhören Linda steigt auf Software Engineering Radio für eine gute Einführung.

Für weitere Informationen führen Sie eine Google-Suche nach „Heartbeat retrospectives“ durch.

Ich habe mit einem Team zusammengearbeitet, das XP- und Scrum-Praktiken verwendet, gespickt mit etwas Lean.Es war sehr produktiv.

Tägliches Aufstehen- hilft uns, den vollständigen Überblick darüber zu behalten, woran alle arbeiten und woran sie gerade arbeiten.

Paar-Programmierung- hat unsere Codebasis verbessert und dazu beigetragen, „alberne“ Fehler zu beseitigen, die in das System eingeführt wurden.

iterative Entwicklung- Die Verwendung von einwöchigen Iterationen hat dazu beigetragen, unsere Geschwindigkeit zu verbessern, indem wir direktere Ziele gesetzt haben, was uns auch bei der Größe von Anforderungen geholfen hat

TDD- hat mir geholfen, meine Art zu programmieren zu ändern, jetzt schreibe ich keinen Code mehr, der einen fehlerhaften Test nicht behebt, und ich schreibe keinen Test, der keine klar definierten Anforderungen hat.Wir haben auch ausführbare Anforderungen verwendet, was Entwicklern und BAs wirklich dabei geholfen hat, ein Verständnis für die Anforderungen zu erlangen.

Kanban-Tafeln- Zeigen Sie in Echtzeit, wo wir sind.Wir haben sowohl einen für den Milestone als auch für die aktuelle Iteration.Auf einen Blick sehen Sie, was noch zu tun ist, was getan wird und was getan und akzeptiert wird.Wenn Sie in Ihrem täglichen Standup nicht über etwas berichten, das sich auf die Inhalte an der Tafel bezieht, müssen Sie Erklärungen abgeben.

zusammensitzendes Team- Jeder ist auf dem Laufenden und weiß, was alle anderen tun.Die Kommunikation erfolgt just-in-time, sehr produktiv, ich vermisse meinen Cube überhaupt nicht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top