Agile Methoden und Datenbanken zu Beginn des Projekts

12

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?

Ingó Vals
quelle
1
Betreff : "Als Benutzer müssen Sie sich registrieren können ..." Ich würde empfehlen, Blog.gdinwiddie.com/2011/06/11/dont-you-have-to-login-first und die von ihm erwähnten Posts durchzulesen . Möglicherweise gibt es keine "richtige" Antwort. Es ist gut, die verschiedenen Argumente in der Diskussion zu verstehen.
StevenV
Wenn Sie Agile oder eine andere Methode für diese Angelegenheit starten, stellen Sie bitte sicher, dass sie für Ihr Team, Ihr Projekt und den Stil Ihrer Organisation im Umgang mit Softwareprojekten (oder denen Ihrer Kunden) geeignet ist. Es ist nicht wahr, dass jede Methode für jedes Projekt und jede Organisation funktioniert.
NoChance

Antworten:

14

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.

Ladislav Mrnka
quelle
5

Neu zu agil und ich bin nicht sicher, wie ich anfangen soll.

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.

Die Idee ist, kleine Teile des Projekts in Sprints zu erstellen.

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.

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.

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.

Wie gehen Agile-Projekte damit um? Beginnen Sie mit der Erstellung der Datenbank?

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.

Wie würden Sie dies tun, zum Beispiel, wenn Sie Scrum verwenden, wie würden Sie die User Stories erstellen und die Datenbank testen.

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.

Möchtest du lieber Teile der Datenbank in einer Geschichte machen, die auch Code erfordert?

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.

devnull
quelle
4

Die Datenbank muss fast funktionsfähig sein, um etwas mit dem Projekt zu tun.

Weitgehend falsch.

Wie gehen Agile-Projekte damit um? Beginnen Sie mit der Erstellung der Datenbank?

Eine leere Datenbank, ja. Fügen Sie dann nach Bedarf Tabellen hinzu, um einen Sprint zu beenden.

wie würdest du die user stories machen und die db testen?

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.

Möchtest du lieber Teile der Datenbank in einer Geschichte machen, die auch Code erfordert?

Welche andere Wahl gibt es? Machst du die ganze DB zuerst? Das ist nicht möglich.

"Als Benutzer müssen Sie sich registrieren können ..." würden Sie die Benutzertabelle in der Datenbank als Teil dieser Geschichte erstellen?

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.

Wie kann Agile Ihnen beim Entwerfen der Datenbank helfen?

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.

S.Lott
quelle
2

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.

Anand Govindarajan
quelle
2

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.

maple_shaft
quelle
Ja, ich sehe die meisten Antworthinweise und habe es sogar irgendwie herausgefunden, als ich die Frage schrieb. Keine Sorge um AgileFall, dies ist hauptsächlich ein Testprojekt, in dem ich Methoden und Muster ausprobiere, um zu lernen, wie sie funktionieren, kein ernstes Projekt.
Ingó Vals