Prozesse

Dies sind die Prozesse, mit denen wir Ihr nächstes großes Projekt entwickeln.

Was ist Agile Entwicklung, warum und wann wird es verwenden?

Der Agile Softwareentwicklungsprozess ist eine adaptive Methodik, die auf einem fragmentarischen, repetitiven Ansatz basiert. Die agile Methodik berücksichtigt wechselnde Anforderungen während des gesamten Entwicklungsprozesses und erfordert ein ständiges Feedback und die Kommunikation mit dem Kunden. Ein engagiertes, funktionsübergreifendes Team von uns arbeitet über einen längeren Zeitraum an einem Fragment des Produkts (Sprint). Die Teammitglieder organisieren, verfolgen und koordinieren ihre Arbeit mit Tools wie Jira und kommunizieren regelmäßig mit dem Kunden.

Der Agile Prozess wird in der Regel für langfristige, umfangreiche Projekte oder Projekte mit undefinierten Endzielen eingesetzt. Die Ziele werden während des Entwicklungsprozesses klargestellt und aufgrund der Flexibilität von Agile können Änderungen an den Anforderungen bereits im Vorfeld des Projekts leicht angepasst werden.

Der Projektleiter koordiniert die Arbeit des Entwicklungsteams, sorgt für die Vermeidung von Engpässen und organisiert das Team, um den Termin jeder Iteration einzuhalten.

Im Gegensatz zum Wasserfallprozess entscheidet das Entwicklungsteam zu Beginn eines jeden Sprints grundsätzlich, was im Zeitrahmen erreicht werden kann und beginnt mit der Arbeit an einer Reihe von Features und einem funktionierenden Softwareprodukt, das am Ende des Sprints in einer Produktionsumgebung installiert werden kann. Die Flexibilität der Agile-Methoden ermöglicht es den Entwicklungsteams, den Ablauf an die Bedürfnisse des Projekts anzupassen. Das allgemeine Ziel jeder agilen Entwicklungsmethode ist es, sich an Änderungen anzupassen und funktionierende Software so schnell wie möglich zu liefern.

Agile Projekte erfordern eine regelmäßige Kommunikation und Rückmeldung des Kunden und der Teammitglieder während des gesamten Projekts, so dass die gleichen Fehler in den nächsten Iterationen vermieden werden.

Regelmäßige Kommunikation mit dem Kunden bringt mehr Aufmerksamkeit für visuelle Details und technische Leistung.

Das Projekt wird in kleinere Aufgaben aufgeteilt und auf die Teammitglieder verteilt. Dies ermöglicht es ihnen, sich auf die qualitativ hochwertige Entwicklung zu konzentrieren, Fehler schneller zu testen und zu beheben.

Vorteile der Agile Softwareentwicklungsmethodik

  • - Teile der Software werden in früheren Phasen geliefert, so dass der Kunde schneller einen Mehrwert erhält und Feedback geben kann.

  • - Änderungen und Korrekturen lassen sich leichter anpassen, auch in späteren Phasen.

  • - Die Aufgaben sind immer auf dem neuesten Stand, so dass weniger Ressourcen verschwendet werden.

  • - Kürzere Durchlaufzeiten

  • - Probleme und Fehler werden schneller erkannt und können in früheren Phasen leichter behoben werden.

  • - Basierend auf QA-Feedback können Entwickler ihre Programmierkenntnisse verbessern.

  • - Kunden, PMs, Entwickler und Tester kommunizieren ständig miteinander.

  • - Mehr Aufmerksamkeit wird auf technische Exzellenz und gutes Design gelegt.

Nachteile des agilen Projektmanagements

  • Agile hat viele Vorteile, aber es ist wichtig, sich der Nachteile bewusst zu sein.

  • - Manchmal wird die Dokumentation benachteiligt, so dass es für neue Mitglieder schwieriger ist, in das Projekt einzusteigen.

  • - Es ist komplizierter zu überprüfen und messen als im Wasserfall, da es über mehrere Zyklen hinweg geschieht.

  • - Der Verkaufszyklus ist komplizierter, da die Preise nicht zu Beginn des Projekts festgelegt werden können.

  • - Wenn ein Entwickler keine Arbeit mehr hat und Teil eines engagierten Teams ist, kann er/sie nicht an einem anderen Projekt arbeiten, da er/sie bald benötigt wird.

  • - Sie benötigen eine langfristige Vision des Projekts/Produkts und arbeiten aktiv an der Kommunikation mit dem Kunden.

  • - In einigen Fällen von Software-Ergebnissen, insbesondere größeren, ist es schwierig, den Aufwand zu Beginn des Entwicklungsprozesses abzuschätzen.

  • - Das Projekt kann leicht aus dem Ruder laufen, wenn der Vertreter des Kunden nicht klar ist, welches Ergebnis er will.

Wasserfallprozess

Die Wasserfallmethodik basiert auf einem sequentiellen, linearen Prozess und ist die beliebteste Variante des Systems Development Life Cycle (SDLC) für Software-Engineering und IT-Projekte. Es ist einfach und leicht zu bedienen. Manchmal wird ein Gantt-Diagramm verwendet, um das Start- und Enddatum der Aufgaben zu planen. In diesem Modell überschneiden sich die Phasen nicht, daher muss jede Phase abgeschlossen sein, bevor das Team zur nächsten Phase übergeht. Wenn das Team zu einer früheren Phase zurückkehren muss, sollte der gesamte Prozess von Anfang an beginnen. Um zu vermeiden, dass das Projekt oder das Projekt verworfen wird, sind die Anforderungen, Konzepte und Technologien sehr gut definiert und dokumentiert.

Diese Art von Softwareentwicklungsmodell wird in der Regel für kleine und unveränderliche Projekte mit klar definierten Anforderungen verwendet, und die Technologien sind bekannt und nicht dynamisch. Es ist nicht geeignet für Projekte mit unklaren Endzielen und Anforderungen oder langfristigen Projekten.

Die Ergebnisse jeder Phase werden überprüft, um festzustellen, ob das Projekt auf dem richtigen Weg ist und ob es fortgesetzt oder verworfen werden soll. Der QS-Test beginnt erst, wenn die Entwicklung abgeschlossen ist. Während des Entwicklungsprozesses ist weniger Kundeninteraktion erforderlich. Ein Demo-Produkt kann dem Kunden nur dann präsentiert werden, wenn das Produkt fertig ist.

Es gibt sieben Stufen im Wasserfall, die nacheinander durchgeführt werden müssen.

  • 1. Konzept und Anforderungen definieren: In der ersten Phase werden das Konzept und die Unternehmensziele in mehreren Gesprächen mit dem Kunden besprochen und definiert. Die Risikoanalyse erfolgt durch den Projektleiter. Wenn alles klar und dokumentiert ist, wird eine grobe Einschätzung und Bewertung des Projekts vorgenommen.

  • 2. Planung: Wenn das Konzept klar ist und die Anforderungen spezifiziert und dokumentiert sind, wird ein Team gebildet und eine Vorgehensweise geplant. Dazu gehört die Definition von Projektumfang, Terminen und Leistungen.

  • 3. UI/UX Design: Dieser Schritt ist nicht in den Fällen enthalten, in denen der Kunde mit seinem eigenen Design kommt. Ansonsten erstellt das Designteam zunächst die Architektur der Projekte und geht dann zu Farben, Formen und Animationen über. Die Designspezifikationen werden dann in der Codierungsphase verwendet.

  • 4. Entwicklung: Hier beginnt die eigentliche Codierung. Vor der eigentlichen Programmierung wird das Design überprüft und bewertet, so dass das Team verstehen und entscheiden kann, wie es vorzugehen hat.

  • 5. QA-Test: Nach Abschluss der Entwicklungsphase muss das Produkt auf optische und funktionale Fehler getestet werden. Einige Projekte erfordern einen Test der Benutzerakzeptanz.

  • 6. Lieferung: Sobald die Prüfung abgeschlossen ist und alle Fehler behoben sind, wird das Endprodukt an den Kunden geliefert.

  • 7. Wartung: Nachdem das Endprodukt zur Verwendung freigegeben wurde, können die Kunden zusätzliche Probleme finden. Das Entwicklungsteam muss die Software auflösen oder modifizieren, um weiterhin effektiv zu sein.

Vorteile des Wasserfalls

  • - Einfach zu verwalten und zu bedienen: Das lineare, unflexible sequentielle Muster der Wasserfallmethode macht die Anwendung einfach und erfordert eine detaillierte Dokumentation. Aufgrund der spezifizierten Leistungen und des Termins jeder Phase ist es auch einfacher zu verwalten und zu kontrollieren.

  • - Disziplin: Die Fokussierung auf die Anforderungen und das Design vor der Codierung kann das Risiko einer Terminüberschreitung reduzieren. Da jede Phase einen Start- und Endpunkt hat, ist es einfach, den Fortschritt mit dem Kunden zu teilen.

  • - Detaillierte Dokumentation: Jede Phase des Prozesses erfordert eine Dokumentation, was zu einem besseren Verständnis der Logik hinter dem Code und den Tests führt. Dies kann für zukünftige Projekte und wenn der Kunde mehr Details über eine bestimmte Phase wissen möchte, von Nutzen sein.

  • - Hohe Sichtbarkeit: Ein nachweisbares Produkt kann dem Kunden und dem Projektleiter nach jeder abgeschlossenen Phase präsentiert werden.

Nachteile des Wasserfalls

  • - Änderungen sind schwer umzusetzen: Der größte Nachteil der Wasserfallmethodik ist, wie sie mit Veränderungen umgeht. Nach Abschluss einer Phase ist es sehr schwierig, zwischen den Phasen zurückzugehen oder zu springen, selbst wenn es unerwartete Änderungen gibt. Wenn die Testphase erreicht ist und ein Feature fehlt, ist es sehr schwierig und teuer, zurück zu gehen und es zu reparieren. Manchmal kann dies dazu führen, dass das gesamte Projekt verworfen wird.

  • - Das Sammeln und Definieren von Endanforderungen kann eine Herausforderung sein: Die erste Phase des Wasserfallprozesses besteht darin, mit Kunden und Interessengruppen zu sprechen und alle Anforderungen und technischen Spezifikationen zu ermitteln. Das ist meist knifflig, denn oft wissen die Kunden nicht so früh, was sie wollen. Dies führt im weiteren Projektverlauf zu Änderungswünschen.

  • - Working Software wird erst spät geliefert: Damit die eigentliche Codierung beginnen kann, müssen zuvor zwei bis vier Stufen abgeschlossen werden. Daher können Kunden erst spät im Zyklus funktionierende Software sehen. Dies birgt ein hohes Maß an Risiko und Unsicherheit.

Alle Rechte vorbehalten 2018 © Infoleven