Zwinne metody i bazy danych na początku projektu

12

Nowy na zwinnym i nie jestem pewien, jak zacząć. Chodzi o to, aby tworzyć małe części projektu w sprintach. Jednak projekt, nad którym pracuję, wymaga bazy danych, która musi być prawie funkcjonalna, aby cokolwiek zrobić z tym projektem.

Jak więc radzą sobie z tym projekty Agile, czy zaczynasz od utworzenia bazy danych?

Jak byś to zrobił, na przykład używając Scruma, jak zrobiłbyś historie użytkowników i przetestowałeś db.

Wolisz robić części bazy danych w historii, która również wymaga kodu.

Powiedzmy, że masz historię, która brzmi: „Jako użytkownik musisz się zarejestrować ...” utworzyłbyś tabelę użytkowników w bazie danych jako część tej historii?

W jaki sposób zwinny może pomóc zaprojektować bazę danych?

Ingó Vals
źródło
1
Odp: „Jako użytkownik musisz się zarejestrować ...” Sugeruję przeczytanie na blog.gdinwiddie.com/2011/06/11/dont-you-have-to-login-first i postach, o których wspomina . Może nie być jednej „właściwej” odpowiedzi; dobrze jest zrozumieć różne uzasadnienia dyskusji.
StevenV
Jeśli uruchamiasz Agile lub jakąkolwiek inną metodologię w tym zakresie, upewnij się, że jest on odpowiedni dla Twojego zespołu, projektu i stylu organizacji w kontaktach z projektami oprogramowania (lub klienta). Nie jest prawdą, że każda metodologia działa dla każdego projektu i każdej organizacji.
NoChance,

Odpowiedzi:

14

Tak, będziesz stopniowo budował bazę danych, dodając wymagane tabele i kolumny, tak jak są one wymagane w historii. Zwykle nie potrzebujesz całej bazy danych, gdy zaczynasz swoją pierwszą historię - na przykład „Jako użytkownik musisz być w stanie zarejestrować ...” najprawdopodobniej wymaga pojedynczej tabeli z dokładnie określonym zestawem kolumn.

Jeśli masz historię, która naprawdę wymaga całej bazy danych, historia jest epicka - jest po prostu zbyt duża i musi zostać podzielona.

Ladislav Mrnka
źródło
5

Nowy na zwinnym i nie jestem pewien, jak zacząć.

Po przeczytaniu twojego postu myślę, że go nie rozumiesz i powinieneś zacząć od przeczytania, co naprawdę oznacza zwinność i co próbuje osiągnąć.

Chodzi o to, aby tworzyć małe części projektu w sprintach.

Blisko, ale nie wystarczająco blisko. Chodzi o to, aby dostarczyć działające oprogramowanie na końcu każdego sprintu (jedna część systemu może zmieścić się w jednym sprincie lub nie). Baza danych może być postrzegana jako działające oprogramowanie tylko wtedy, gdy baza danych jest tym, co dostarczasz klientowi.

Jednak projekt, nad którym pracuję, wymaga bazy danych, która musi być prawie funkcjonalna, aby cokolwiek zrobić z tym projektem.

Dlaczego musi być prawie funkcjonalny? Czy każda funkcja systemu wykorzystuje całą lub większą część zawartości bazy danych? Ponieważ jeśli nie, nie ma potrzeby wcześniejszego projektowania całej bazy danych.

Jak więc radzą sobie z tym projekty Agile, czy zaczynasz od utworzenia bazy danych?

Zwinny nie obsługuje projektu bazy danych ani systemu. Mówi ci, jak zarządzać swoim projektem. Mając to na uwadze, zaczynasz od zidentyfikowania wszystkich funkcji systemu i umieszczenia ich w rejestrze produktów. Następnie wraz z właścicielem produktu przypisujesz priorytety funkcjom zaległości. Po wykonaniu tej czynności zacznij pobierać funkcje z zaległości i tworzyć sprinty (zwykle trwające od 2 do 4 tygodni). Po zakończeniu sprintu powinieneś mieć nową funkcjonującą funkcję w systemie, którą można dostarczyć klientowi.

Jak byś to zrobił, na przykład używając Scruma, jak zrobiłbyś historie użytkowników i przetestowałeś db.

Mogę się mylić, ale nie ma sensu testować bazy danych. Możesz przetestować kod aktualizujący bazę danych. Oczywiście możesz przetestować programowalną część bazy danych, ale można to osiągnąć, testując kod, który ją wywołuje.

Wolisz robić części bazy danych w historii, która również wymaga kodu.

Tak.

Zwinność nie jest w żadnym wypadku srebrną kulą w zarządzaniu projektami i może oznaczać katastrofę, jeśli nie zostanie poprawnie zastosowana. Staraj się poświęcić trochę czasu na czytanie o tym (możesz znaleźć mnóstwo zasobów tutaj lub na przepływie stosów), być może znajdziesz kogoś, kto już zrobił zwinny i może pomóc ci przyspieszyć.

diabelnie
źródło
4

baza danych musi być prawie funkcjonalna, aby cokolwiek zrobić z projektem.

W dużej mierze fałszywe.

Jak więc radzą sobie z tym projekty Agile, czy zaczynasz od utworzenia bazy danych?

Tak, pusta baza danych. Następnie dodaj tabele, aby ukończyć sprint.

jak zrobiłbyś historie użytkowników i przetestował db?

O co pytasz? Zwinne nie ma nic wspólnego z projektowaniem baz danych.

Ty piszesz historię.

Projektujesz rozwiązanie.

Tworzysz tabele i kod.

Testujesz kod.

Czy wolisz robić części bazy danych w opowiadaniu, które również wymaga kodu?

Jaki jest inny wybór? Czy wszystkie DB najpierw? To niemożliwe.

„Jako użytkownik musisz się zarejestrować ...” stworzyłbyś tabelę użytkowników w bazie danych w ramach tej historii?

Po pierwsze, to bezużyteczna historia, ponieważ rejestracja nie ma żadnej wartości. To tylko przeszkoda techniczna, którą użytkownicy są zmuszeni przejść.

Po drugie, utworzyłbyś wystarczającą liczbę tabel, aby zaimplementować historię.

W jaki sposób zwinny może pomóc zaprojektować bazę danych?

O co pytasz?

Agile to zarządzanie projektami. To nie pomaga w żadnym projekcie.

Pomaga jedynie rozbić wielką robotę na małe kawałki.

S.Lott
źródło
2

Najpierw zastosuj podejście przyrostowe: wybierz moduł, zdefiniuj jego wymagania, wykreśl funkcjonalność, wybierz obszar funkcjonalny, a następnie modelowanie, projekt db, algos, kody, a następnie przetestuj i powtórz proces.

Anand Govindarajan
źródło
2

Twoje pytanie krzyczy na temat anty-wzorca rozwoju AgileFall .

Co to jest? Zazwyczaj jest to organizacja, która tradycyjnie opracowywała oprogramowanie metodą wodospadu, ale ponieważ zdają sobie sprawę, że to nie działa, wewnętrznie walczą o zastosowanie technik zwinnych. Wynikający z tego „brak gazu” zwykle występuje, ponieważ prawdziwe zwinne WYMAGANIA są fundamentalnym wstrząsem organizacyjnym od sposobu, w jaki zbudowano wiele uznanych sklepów Waterfall. I oczywiście będą mieli taką strukturę, ponieważ wielu silnych i wytrwałych ludzi czuje, że muszą się zaangażować w ten proces, gdy Agile pokazuje, jak bezużyteczni są oni dla rozwoju oprogramowania.

Musisz uciec od tego, że w jakiś sposób zaczniesz od dołu, zaprojektujesz i zbudujesz bazę danych, a następnie przejdziesz na środkową warstwę i już nigdy nie będziesz musiał dotykać bazy danych. Jest to zły sposób, aby to zrobić w Agile.

Zacznij od modelu domeny dla historii użytkownika i przejdź do bazy danych, a następnie w dół do warstwy środkowej i prezentacji.

wałek klonowy
źródło
Tak, widzę w tym większość wskazówek i nawet pomyślałem o tym, pisząc pytanie. Nie martw się o AgileFall, jest to głównie projekt testowy, w którym wypróbowuję metody i wzorce, aby dowiedzieć się, jak działają, a nie poważny projekt.
Ingó Vals,