Agile Software-Entwicklung 101

Autor: Judy Howell
Erstelldatum: 26 Juli 2021
Aktualisierungsdatum: 12 Kann 2024
Anonim
What is Agile? | Agile Methodology | Agile Frameworks - Scrum, Kanban, Lean, XP, Crystal | Edureka
Video: What is Agile? | Agile Methodology | Agile Frameworks - Scrum, Kanban, Lean, XP, Crystal | Edureka

Inhalt


Wegbringen:

Diese Softwareentwicklungsmethode fördert die Zusammenarbeit und Flexibilität, um ein qualitativ hochwertiges Produkt zu liefern.

In der Welt des Software-Engineerings und der Anwendungsentwicklung herrschte reges Treiben um Agile. Agile ist kein Konzept, sondern eine Denkweise. Wie der Name schon sagt, konzentriert es sich darauf, flexibel und dynamisch zu sein. Diese Methode hebt auch die Isolation zwischen den Phasen der Softwareentwicklung auf und ermutigt das Entwicklungsteam, mit Qualitätsanalysten zusammenzuarbeiten. Es wird auch die Einbeziehung der Kunden in die Entwicklung, den Bau und die Lieferung eines qualitativ hochwertigen Produkts betont. Schauen Sie sich hier Agile an, wie es funktioniert und einige bewährte Methoden für diese beliebte Softwareentwicklungsmethode.

Ein kurzer Überblick über den Lebenszyklus der Softwareentwicklung

Der Software Development Lifecycle (SDLC) ist der Prozess des Erstellens von Softwarelösungen oder des Modifizierens der vorhandenen Strukturen, um einem bestimmten Problem gerecht zu werden. Es umfasst verschiedene Schritte, die in einer logischen Reihenfolge ausgeführt werden. In herkömmlichen SDLC-Modellen werden diese Schritte nacheinander ausgeführt und in der Regel isoliert ausgeführt:


  1. Bedarfserfassung bei den Kunden
  2. System- und Machbarkeitsanalyse
  3. Design und Modellierung
  4. Codierung oder Implementierung
  5. Testen
  6. Bereitstellung und Lieferung
  7. Wartungs- und Änderungswünsche

In einem typischen Softwareentwicklungszyklus werden die tatsächlichen Benutzer oder Kunden in den Prozess der Anforderungserfassung und anschließend in den Betatest einbezogen. Das Problem bei diesem traditionellen Modell ist jedoch, dass der Wartungsteil des Zyklus eine schwierige und ziemlich teure Angelegenheit wird. Oft gibt es keinen Spielraum für Verbesserungen oder Änderungen innerhalb des Systems. Im schlimmsten Fall entspricht die entwickelte oder entwickelte Software nicht den tatsächlichen Kundenspezifikationen und -erwartungen, sodass das Entwicklungsteam möglicherweise den gesamten Prozess neu starten muss.

Warum agile Entwicklungen anders sind

Die gängigsten traditionellen SDLC-Modelle - das Wasserfallmodell, das Rapid Application Model, das iterative Modell, das Spiralmodell usw. - haben ihre eigenen Vor- und Nachteile. Es dauerte eine Ewigkeit, bis die Menschen tatsächlich analysieren konnten, wie realistisch diese Modelle waren. Sie passen perfekt zu idealen Szenarien, waren aber nicht immer praktisch, wenn es um reale Anwendungen ging. Infolgedessen standen die Softwareentwicklungsteams vor großen Herausforderungen. Zu den Einschränkungen herkömmlicher SDLC-Modelle gehören:


  • Sie erlauben es nicht, Anforderungen zu einem späteren Zeitpunkt zu ändern, da diese im Spezifikationsdokument für Softwareanforderungen eingefroren sind. In bestimmten Fällen werden die Erwartungen der Benutzer nicht angegeben oder missverstanden.
  • Die Endbenutzer sehen das System erst, wenn es vollständig ist. Dies bietet nur sehr wenig Raum für Vorschläge und Änderungen.
  • Traditionelles SDLC kann eine große Kommunikationslücke zwischen Entwicklern und Testern schaffen, da es sich um separate Phasen handelt und keine Zusammenarbeit zwischen den beiden Parteien besteht.
  • White-Box-Tests können nicht effektiv durchgeführt werden.

Die Verwendung von Agile löst viele dieser Probleme, da es sich nicht um einen schrittweisen Prozess handelt, sondern vielmehr um eine Philosophie und ein Framework, mit dem Teams zusammenarbeiten, auf Änderungen reagieren und ein fertiges Produkt erstellen können, das mehr Input von allen enthält Parteien, einschließlich der Benutzer.

Agile Praktiken

Das Aufkommen der agilen Methodik ist nicht weniger als eine revolutionäre Reform der Softwareentwicklungsmethodik, da sie den Projektteams genügend Raum bietet, kreativ und vielseitig zu sein, während sie gleichzeitig die gemeinsame Verantwortung für jede Phase des Produkts übernehmen. Indem Sie dem agilen Pfad folgen, können einzelne Teilnehmer des Softwareentwicklungsteams ihren Verstand dahingehend konditionieren, dass sie Unsicherheit annehmen, Änderungen bewältigen und ein besseres Produkt als Prozess entwickeln, anstatt in diskreten, nicht verbundenen Schritten.

Obwohl es keine umfassende Liste agiler Prinzipien gibt, gibt es bestimmte Praktiken, die von Agile propagiert werden. Diese schließen ein:

  1. Test Driven Development (TDD)
    Im Idealfall sollten Entwickler zunächst Testfälle für die Funktionalität schreiben, für die sie programmieren möchten. Dies stellt eine gute Codequalität sicher, die unter außergewöhnlichen Bedingungen weniger wahrscheinlich ist. Dieser Prozess trägt auch dazu bei, sicherzustellen, dass die Benutzerspezifikationen berücksichtigt wurden.
  2. Paar-Programmierung
    In der agilen Entwicklung arbeiten Programmierer im Allgemeinen paarweise an demselben Problem, wobei eine Person den Code schreibt (Treiber) und die andere den Code überprüft und Ideen und Vorschläge bereitstellt (Navigator). Dies erhöht die Produktivität und verringert die Zeit, die zum Überprüfen von Code erforderlich ist.
  3. Code Refactoring
    Beim Code-Refactoring wird der Code in kleinere und einfachere Module zerlegt, die im idealen Szenario unabhängig voneinander existieren können (und sollten). Dies verbessert die Lesbarkeit, Testbarkeit und Wartbarkeit des Codes in hohem Maße.
  4. Aktive Teilnahme von tatsächlichen Stakeholdern
    Nach regelmäßigen Intervallen eines bestimmten Zeitraums (als "ss" bezeichnet) sollten Kunden einen funktionsfähigen Prototyp der Software erhalten. Dies ermöglicht Entwicklern, Feedback zu erhalten, was sie gerade erstellen.
  5. Behandle Anforderungen als priorisierten Stapel
    In Agile ist es wichtig, Anforderungen anhand ihrer Wichtigkeit zu kategorisieren. Dies kann sowohl implizite als auch explizite Kundenerwartungen an das zu entwickelnde Softwareprodukt beinhalten. Das Softwareentwicklungsteam sollte den Zeit- und Ressourcenaufwand für die Implementierung der Funktion kollektiv abschätzen und diesen basierend auf den Benutzeranforderungen und der relativen Reihenfolge, in der die einzelnen Teile des Projekts bearbeitet werden, zuordnen.
  6. Regressionstests
    Beim Regressionstest wird die Funktionalität einer gesamten Anwendung getestet, nachdem eine neue Funktion hinzugefügt oder die vorhandene Funktionalität im Code geändert wurde. Dies hilft sicherzustellen, dass die Änderungen den vorhandenen Code nicht beschädigt haben.

Warum agil werden?

Agile schreibt bestimmte Vorgehensweisen vor, erzwingt sie jedoch nicht für ein Softwareentwicklungsteam. Denn wenn es keinen Spielraum für Anpassungen und Abweichungen gibt, wird der Zweck von Agile weitgehend zunichte gemacht. Die Einbeziehung einiger Aspekte der agilen Entwicklung in ein Projekt kann Softwareentwicklungsteams dabei unterstützen, unvorhergesehene Herausforderungen zu meistern und letztendlich ein besseres Produkt auf effizientere Weise zu entwickeln.

Keine Bugs, kein Stress - Ihre schrittweise Anleitung zur Erstellung lebensverändernder Software, ohne Ihr Leben zu zerstören

Sie können Ihre Programmierkenntnisse nicht verbessern, wenn sich niemand um die Softwarequalität kümmert.