Hinweis: Der folgende Artikel hilft Ihnen dabei: Was ist agile Methodik?
Sie müssen angemessen auf neue Chancen und Märkte, wirtschaftliche Entwicklungen und die Entstehung neuer wettbewerbsfähiger Produkte und Dienstleistungen reagieren.
Die Software durchdringt jede Branche und ist weniger erfolgreich, und die zu entwickelnde Software nutzt neue Technologien und hat das Potenzial, ihre Konkurrenten auf dem umkämpften Markt zu besiegen.
Eines der wichtigsten Anliegen von Organisationen ist die schnelle Bereitstellung und Veröffentlichung der Software, die in erheblichem Umfang Softwareentwicklung betreiben. Aber der spannende und zum Nachdenken anregende Punkt liegt in der einzigartigen Interaktion und dem Index agiler Methoden mit den Konzepten von Startups, unglaublich schlanken Startups.
Dieser Artikel ist einer der Artikel der speziellen Datei „Methoden, Muster und Softwarearchitektur“, Nummer 207 des monatlichen Netzwerks. Interessierte können diese gesamte spezifische Datei von der Netzwerkseite herunterladen.
Ein wesentlicher Grundsatz in der Welt der Software besagt, dass man niemals ein vollständiges Softwareprodukt produzieren kann, das alle Benutzeranforderungen erfüllt. Softwareunternehmen wissen, dass die Kunden von heute das Produkt, das sie benötigen, schnell und in höchstmöglicher Qualität erhalten möchten. Das sind die Bedürfnisse, die sich ständig ändern.
Heutzutage sind die Kunden von Softwareunternehmen zu dem Schluss gekommen, dass es unmöglich ist, die Auswirkungen eines Produkts auf die Aktivität der Mitarbeiter und den gesamten Komplex vor seinem praktischen Einsatz zu bewerten.
Genauer gesagt wissen Kunden, die ein Produkt bestellen, nicht genau, wie die neue Software, die sie gesammelt haben, mit anderen Systemen kommuniziert und welche Aktivitäten ihrer Mitarbeiter durch den Einsatz der neuesten Software vollständig beeinträchtigt werden.
Ein Softwareprodukt offenbart seine Mängel erst dann, wenn es vollständig bereitgestellt ist und die Mitarbeiter damit arbeiten.
Das Entwerfen und Einrichten einer Website ist ein klares Beispiel in diesem Bereich.
Ein wichtiger Punkt, den Softwareunternehmen berücksichtigen sollten, ist die Verwendung eines geeigneten Modells für die Softwareentwicklung. Bei der ersten Begegnung mit dem Kunden und der von ihm gestellten Anfrage sollte man schnell verstehen, welches Modell ideal für die Herstellung des Produkts ist.
Sie sollten stets auf diesen wichtigen Grundsatz achten, dass Ihre Kunden nach Vertragsunterzeichnung und während des Entwurfs oder der Implementierung der Software ihre Anfrage ändern oder eine neue Anfrage stellen können; In einer solchen Situation muss das System erneut bearbeitet und getestet werden.
In solchen Fällen verlängert die Verwendung eines durchschnittlichen Kaskadenmodells oder eines Prozesses, der auf grundlegenden und festen Merkmalen basiert, in der Praxis die Produktdesignzeit und kann die Produktlieferzeit verzögern.
Die Wahl der richtigen Methodik ist der Schlüssel zum Erfolg Ihres Unternehmens.
Unternehmen, insbesondere Startups, beginnen ihre Arbeit in einem Umfeld, in dem Geschwindigkeit an erster Stelle steht. Dieses Problem könnte aus zwei verschiedenen Perspektiven untersucht werden. Der im vorherigen Absatz erwähnte Fall ist eines der häufigsten Probleme von Softwareunternehmen.
Wenn ein Unternehmen nicht angemessen reagiert oder diese sich ändernden Kundenwünsche ignoriert, verliert es leider innerhalb kürzester Zeit seinen Kunden. Denn die Mundpropaganda-Marketingtechnik (ein effektives Startup-Marketingmodell) wird nach hinten losgehen und den Ruf des Unternehmens ruinieren.
Aber ein weiterer wichtiger Punkt, den Sie beachten sollten, insbesondere wenn Sie ein Start-up-Unternehmen sind, betrifft die pünktliche Produktlieferung.
Der wichtigste Faktor, der zum Scheitern von Startups und jungen Softwareunternehmen führt, ist eine Verzögerung. Ihr Unternehmen hat ein Produkt entwickelt, aber wenn die Software verfügbar und einsatzbereit ist, haben sich der Hauptgrund und die Idee, auf der die Software basiert, geändert, und die Software ist zu einem nutzlosen Produkt geworden.
Für bestimmte Unternehmen nutzen wir schnelle Softwareentwicklungs- und Bereitstellungsprozesse. Obwohl es viele Methoden für die schnelle Softwareentwicklung gibt, haben sie alle einige wesentliche Merkmale gemeinsam.
Diese Funktionen sind wie folgt:
- Dokumentation, die hauptsächlich in der Programmierumgebung geschrieben wird. Design und Umsetzung erfolgen gleichzeitig. In diesen Modellen gibt es keine Details zu den Systemfunktionen und das Design der Dokumentationserstellung ist minimal.
- Das System ist im Zustand der inkrementellen Entwicklung konzipiert. Endbenutzer und andere Systembeteiligte bestimmen und bewerten jeden Schritt. Sie können Änderungen am System einführen oder neue Anforderungen bereitstellen, die in späteren Entwicklungsphasen implementiert werden sollten.
- Systembenutzeroberflächen werden in den meisten Fällen mithilfe eines evolutionären Entwicklungssystems erstellt, das eine schnelle Erstellung von Schnittstellendesigns mithilfe von Symbolen und Bildern ermöglicht. Die Methode kann eine webbasierte Schnittstelle für einen Browser oder eine Schnittstelle für eine bestimmte Plattform wie Microsoft Windows generieren.
Inkrementelle und schnelle Entwicklungsmethoden, die wir in den vergangenen Ausgaben des Magazins (193 und 189) erwähnt haben, umfassen die Produktion und Bereitstellung von Software in einem inkrementellen Modus anstelle eines einzelnen Produkts.
Jeder iterative Prozess erzeugt ein neues inkrementelles Produkt.
Das inkrementelle Modell bringt einen wesentlichen Vorteil in der Softwareentwicklungszeit mit sich: eine schnelle Produktlieferung an den Kunden.
Frühe inkrementelle Versionen eines Produkts können Kunden die Funktionen zeigen, die eine höhere Priorität haben, sodass Kunden den wahren Wert des Systems durch frühe Versionen erkennen können. Durch die Betrachtung des Produkts können Kunden sehen, ob ihre Bedürfnisse in der Entwicklung umgesetzt wurden und ob Änderungen erforderlich sind, die in den folgenden Versionen des Produkts übernommen werden sollten oder nicht.
Die Interaktion des Kunden mit Systementwicklern sollte im inkrementellen Entwicklungsprozess berücksichtigt werden, da diese dem Entwicklungsteam Feedback geben müssen, damit das Feedback auf nachfolgende Gesamtinstanzen angewendet werden kann.
Die Beteiligung dieser Menschen bedeutet jedoch nicht, dass das System wahrscheinlich entsprechend ihren Bedürfnissen gestaltet wird. Vielmehr garantiert es, dass das System entsprechend seinen beabsichtigten Märkten funktioniert. Abbildung 1),
Es zeigt ein Modell eines inkrementellen Entwicklungsprozesses. Beachten Sie, dass der Schwerpunkt dieses Prozessmodells auf dem Architekturentwurf in den frühen Phasen liegt. Angenommen, die Architektur wird zu Beginn dieser Prozesse nicht berücksichtigt. In diesem Fall wird die Gesamtstruktur des Systems wahrscheinlich instabil sein und auch die erstellten inkrementellen Entwicklungsmodelle werden instabil sein.
Agile Methoden
In den 1980er und frühen 1990er Jahren herrschte die Ansicht vor, dass der beste Weg, Software von höchster Qualität zu erstellen, darin bestehe, Methoden zu verwenden, die CASE-Tools unterstützten. Tools, die Entwicklungsteams eine detaillierte Kontrolle über Softwareentwicklungsprozesse ermöglichen. Diese Ansicht wurde hauptsächlich von der Gemeinschaft der Ingenieure vertreten, die große Projekte entwerfen und bauen.
Menschen, deren Aufgabe es war, langlebige Systeme zu bauen, die durch die Kombination vieler Einzelkonstruktionen entstanden. Im Jahr 2001 entstand eine Gemeinschaft von Softwareentwicklern und Befürwortern leichtgewichtiger Methoden, die versuchten, Merkmale und Indikatoren auf der Grundlage leichter Methoden zu identifizieren.
Diese Vereinigung kam zusammen, um zu einem kohärenten und einheitlichen Standpunkt zu gelangen, und veröffentlichte schließlich eine gemeinsame Erklärung namens „Manifest“. Mit dieser Erklärung wurden eine Reihe von Prinzipien, Werten und Regeln für die schnelle Entwicklung von Software eingeführt, die als Prinzipien der agilen Methodik bekannt wurden.
Zu den wichtigsten Grundsätzen, die in dieser gemeinsamen Erklärung hervorgehoben werden, gehören:
- Wir sorgen für Kundenzufriedenheit durch schnelle und kontinuierliche Bereitstellung von Software.
- Ich bin flexibel gegenüber Änderungen, auch wenn sich die Projekte in der letzten Entwurfsphase befinden.
- Sie veröffentlichen in regelmäßigen Abständen Testversionen der Software.
- Wir stellen eine konsistente Kommunikation zwischen Benutzern und dem Softwareentwicklungsteam her.
- Zitierfähige Dokumentation.
- Unterstützen Sie einen einheitlichen und stabilen Produktionsprozess
- Beschäftigung spezialisierter und qualifizierter Mitarbeiter
- Vereinfachen Sie Aufgaben, indem Sie unnötige Elemente eliminieren
- Untersuchung der Leistung und Effizienz des Teams in bestimmten Zeiträumen
Im Allgemeinen besteht das agile Softwareentwicklungsmodell aus einer Reihe von Softwareentwicklungsmethoden, die auf einer schrittweisen und iterativen Entwicklung basieren – einer Gruppe, in der Lösungen durch Selbstorganisation und Zusammenarbeit zwischen Teams erzielt werden.
Genauer gesagt ist die agile Methodik ein konzeptioneller Rahmen, der versucht, die Interaktion zwischen Kunden und dem Entwicklungsteam während des gesamten Entwicklungszyklus aufrechtzuerhalten. Unter den wesentlichen Modellen, die auf der agilen Methodik basieren, können wir inkrementelle, kooperative, unkomplizierte, adaptive usw. Modelle nennen. Abbildung (2) zeigt das elegante Entwicklungsmodell.
Heute kommen projektbezogen verschiedene Leichtbau-Entwicklungsmodelle zum Einsatz. Einige der bekanntesten Modelle lernen Sie im Folgenden kennen.
ASD Sarnam (Adaptive Softwareentwicklung)
Adaptive Softwareentwicklung ist einer der Softwareentwicklungsprozesse, die Jim Highsmith und Sam Baier entwickelt haben. (Figur 3)
ASD wurde als Alternative zum traditionellen kaskadierten Schwergewichts-Entwicklungsmodell vorgeschlagen. Dieses Modell wird zum Aufbau komplexer Systeme und Software verwendet. Dieses Modell basiert auf zwei Hauptideen: der Natur der komponentenbasierten Anpassung und der Gruppenkooperation. Spekulation, Zusammenarbeit und Lernen aus den drei Hauptphasen dieses Modells. In diesem Modell wird in der Primärphase ein Wiederholungsmuster verwendet.
Es handelt sich um eine Methodik zur Dokumentation und Modellierung von Softwaresystemen, bei der stets die Auswahl der besten Methoden im Vordergrund steht. Dieses Modell besteht aus Prinzipien und Werten, die bei einem agilen Softwareentwicklungsprojekt verwendet werden. Diese Methodik ist flexibler als herkömmliche Methoden. Dadurch passt es besser zu Systemen, in denen Änderungen schnell vorgenommen werden. AM ist als Teil der agilen Softwareentwicklungssuite bekannt. (Figur 4)
Kristallfamilie
Die Crystal-Methodik ist eine der leichtesten und vielseitigsten Methoden für die Softwareentwicklung. Crystal Clear ist ein Mitglied der von Alistair Cockburn entwickelten Crystal-Methodenfamilie. Der Kristall besteht aus einer Reihe agiler Lösungen wie Clear Crystal, Crystal Yellow, Crystal Orange usw., von denen jede ihre eigenen Eigenschaften hat, die von mehreren Faktoren wie Teamgröße, Projektpriorität und Projektsensibilität abhängen.
Es gibt Unterschiede. Dieses Modell eignet sich grundsätzlich für Teams mit 6 oder 8 Personen und nicht allzu sensiblen Systemen. Bei Crystals Familie stehen Menschen im Mittelpunkt und nicht Prozesse oder Produkte. Zu den positiven Eigenschaften dieser Methode zählen die Grundlagen des Designs und die Möglichkeit, je nach Größe und Sensibilität des Projekts die am besten geeignete Methode auszuwählen. Abbildung (5) zeigt die Familie dieses Modells.
Disziplinierte, agile Lieferung
Der Lebenszyklus im Rahmen von DAD besteht aus drei Hauptphasen: Anfang, Aufbau und Übergang; Jede dieser drei Phasen hat ihre eigenen Ziele, und in jeder dieser Phasen finden Aktivitäten statt, die diese Aktivitäten haben. Mehrere Meilensteine. Jeder Schritt von DAD besteht aus drei Teilen: Koordination, Zusammenarbeit und Abschluss. (Abbildung 6)
Wie funktionieren agile Methoden?
Die Arbeitsgrundlage agiler Methoden konzentriert sich auf die Aufteilung des Projekts in kleine Teile und die Planung für jeden Teil, in der Regel innerhalb von ein bis vier Wochen, die Fertigstellung und Ergänzung der fertigen Teile zu anderen Faktoren.
Dadurch entfällt bei agilen Methoden die generelle Planung und Betrachtung aller Details zu Beginn der Arbeit. Bei dieser Methode handelt es sich bei jedem Zeitrahmen um einen vollständigen Softwareentwicklungszyklus, der Planung, Anforderungsanalyse, Design, Codierung, Unit-Tests und Endtests umfasst. Einer der größten Vorteile dieser Methode ist die Reduzierung des Gesamtrisikos des Projekts und die Möglichkeit, sich schnell an Änderungen anzupassen.
Wie wir am Anfang des Artikels erwähnt haben, zielt diese Methode darauf ab, in jedem Zeitraum einen vorzeigbaren Teil der Software mit minimalen Problemen zu erstellen.
In jedem Zeitraum werden die Arbeiten auf der Grundlage des Prioritätsrechts ausgeführt.
Der Anpassungsprozess umfasst zwei wichtige Faktoren: Änderungen im Produktionsprozess und Änderungen in der Software. In Besprechungen zwischen Kunden und Entwicklern werden Prioritäten festgelegt. Denn bei agilen Methoden wird besonders viel Wert auf Flexibilität gelegt. Daher sind agile Methoden mit einer iterativen Entwicklung verbunden, bei der Kompatibilität unerlässlich ist, und genau das ist nicht mit einer langfristigen Planung vereinbar.
Lebenszyklus der Softwareentwicklung
Agile Methoden konzentrieren sich auf verschiedene Aspekte des Softwareentwicklungslebenszyklus. (Abbildung 7)
Einige davon basieren auf Methoden (Überlaufprogrammierung, funktionale Programmierung und agile Modellierung), andere auf dem Software-Projektmanagement (z. B. Scrum), andere auf dem gesamten Softwareentwicklungslebenszyklus (dynamische Entwicklungsmethoden eines Systems und integrierter Entwicklungsprozess). und einige zur Anforderungsermittlung.
Sie betonen. Daher gibt es offensichtlich einen Unterschied zwischen verschiedenen agilen Softwareentwicklungsmethoden. Obwohl die Methoden der dynamischen Entwicklung eines Systems und des integrierten Entwicklungsprozesses keine komplementären Ansätze zur Unterstützung der Softwareentwicklung erfordern, benötigen die übrigen Methoden diese Ergänzungen in unterschiedlichem Maße. Vergessen Sie nicht, dass jeder Entwickler auch komplexe Modelle wie dynamische Entwicklungsmethoden eines Systems verwenden kann.