Co było pierwsze, proces lub dane wykorzystane przez ten proces? Wiem, że jest to pytanie typu „kurczak lub jajko”, ale w przypadku oprogramowania uważam, że jest to proces.
Na przykład, możesz stopniowo budować swój model danych, wdrażając pojedynczy przypadek użycia jednocześnie z trwałością w pamięci (lub czymkolwiek tak łatwym do wdrożenia). Gdy poczujesz, że zaimplementowałeś wystarczającą liczbę przypadków użycia do zarysowania podstawowych encji, możesz zastąpić trwałość w pamięci rzeczywistą bazą danych, a następnie kontynuować udoskonalanie schematu w miarę postępów, jeden przypadek użycia na raz.
Spowoduje to oderwanie się od bazy danych i przeniesienie jej do sedna problemu: reguł biznesowych. Jeśli zaczniesz od wdrożenia reguł biznesowych, w końcu dowiesz się (przy okazji procesu bardzo podobnego do selekcji naturalnej), które dane są naprawdę potrzebne firmie. Jeśli zaczniesz od modelowania bazy danych, bez informacji zwrotnej na temat tego, czy te dane są naprawdę potrzebne (czy w tym formacie, czy na tym poziomie normalizacji itp.), Albo skończysz robić wiele opóźnień w schemat (który może wymagać intensywnych procedur migracji, jeśli firma już z nim działa), lub będziesz musiał zaimplementować obejścia w regułach biznesowych, aby nadrobić niedostosowany model danych.
TL; DR: Baza danych zależy od firmy - jest przez nią zdefiniowana. Nie będziesz potrzebować danych, chyba że masz proces, który z nimi działa (raport jest także procesem). Najpierw zaimplementuj ten proces, a dowiesz się, jakich danych potrzebuje. Najpierw modeluj dane, a być może będziesz w stanie policzyć, ile założeń było błędnych podczas pierwszego modelowania.
Trochę poza tematem, ale bardzo ważne: opisywany przepływ pracy jest często stosowany wraz z bardzo ważnymi praktykami, takimi jak „Najprostsza rzecz, która mogłaby ewentualnie działać”, programowanie oparte na testach i skupienie się na oddzieleniu architektury od szczegółów, które wchodzić ci w drogę (wskazówka: baza danych). Co do ostatniego, ta rozmowa całkiem dobrze podsumowuje ten pomysł.