Neu zu agil und ich bin nicht sicher, wie ich anfangen soll. Die Idee ist, kleine Teile des Projekts in Sprints zu erstellen. Das Projekt, an dem ich arbeite, erfordert jedoch eine Datenbank, und die Datenbank muss nahezu funktionsfähig sein, um mit dem Projekt etwas zu tun.
Wie gehen Agile-Projekte damit um? Beginnen Sie mit der Erstellung der Datenbank?
Wie würden Sie dies tun, zum Beispiel, wenn Sie Scrum verwenden, wie würden Sie die User Stories erstellen und die Datenbank testen.
Möchtest du lieber Teile der Datenbank in einer Geschichte machen, die auch Code erfordert?
Angenommen, Sie haben eine Story mit dem Titel "Als Benutzer müssen Sie sich registrieren können ...". Würden Sie die Benutzertabelle in der Datenbank als Teil dieser Story erstellen?
Wie kann Agile Ihnen beim Entwerfen der Datenbank helfen?
quelle
Antworten:
Ja, Sie erstellen die Datenbank schrittweise, indem Sie die erforderlichen Tabellen und Spalten hinzufügen, die für die Story erforderlich sind. Normalerweise benötigen Sie nicht die gesamte Datenbank, wenn Sie Ihre erste Story starten - zum Beispiel "Als Benutzer müssen Sie sich registrieren können ..." erfordert höchstwahrscheinlich eine einzelne Tabelle mit genau definierten Spalten.
Wenn Sie eine Geschichte haben, die wirklich die gesamte Datenbank erfordert, ist die Geschichte episch - sie ist einfach zu groß und muss geteilt werden.
quelle
Nachdem Sie Ihren Beitrag gelesen haben, denken Sie, dass Sie ihn missverstehen, und Sie sollten damit beginnen, zu lesen, was Agilität wirklich bedeutet und zu erreichen versucht.
Nah, aber nicht nah genug. Die Idee ist, am Ende jedes Sprints funktionierende Software bereitzustellen (ein Teil des Systems kann in einen Sprint passen oder nicht). Die Datenbank kann nur dann als funktionierende Software angesehen werden, wenn die Datenbank das ist, was Sie dem Kunden liefern.
Warum muss es fast funktionsfähig sein? Verwendet jede Funktion des Systems den gesamten oder den größten Teil des Inhalts der Datenbank? Andernfalls macht es keinen Sinn, die gesamte Datenbank im Voraus zu entwerfen.
Agile kümmert sich nicht um Datenbank- oder Systemdesign. Hier erfahren Sie, wie Sie Ihr Projekt verwalten. In diesem Sinne identifizieren Sie zunächst alle Funktionen des Systems und fügen sie in das Product Backlog ein. Anschließend weisen Sie zusammen mit dem Product Owner den Features im Backlog Prioritäten zu. Nachdem Sie dies getan haben, nehmen Sie die Features aus dem Backlog und erstellen Sprints (normalerweise 2 bis 4 Wochen lang). Wenn ein Sprint vorbei ist, sollten Sie eine neue Funktion im System haben, die an den Kunden ausgeliefert werden kann.
Ich könnte mich irren, aber es macht keinen Sinn, die Datenbank zu testen. Sie können den Code testen, der die Datenbank aktualisiert. Natürlich können Sie Ihren programmierbaren Teil der Datenbank testen. Dies erreichen Sie jedoch, indem Sie den Code testen, der ihn aufruft.
Ja.
Agile ist für das Projektmanagement keineswegs eine Königsdisziplin und kann eine Katastrophe bedeuten, wenn es nicht richtig angewendet wird. Versuchen Sie, etwas Zeit damit zu verbringen, darüber zu lesen (Sie finden hier oder auf stackoverflow viele Ressourcen), und vielleicht jemanden zu finden, der bereits agil gearbeitet hat und Ihnen dabei helfen kann, auf den neuesten Stand zu kommen.
quelle
Weitgehend falsch.
Eine leere Datenbank, ja. Fügen Sie dann nach Bedarf Tabellen hinzu, um einen Sprint zu beenden.
Was fragst du? Agile hat nichts mit Datenbankdesign zu tun.
Du schreibst die Geschichte.
Sie entwerfen eine Lösung.
Sie erstellen Tabellen und Code.
Sie testen den Code.
Welche andere Wahl gibt es? Machst du die ganze DB zuerst? Das ist nicht möglich.
Erstens ist das eine nutzlose Geschichte, da es keinen Wert hat, sich zu registrieren. Dies ist lediglich eine technische Hürde, die Benutzer überwinden müssen.
Zweitens würden Sie gerade genug Tabellen erstellen, um die Story zu implementieren.
Was fragst du?
Agile ist Projektmanagement. Es hilft bei keinem Design.
Es hilft Ihnen lediglich, eine große Aufgabe in kleine Stücke zu zerlegen.
quelle
Befolgen Sie zunächst einen inkrementellen Ansatz. Wählen Sie ein Modul aus, definieren Sie dessen Anforderungen, geben Sie die Funktionalität an, richten Sie es auf einen Funktionsbereich und testen Sie es anschließend und wiederholen Sie den Vorgang.
quelle
Ihre Frage schreit nach dem Anti-Pattern der AgileFall- Entwicklung.
Was ist es? Normalerweise ist es eine Organisation, die traditionell Software nach der Waterfall-Methode entwickelt hat. Da sie jedoch feststellt, dass sie nicht funktioniert, haben sie intern Probleme, agile Techniken anzuwenden. Der daraus resultierende "Fail-Gasm" tritt normalerweise auf, weil echte Agilität eine grundlegende organisatorische Umstellung von der Art und Weise verlangt, wie viele etablierte Waterfall-Shops strukturiert sind. Und natürlich werden sie dazu neigen, so strukturiert zu bleiben, wie sich viele mächtige und langjährige Leute in den Prozess einbringen müssen, wenn Agile zeigt, wie nutzlos diese Leute für die Softwareentwicklung sind.
Sie müssen sich der Vorstellung entziehen, dass Sie irgendwie von unten beginnen, Ihre Datenbank entwerfen und erstellen und dann zur mittleren Ebene wechseln und Ihre Datenbank nie wieder berühren müssen. Dies ist der falsche Weg, um es in Agile zu tun.
Beginnen Sie mit dem Domain-Modell für eine User Story und arbeiten Sie sich bis zur Datenbank vor, und fahren Sie mit der mittleren Ebene und der Präsentation fort.
quelle