Mein Anwendungslebenszyklus in Agile Platform

Eine Sache, die mich an der OutSystems Agile Platform interessiert hat, war der Entwicklungslebenszyklus. Das Produkt wurde von Grund auf entwickelt, um agile Praktiken zu fördern. Sie müssen nichts Agiles verwenden, um mit dem System zu arbeiten, aber es ermöglicht die Agile-Methodik sehr gut. Hier ist ein Überblick über den Lebenszyklus eines typischen Projekts mit Agile Platform, das für mich hervorragend funktioniert. (Hinweis: Andere im Ökosystem können die Dinge anders machen.)

Die Iterationen

Eine Iteration ist ein definierter Zeitblock, um Entwicklungsarbeiten als vollständige Einheit auszuführen. Bei meinen Projekten finde ich eine Iteration, die auf 10 Stunden geschätzter Entwicklungsarbeit basiert, genau richtig. Zu Beginn einer Iteration setze ich mich mit dem Kunden zusammen, überprüfe die Liste der gewünschten Änderungen und gebe eine grobe Zeitschätzung für jedes Element an. Dies schließt die Test- / Fixierungszeit ein (ich schätze, dass ich für jede acht Stunden Entwicklungszeit zwei Stunden Test- und Fixierungszeit benötige). Der Kunde wählt aus, was in 10 Stunden passt, basierend auf seinen Bedürfnissen und Prioritäten, und dann mache ich mich an die Arbeit. Wenn ich fertig bin, demonstriere ich die Funktionalität zurück zu ihnen. Wenn sie zufrieden sind, stellen wir es für ihre Tests auf ihrem Staging-Server bereit. Alle Fehlerkorrekturen ("funktioniert nicht wie angegeben") mache ich als Teil der Iteration. Alle Änderungen ("Spezifikation entspricht nicht den Anforderungen") werden in den Anforderungsbereich übernommen. Im Allgemeinen haben Iterationen eine Bearbeitungszeit von einer Woche.

Sie könnten denken, dass 10-Stunden-Iterationen ziemlich kurz sind, oder? Nicht wirklich. In erster Linie mache ich diese Arbeit freiberuflich; Ich möchte keine Situation, in der ich, wenn ich über die 10 Stunden gehe, die Kerze an beiden Enden verbrenne oder ein abwesender Ehemann / Vater bin. Ein 10% iger Überschuss bei einer 10-stündigen Iteration beträgt eine Stunde. Es sind vier Stunden für eine 40-stündige Iteration! Zweitens habe ich festgestellt, dass die Agile Platform für mich so effizient ist, dass ich in 10 Stunden das tun kann, was die meisten Vollzeitentwickler eine volle Arbeitswoche benötigen, um in ASP.NET oder einer ähnlichen Technologie zu arbeiten. Infolgedessen ist meine Rechnung bei gleicher Arbeitsbelastung viel niedriger als die eines typischen Entwicklers, obwohl ich pro Iteration eine ordentliche Summe in Rechnung stelle. Drittens habe ich die Erfahrung gemacht, dass Schätzfehler sehr leicht zu Schneebällen neigen. Eine 10-stündige Iteration schränkt dieses Problem ein. Darüber hinaus sind 10 Stunden Entwicklungsarbeit so klein, dass die Arbeit schnell und einfach festgelegt werden kann, ohne dass mitten in der Entwicklung große Änderungen erforderlich sind. Mit der Anzahl der Funktionen, die in einer meiner Iterationen ausgeführt wurden, möchte der Kunde die Möglichkeit haben, die Dinge zu überprüfen, bevor er die nächsten zu implementierenden Funktionen oder Änderungen auswählt.

Erste Projektdiskussion

Eine Sache, die ich ablehne, ist eine Vorausschätzung. Wenn ich denke, dass das Projekt in drei oder weniger Iterationen durchgeführt werden kann, werde ich es dem Kunden bestenfalls mitteilen. Einige Kunden mögen dies nicht, weil sie einen "garantierten" Preis und Zeitplan sehen möchten. Ich erinnere sie an die anderen "garantierten" Projekte, die sie mit anderen Anbietern hatten, die schnell über Zeit und Budget gingen, und erkläre sanft, dass in der Welt der Entwicklung nichts garantiert werden kann. Wenn sie sehen, dass meine Iterationsmethode ihre Kosten einschränkt und mir nicht die freie Hand lässt, eine riesige Rechnung anzurufen oder eine Situation zu schaffen, in der ich "absteigen und den Sieg erklären" muss, um Gewinn zu erzielen, werden sie normalerweise verkauft. Für einen Kunden, der davon nicht überzeugt werden kann, spiele ich keinen Ball. Ich habe einfach nicht die Zeit oder die Energie, um Verträge abzuschließen, von denen ich weiß, dass es schwierig sein wird, Gewinne zu erzielen.

Darüber hinaus nutze ich diesen Zeitraum, um eine gute Vorstellung von den Vorabbedürfnissen des Kunden zu bekommen, insbesondere um seine zukünftigen Roadmap-Ideen zu verstehen und sicherzustellen, dass die Anwendungsarchitektur dies realistisch macht.

Einsatz

Wie bereits erwähnt, möchte ich zuerst die Arbeit auf meinen Servern demonstrieren. Ich habe einen Server, auf den meine Kunden zugreifen können. Ich empfehle meinen Kunden, zwei Server zu haben - einen für die Produktion und einen für die Bereitstellung -, aber es ist nicht das Ende der Welt, wenn sie sich das nicht leisten können. Zu guter Letzt enthalten High-End-Lizenzen für agile Plattformen eine Lizenz, die nicht für die Produktion bestimmt ist, und ich glaube, dass das Cloud-Angebot von OutSystems dies auch tut. Andernfalls kann der Client auf meinem Server mit dem Projekt experimentieren.

Sobald der Client mit den Ergebnissen zufrieden ist, stelle ich sie auf seinen Systemen bereit. Agile Platform macht die Bereitstellung wirklich einfach. Normalerweise muss ich mich nur bei der webbasierten Verwaltung anmelden, die einzelne OML- oder Lösungsdatei hochladen (je nachdem, wie ich arbeite) und nach dem Hochladen und Kompilieren kann es losgehen. Alle Änderungen am Datenbankschema werden automatisch behandelt. Ich sollte den "Lösungs" -Ansatz verwenden, da ich damit eine einzelne, einheitliche Datei mit allen darin enthaltenen Erweiterungen schneiden kann. Da ich jedoch selten Erweiterungen ändere, tendiere ich dazu, dies nicht zu tun, um die Dateigröße zu verringern.

Manchmal müssen für eine neue Version einige Daten in die Datenbank eingefügt oder auf andere Weise bearbeitet werden. In einem Projekt verfügt beispielsweise jedes Kundenkonto über eine Liste von Status, die für Arbeitsaufträge verwendet werden können. Die Liste kann angepasst werden. Wenn das Konto erstellt wird, wird es von einer Hauptliste kopiert. Manchmal muss ich für eine neue Funktion einen neuen Wert in diese Liste einfügen. Anstatt direkten Datenbankzugriff zu benötigen, erstelle ich eine Aktion, die die Datenmanipulation übernimmt, und binde sie dann an einen Timer ohne definierten Zeitplan. Nach der Bereitstellung löse ich den Timer manuell aus, um über das webbasierte Service Center ausgeführt zu werden, und deaktiviere den Timer, sobald er ausgeführt wurde. Ich stelle sicher, dass zukünftige Versionen die Aktion und den Timer vollständig entfernen. Daher benötige ich nur dann direkten Zugriff auf die Datenbank, wenn Daten auf niedriger Ebene überprüft oder korrigiert werden.

Preisgestaltung

Um allen Beteiligten das Leben zu erleichtern, berechne ich eine Pauschale pro Iteration. Dies ist ein fairer Preis für den Kunden, insbesondere wenn man bedenkt, dass Fehlerkorrekturen im Rahmen der Iteration kostenlos behandelt werden. Wenn die Iteration im Laufe der Zeit erheblich verläuft, ist dies meine Schuld an einer schlechten Schätzung und eine gute Lektion für mich. Wenn ich weit darunter bin, biete ich eine "Niedrigpreisgarantie" an: Sobald der Kunde die Arbeit abgemeldet hat und zur Rechnungsstellung bereit ist, berechne ich ihm einen Stundensatz, wenn die tatsächliche Zeit für die Iteration aufgewendet wird (von oben bis unten) unten, einschließlich Planung, Überprüfung, Bereitstellung, Korrekturen usw.) ist weniger als sieben Stunden. Dies lässt den Kunden wissen, dass ich sie nicht meißle, und gibt mir einen großen Anreiz, richtig zu planen.

Ergebnisse

Seit ich Anfang 2011 angefangen habe, mit Agile Platform zu beraten, habe ich viele Lektionen gelernt. Ich hatte ein Projekt viel mehr Arbeit als ich beabsichtigt hatte, weil der Arbeitsumfang für die anfängliche Iteration zu Beginn zu viele offene Fragen hatte. Ich habe im Vorfeld nicht genügend detaillierte Fragen gestellt, um festzustellen, dass der vorgeschlagene Algorithmus viele logische Inkonsistenzen aufweist, und er wurde schließlich mehrmals implementiert und erneut implementiert. Das ist ein klassischer Programmierfehler, den ich hoffentlich nicht wiederhole. Aber zum größten Teil haben die kurzen Iterationen und die Pauschalpreise großartige Arbeit geleistet, um alle Parteien vor den Gefahren zu schützen, die Stunden- und Festpreisverträge normalerweise haben.

J.Ja.

© Copyright 2021 | mobilegn.com