Sytuacja: dba jest zewnętrznym kontrahentem, który utrzymuje cały kod DAL w systemie TFS. Byłoby miło, gdyby programista front-end mógł dodawać kolumny, poprawiać procy i tak dalej, bez konieczności polegania na czekaniu, aż ten koleś odpowie na twoje e-maile.
Pytanie: Jakie byłoby zalecane rozwiązanie / proces, który pozwoliłby na szybszy / sprawniejszy rozwój, przy jednoczesnym zachowaniu integralności danych, a także spokojnej miłości i szczęścia w zespole?
asp.net
teamwork
team-foundation-server
team-building
configuration
spaghetticowboy
źródło
źródło
Odpowiedzi:
Martin Fowler i Pramod Sadalage napisali doskonały artykuł na ten temat.
Każdy programista ma własną bazę danych, w której można wprowadzać zmiany. Te zmiany są następnie przekazywane z powrotem (jako zestaw zmian) do DBA, który implementuje je w głównej bazie danych, więc jest nadal zaangażowany w proces, prawdopodobnie i tak najlepiej wie o strukturach i potrzebach bazy danych. Myślę, że to najlepsze podejście, ponieważ jest zadowalające dla wszystkich osób zaangażowanych w proces, a także bardzo zwinne.
Możesz zmienić DAL w podobny sposób. Po prostu dokonaj zmian i podaj zestaw zmian dla DBA, kiedy uważasz, że skończyłeś, aby mógł go przejrzeć i scalić ze swoim mistrzem.
źródło
Cóż, kiedy robię DBA, byłem znany z tego, że wszystko zamyka, żeby cholerni programiści nie mogli się tym zająć. Wszyscy myślą, że wiedzą, jak to zrobić lepiej, i „poprawiają” rzeczy, aby były łatwiejsze dla siebie, a to powoduje bezbożny bałagan.
Inną alternatywą jest rzucenie go szeroko i pozwolenie programistom na chwilę na niego walczyć, a następnie wskoczyć i narzucić porządek, gdy sprawy zaczynają się zamykać ... To z pewnością bardziej „zwinne”, ale może być prawdziwy koszmar w zależności od tego, co należy wyciąć lub zmienić ... DBA często lepiej rozumieją cały projekt, a niektóre zmiany, które wydają się nieszkodliwe, mogą być problematyczne.
Jeśli ma być jedynym strażnikiem, musi mieć ustaloną specyfikację lub być w stanie „sprzedać” swoją wizję reszcie deweloperów.
źródło
Istnieje poważny problem, który zastępuje każdy inny problem:
Dlaczego wolno mu to robić? Nikt nie powinien pobierać pliku, chyba że aktywnie wprowadza zmiany. Powinny istnieć zasady zespołu dotyczące kas.
Wykonawca (czy im się to podoba, czy nie) pracuje jako część zespołu, a czasem inni członkowie zespołu mogą potrzebować wprowadzić zmiany. To jest problem z komunikacją. Niestety nie ma zautomatyzowanego sposobu rozwiązania tego problemu z komunikacją.
źródło
Zamiast poziomych warstw, wolę pracować w silosach między warstwami.
W ten sposób żadna osoba / zespół nie może zablokować w ten sposób.
Oznacza to również, że twoi programiści są wykwalifikowani i potrafią znacznie łatwiej przenosić funkcje.
Oczywiście istnieją sekcje (projektowanie interfejsu użytkownika i projektowanie bazy danych), które mogą wymagać więcej specjalizacji, ale masz pomysł.
źródło
Proste, jeśli jeszcze tego nie masz, powinieneś mieć 3 środowiska:
Twórcami powinny być środowiska deweloperskie.
Możesz także dodać środowisko RC.
Inna odpowiedź: jeśli wiele środowisk nie jest możliwe, możesz opracować w oparciu o fałszywe repozytorium ... W ten sposób budujesz modele, a następnie kontrahent jest odpowiedzialny za dostosowanie modeli do bazy danych. W pewnym sensie jest to lepsze, ponieważ uwalnia programistów od martwienia się o bazę danych.
źródło
Wydaje mi się, że twój problem dotyczy siły roboczej. Jest to właściwe i konieczne, aby wszystkie potencjalne zmiany bazy danych zostały zatwierdzone przez specjalistę od baz danych. Jeśli bieżąca osoba nie jest w stanie nadążyć za pracą w odpowiednim czasie, potrzebujesz więcej specjalistów od baz danych.
źródło
Jest to zarówno kwestia zarządzania, jak i kwestii technicznych.
Z pewnością istnieją uzasadnione powody, dla których DBA (niezależnie od tego, czy jest to na miejscu, czy poza nim, wykonawca lub pracownik) powstrzymuje programistów od wprowadzania jakichkolwiek zmian w bazie danych.
Jednak głównym problemem, który zdefiniowałeś, jest dostępność. Czy Twój menedżer wie, że tracisz czas / pieniądze, czekając na tę osobę? Jeśli nie, możesz porozmawiać o tym, jak wszyscy siedzą.
źródło